
/* WARNING: Type propagation algorithm not settling */

reg_errcode_t
check_arrival(re_match_context_t *mctx,state_array_t *path,Idx top_node,Idx top_str,Idx last_node,
             Idx last_str,int type)

{
  re_node_set **pprVar1;
  re_token_t **pprVar2;
  bitset_word_t *pbVar3;
  undefined *puVar4;
  undefined3 extraout_var;
  re_dfa_t *prVar5;
  re_dfastate_t **pprVar6;
  code *pcVar7;
  int iVar8;
  re_dfa_t *context;
  re_dfastate_t *prVar9;
  int *piVar10;
  _Bool _Var14;
  reg_errcode_t rVar11;
  re_fail_stack_ent_t *prVar12;
  int iVar13;
  re_dfa_t *prVar15;
  re_dfastate_t **pprVar16;
  Idx IVar17;
  code *pcVar18;
  code *pcVar19;
  code *pcVar20;
  undefined4 *puVar21;
  re_node_set *set;
  re_dfa_t *prVar22;
  bitset_word_t bVar23;
  re_match_context_t *mctx_00;
  re_backref_cache_entry *prVar24;
  re_dfa_t *mctx_01;
  re_dfa_t *prVar25;
  re_token_t *prVar26;
  re_dfa_t *prVar27;
  size_t sVar28;
  size_t sVar29;
  re_dfa_t *prVar30;
  Idx *pIVar31;
  int *piVar32;
  undefined4 uVar33;
  re_dfa_t *prVar34;
  re_dfa_t *prVar35;
  re_dfa_t *input;
  re_dfastate_t **pprVar36;
  re_dfa_t *unaff_s5;
  re_fail_stack_t *fs;
  re_token_t *prVar37;
  int *piVar38;
  re_token_t *prVar39;
  re_dfastate_t *unaff_s7;
  undefined *puVar40;
  undefined1 *puVar41;
  undefined1 *puVar42;
  undefined1 *puVar43;
  re_dfa_t *unaff_s8;
  undefined1 auStackY_150 [24];
  undefined1 auStackY_138 [76];
  undefined4 uStackY_ec;
  int iStackY_e8;
  re_match_context_t *prStackY_e4;
  re_dfa_t *prStackY_e0;
  re_dfastate_t **pprStackY_dc;
  re_dfa_t *prStackY_d8;
  re_dfa_t *prStackY_d4;
  re_dfastate_t **pprStackY_d0;
  re_dfa_t *prStackY_cc;
  re_match_context_t *prStackY_c8;
  re_dfastate_t *prStackY_c4;
  re_dfa_t *prStackY_c0;
  code *pcStackY_bc;
  re_dfa_t *in_stack_ffffff58;
  char cVar44;
  re_dfa_t *prStack_94;
  int iStack_8c;
  code *pcStack_6c;
  reg_errcode_t err;
  reg_errcode_t err_1;
  re_node_set next_nodes;
  re_node_set union_set;
  
  puVar40 = PTR___stack_chk_guard_0003c314;
  cVar44 = (char)in_stack_ffffff58;
  prVar15 = mctx->dfa;
  input = (re_dfa_t *)path->alloc;
  puVar21 = *(undefined4 **)PTR___stack_chk_guard_0003c314;
  mctx_01 = (re_dfa_t *)(top_node * 8);
  prVar25 = (re_dfa_t *)(last_str + mctx->max_mb_elem_len);
  err = _REG_NOERROR;
  prVar5 = *(re_dfa_t **)((int)mctx_01->word_char + (int)(prVar15->nodes + -0xc));
  context = (re_dfa_t *)top_str;
  if ((int)prVar25 < (int)input) {
LAB_000205e8:
    puVar4 = PTR_LAB_0003c1e8;
    pprVar16 = mctx->state_log;
    prVar25 = (re_dfa_t *)mctx->eflags;
    prVar34 = (re_dfa_t *)path->next_idx;
    pprVar36 = path->array;
    IVar17 = (mctx->input).cur_idx;
    if (prVar34 == (re_dfa_t *)0x0) {
      mctx->state_log = pprVar36;
      mctx_01 = (re_dfa_t *)(top_str + -1);
      (mctx->input).cur_idx = top_str;
      input = (re_dfa_t *)re_string_context_at(&mctx->input,(Idx)mctx_01,(int)prVar25);
LAB_00020b7c:
      next_nodes.alloc = 1;
      next_nodes.nelem = 1;
      next_nodes.elems = (Idx *)(*(code *)PTR_malloc_0003c2b4)(4);
      cVar44 = (char)in_stack_ffffff58;
      if (next_nodes.elems == (Idx *)0x0) goto LAB_00020c64;
      mctx_01 = (re_dfa_t *)&next_nodes;
      *next_nodes.elems = top_node;
      err = _REG_NOERROR;
      prVar25 = prVar5;
      context = (re_dfa_t *)type;
      err = check_arrival_expand_ecl(prVar15,(re_node_set *)mctx_01,(Idx)prVar5,type);
      cVar44 = (char)in_stack_ffffff58;
      prVar34 = (re_dfa_t *)top_str;
      if (err == _REG_NOERROR) {
LAB_00020ab8:
        prStack_94 = (re_dfa_t *)&next_nodes;
        if (next_nodes.nelem != 0) {
          mctx_01 = prStack_94;
          prVar25 = prVar34;
          context = prVar5;
          in_stack_ffffff58 = (re_dfa_t *)type;
          err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar34,(Idx)prVar5,type);
          cVar44 = (char)in_stack_ffffff58;
          if (err != _REG_NOERROR) goto LAB_00020920;
        }
        mctx_01 = prVar15;
        context = input;
        unaff_s7 = re_acquire_state_context(&err,prVar15,(re_node_set *)prStack_94,(uint)input);
        cVar44 = (char)in_stack_ffffff58;
        prVar25 = prStack_94;
        if ((unaff_s7 != (re_dfastate_t *)0x0) || (err == _REG_NOERROR)) {
          mctx->state_log[(int)prVar34] = unaff_s7;
          prVar27 = prVar34;
          goto LAB_00020670;
        }
      }
LAB_00020920:
      (*(code *)PTR_free_0003c320)(next_nodes.elems);
      rVar11 = err;
    }
    else {
      mctx->state_log = pprVar36;
      mctx_01 = (re_dfa_t *)((int)&prVar34[-1].subexp_map + 3);
      (mctx->input).cur_idx = (Idx)prVar34;
      input = (re_dfa_t *)re_string_context_at(&mctx->input,(Idx)mctx_01,(int)prVar25);
      if (prVar34 == (re_dfa_t *)top_str) goto LAB_00020b7c;
      pprVar36 = pprVar36 + (int)prVar34;
      unaff_s7 = *pprVar36;
      prVar27 = prVar34;
      if ((unaff_s7 == (re_dfastate_t *)0x0) || ((unaff_s7->field_0x34 & 2) == 0)) {
        next_nodes.alloc = 0;
        next_nodes.nelem = 0;
        next_nodes.elems = (Idx *)0x0;
LAB_00020670:
        cVar44 = (char)in_stack_ffffff58;
        pcStack_6c = (code *)(puVar4 + -0x34b0);
        prStack_94 = (re_dfa_t *)&next_nodes;
        if (((int)prVar27 < last_str) && (-1 < mctx->max_mb_elem_len)) {
          pprVar6 = mctx->state_log;
          iStack_8c = 0;
          pcVar18 = (code *)(PTR_LAB_0003c1e8 + -0x5018);
          pcVar19 = (code *)(PTR_LAB_0003c1e8 + -0x3368);
          pcVar20 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);
          prVar34 = prVar27;
          unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1);
          do {
            prVar27 = unaff_s8;
            next_nodes.nelem = 0;
            top_node = (int)&prVar27[-1].subexp_map + 3;
            if (pprVar6[(int)prVar27] == (re_dfastate_t *)0x0) {
              rVar11 = err;
              if (unaff_s7 != (re_dfastate_t *)0x0) goto LAB_000206f8;
              iVar8 = mctx->eflags;
            }
            else {
              mctx_01 = (re_dfa_t *)&pprVar6[(int)prVar27]->nodes;
              err = re_node_set_merge((re_node_set *)prStack_94,(re_node_set *)mctx_01);
              cVar44 = (char)in_stack_ffffff58;
              unaff_s8 = prVar27;
              if (err != _REG_NOERROR) goto LAB_00020920;
              rVar11 = _REG_NOERROR;
              if (unaff_s7 != (re_dfastate_t *)0x0) {
LAB_000206f8:
                err = rVar11;
                unaff_s5 = (re_dfa_t *)&union_set;
                input = mctx->dfa;
                union_set.alloc = 0;
                err_1 = _REG_NOERROR;
                union_set.nelem = 0;
                union_set.elems = (Idx *)0x0;
                if (0 < (unaff_s7->non_eps_nodes).nelem) {
                  pprVar36 = (re_dfastate_t **)0x0;
                  pcVar7 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);
                  do {
                    prVar35 = (re_dfa_t *)(unaff_s7->non_eps_nodes).elems[(int)pprVar36];
                    top_str = (int)prVar35 * 8;
                    prVar26 = (re_token_t *)
                              ((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->
                                    word_char + (int)(top_str + -0x60));
                    if ((*(uint *)&prVar26->field_0x4 & 0x800) != 0) {
                      prVar25 = prVar35;
                      context = (re_dfa_t *)mctx;
                      in_stack_ffffff58 = (re_dfa_t *)top_node;
                      iVar8 = check_node_accept_bytes
                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,
                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node);
                      if (iVar8 < 2) {
                        unaff_s8 = prVar27;
                        if (iVar8 == 0) {
                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);
                          goto LAB_00020768;
                        }
                        goto LAB_00020784;
                      }
                      iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60;
                      prVar34 = (re_dfa_t *)((int)prVar35 * 4);
                      top_str = iVar8 * 4;
                      unaff_s8 = *(re_dfa_t **)
                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);
                      union_set.nelem = 0;
                      if (mctx->state_log[iVar8] == (re_dfastate_t *)0x0) {
LAB_000209e0:
                        mctx_01 = unaff_s8;
                        iVar13 = (*pcVar20)(unaff_s5);
                        cVar44 = (char)in_stack_ffffff58;
                        if (iVar13 == 0) goto LAB_00020904;
                        context = (re_dfa_t *)mctx->state_log;
                        unaff_s8 = (re_dfa_t *)((int)context + top_str);
                        mctx_01 = input;
                        prVar25 = unaff_s5;
                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);
                        pprVar6 = mctx->state_log;
                        unaff_s8->nodes = prVar26;
                        top_str = (Idx)(pprVar6 + iVar8);
                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||
                           (err_1 == _REG_NOERROR)) goto LAB_00020784;
                      }
                      else {
                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;
                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);
                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;
                      }
                      (*(code *)PTR_free_0003c320)(union_set.elems);
                      cVar44 = (char)in_stack_ffffff58;
                      err = err_1;
                      unaff_s8 = prVar27;
                      if (err_1 == _REG_NOERROR) goto LAB_000207d0;
                      goto LAB_00020920;
                    }
LAB_00020768:
                    prVar25 = (re_dfa_t *)top_node;
                    iVar8 = (*pcVar19)(mctx,prVar26);
                    unaff_s8 = prVar27;
                    if (iVar8 != 0) {
LAB_00020784:
                      prVar34 = (re_dfa_t *)
                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);
                      mctx_01 = (re_dfa_t *)prVar34->nodes;
                      iVar8 = (*pcVar20)(prStack_94);
                      cVar44 = (char)in_stack_ffffff58;
                      if (iVar8 == 0) {
LAB_00020904:
                        (*(code *)PTR_free_0003c320)(union_set.elems);
                        err = _REG_ESPACE;
                        goto LAB_00020920;
                      }
                    }
                    pprVar36 = (re_dfastate_t **)((int)pprVar36 + 1);
                  } while ((int)pprVar36 < (unaff_s7->non_eps_nodes).nelem);
                }
                (*(code *)PTR_free_0003c320)(union_set.elems);
                err = _REG_NOERROR;
              }
LAB_000207d0:
              cVar44 = (char)in_stack_ffffff58;
              if (next_nodes.nelem != 0) {
                mctx_01 = prStack_94;
                prVar25 = prVar5;
                context = (re_dfa_t *)type;
                err = (*pcVar18)(prVar15);
                prVar34 = prVar27;
                unaff_s8 = prVar27;
                if (err != _REG_NOERROR) goto LAB_00020920;
                mctx_01 = prStack_94;
                prVar25 = prVar27;
                context = prVar5;
                in_stack_ffffff58 = (re_dfa_t *)type;
                err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar27,(Idx)prVar5,
                                         type);
                cVar44 = (char)in_stack_ffffff58;
                if (err != _REG_NOERROR) goto LAB_00020920;
              }
              iVar8 = mctx->eflags;
            }
            context = (re_dfa_t *)(*pcStack_6c)(mctx,top_node,iVar8);
            mctx_01 = prVar15;
            prVar25 = prStack_94;
            unaff_s7 = re_acquire_state_context
                                 (&err,prVar15,(re_node_set *)prStack_94,(uint)context);
            cVar44 = (char)in_stack_ffffff58;
            if (unaff_s7 == (re_dfastate_t *)0x0) {
              prVar34 = prVar27;
              unaff_s8 = prVar27;
              if (err != _REG_NOERROR) goto LAB_00020920;
              pprVar6 = mctx->state_log;
              iStack_8c = iStack_8c + 1;
              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);
              unaff_s5->nodes = (re_token_t *)0x0;
            }
            else {
              pprVar6 = mctx->state_log;
              iStack_8c = 0;
              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);
              unaff_s5->nodes = (re_token_t *)unaff_s7;
            }
            unaff_s8 = prVar27;
          } while (((int)prVar27 < last_str) &&
                  (unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1), prVar34 = prVar27,
                  iStack_8c <= mctx->max_mb_elem_len));
        }
        (*(code *)PTR_free_0003c320)(next_nodes.elems);
        prVar9 = mctx->state_log[last_str];
        prVar34 = prVar27;
        if (prVar9 == (re_dfastate_t *)0x0) {
          path->next_idx = (Idx)prVar27;
          mctx->state_log = pprVar16;
          (mctx->input).cur_idx = IVar17;
          rVar11 = _REG_NOMATCH;
        }
        else {
          mctx_01 = (re_dfa_t *)&(prVar9->nodes).elems;
          path->next_idx = (Idx)prVar27;
          (mctx->input).cur_idx = IVar17;
          set = (re_node_set *)(prVar9->nodes).nelem;
          mctx->state_log = pprVar16;
          IVar17 = re_node_set_contains(set,(Idx)mctx_01,(re_node_set *)last_node);
          rVar11 = (uint)(IVar17 == 0);
          prVar25 = (re_dfa_t *)last_node;
        }
      }
      else {
        mctx_01 = (re_dfa_t *)&unaff_s7->nodes;
        rVar11 = re_node_set_init_copy(&next_nodes,(re_node_set *)mctx_01);
        cVar44 = (char)in_stack_ffffff58;
        err = rVar11;
        if (rVar11 == _REG_NOERROR) {
          if ((unaff_s7->field_0x34 & 2) == 0) goto LAB_00020670;
          goto LAB_00020ab8;
        }
      }
    }
  }
  else {
    prVar34 = (re_dfa_t *)((int)&prVar25->nodes + 1);
    pprVar36 = (re_dfastate_t **)
               ((int)(((re_dfa_t *)(((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))
                      ->word_char + 0xffffffe8) +
               (int)((re_dfa_t *)
                    (((re_dfa_t *)(((re_dfa_t *)(input->word_char + -0x18))->word_char + -0x18))->
                     word_char + -0x18))->word_char + 0xffffffa0U);
    if (((int)prVar34 <= 0x7fffffff - (int)input) &&
       (unaff_s5 = (re_dfa_t *)path, pprVar36 < (re_dfastate_t **)0x40000000)) {
      mctx_01 = (re_dfa_t *)((int)pprVar36 * 4);
      pprVar16 = (re_dfastate_t **)(*(code *)PTR_realloc_0003c2b8)(path->array);
      puVar4 = PTR_memset_0003c290;
      cVar44 = (char)in_stack_ffffff58;
      if (pprVar16 != (re_dfastate_t **)0x0) {
        path->array = pprVar16;
        path->alloc = (Idx)pprVar36;
        (*(code *)puVar4)(pprVar16 + (int)input,0,(int)prVar34 * 4);
        goto LAB_000205e8;
      }
    }
LAB_00020c64:
    rVar11 = _REG_ESPACE;
  }
  if (puVar21 == *(undefined4 **)puVar40) {
    return rVar11;
  }
  pcVar18 = set_regs;
  puVar40 = PTR___stack_chk_fail_0003c2f4;
  (*(code *)PTR___stack_chk_fail_0003c2f4)();
  auStackY_138._0_4_ = puVar40 + 0x23430;
  puVar41 = auStackY_150;
  puVar42 = auStackY_150;
  auStackY_138._12_4_ = *(undefined4 *)(puVar40 + 0x1b674);
  uStackY_ec = 2;
  auStackY_138._72_4_ = 0;
  iStackY_e8 = 0;
  prStackY_e4 = *(re_match_context_t **)auStackY_138._12_4_;
  piVar38 = (int *)*puVar21;
  prVar5 = mctx_01;
  prVar15 = prVar25;
  prVar27 = context;
  prStackY_e0 = prVar34;
  pprStackY_dc = (re_dfastate_t **)top_str;
  prStackY_d8 = input;
  prStackY_d4 = (re_dfa_t *)top_node;
  pprStackY_d0 = pprVar36;
  prStackY_cc = unaff_s5;
  prStackY_c8 = mctx;
  prStackY_c4 = unaff_s7;
  prStackY_c0 = unaff_s8;
  pcStackY_bc = pcVar18;
  if (cVar44 == '\0') {
    prVar34 = (re_dfa_t *)piVar38[0x12];
    fs = (re_fail_stack_t *)0x0;
    if ((uint)((int)prVar25 << 3) < 0xfc0) goto LAB_00020d5c;
LAB_00021488:
    auStackY_138._28_4_ = (int)prVar25 << 3;
    auStackY_138._68_4_ = 0;
    auStackY_138._64_4_ = 0;
    auStackY_138._60_4_ = 0;
    top_node = (Idx)(auStackY_138 + 0x3c);
    auStackY_138._20_4_ = (**(code **)(auStackY_138._0_4_ + -0x7e1c))(auStackY_138._28_4_);
    auStackY_138._16_4_ = 1;
    if ((re_dfa_t *)auStackY_138._20_4_ != (re_dfa_t *)0x0) goto LAB_00020d6c;
    puVar41 = auStackY_150;
    if (fs == (re_fail_stack_t *)0x0) {
      rVar11 = _REG_ESPACE;
      goto LAB_00020f18;
    }
LAB_0002112c:
    top_node = (Idx)(auStackY_138 + 0x3c);
    free_fail_stack_return(fs);
    puVar43 = puVar41;
  }
  else {
    fs = (re_fail_stack_t *)(auStackY_138 + 0x48);
    iStackY_e8 = (**(code **)(puVar40 + 0x1b614))(0x30);
    puVar43 = auStackY_150;
    if (iStackY_e8 != 0) {
      prVar34 = (re_dfa_t *)piVar38[0x12];
      if (0xfbf < (uint)((int)prVar25 << 3)) goto LAB_00021488;
LAB_00020d5c:
      auStackY_138._28_4_ = (int)prVar25 << 3;
      auStackY_138._68_4_ = 0;
      auStackY_138._64_4_ = 0;
      auStackY_138._60_4_ = 0;
      puVar41 = auStackY_150 + (int)prVar25 * -8;
      auStackY_138._16_4_ = 0;
      auStackY_138._20_4_ = auStackY_138 + (int)prVar25 * -8;
LAB_00020d6c:
      top_node = (Idx)(auStackY_138 + 0x3c);
      prVar5 = context;
      prVar15 = (re_dfa_t *)auStackY_138._28_4_;
      (**(code **)(auStackY_138._0_4_ + -0x7db8))(auStackY_138._20_4_);
      auStackY_138._56_4_ = (re_dfa_t *)context->nodes;
      auStackY_138._24_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x12ec);
      auStackY_138._52_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x5d30);
      auStackY_138._36_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x7b38);
LAB_00020db0:
      prVar35 = (re_dfa_t *)context->nodes_alloc;
      auStackY_138._40_4_ = *(undefined4 *)(auStackY_138._0_4_ + -0x7ee8);
      auStackY_138._32_4_ = *(undefined4 *)(auStackY_138._0_4_ + -0x7ee8);
      pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);
      puVar40 = (undefined *)auStackY_138._0_4_;
      puVar42 = puVar41;
      if ((int)auStackY_138._56_4_ <= (int)prVar35) {
        do {
          input = prVar34;
          prVar34 = (re_dfa_t *)((int)input * 8);
          prVar15 = (re_dfa_t *)0x8;
          piVar10 = (int *)((int)prVar34->word_char + *piVar38 + -0x60);
          prVar5 = (re_dfa_t *)(uint)*(byte *)(piVar10 + 1);
          prVar27 = (re_dfa_t *)auStackY_138._56_4_;
          if (prVar5 == (re_dfa_t *)0x8) {
            iVar8 = *piVar10;
            prVar5 = (re_dfa_t *)(uint)(iVar8 + 1 < (int)prVar25);
            if (prVar5 != (re_dfa_t *)0x0) {
              (context->word_char + iVar8 * 2 + -0x16)[1] = 0xffffffff;
              context->word_char[iVar8 * 2 + -0x16] = auStackY_138._56_4_;
              prVar35 = (re_dfa_t *)context->nodes_alloc;
            }
          }
          else {
            prVar15 = (re_dfa_t *)&DAT_00000009;
            if (prVar5 == (re_dfa_t *)&DAT_00000009) {
              prVar15 = (re_dfa_t *)(uint)(*piVar10 + 1 < (int)prVar25);
              prVar5 = (re_dfa_t *)(*piVar10 * 8 + 8);
              if (prVar15 != (re_dfa_t *)0x0) {
                piVar32 = (int *)((int)(((re_dfa_t *)
                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +
                                        -0x18))->word_char + 0xffffffe8) +
                                 (int)((re_dfa_t *)
                                      (((re_dfa_t *)
                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +
                                       -0x18))->word_char + -0x18))->word_char + 0xffffffa0U);
                pcVar18 = *(code **)(puVar40 + -0x7db8);
                if (*piVar32 < (int)auStackY_138._56_4_) {
                  piVar32[1] = auStackY_138._56_4_;
                  prVar35 = (re_dfa_t *)auStackY_138._20_4_;
                  prVar5 = context;
                }
                else if (((piVar10[1] & 0x1000U) == 0) ||
                        (pbVar3 = prVar5->word_char, prVar35 = context,
                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,
                        *(int *)((int)(((re_dfa_t *)
                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->
                                       word_char + 0xffffffe8) +
                                (int)((re_dfa_t *)
                                     (((re_dfa_t *)
                                      (((re_dfa_t *)
                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->
                                       word_char + -0x18))->word_char + -0x18))->word_char +
                                0xffffffa0U) == -1)) {
                  piVar32[1] = auStackY_138._56_4_;
                  prVar35 = (re_dfa_t *)context->nodes_alloc;
                  goto LAB_00020df8;
                }
                prVar15 = (re_dfa_t *)auStackY_138._28_4_;
                auStackY_138._44_4_ = prVar34;
                auStackY_138._48_4_ = auStackY_138._56_4_;
                (*pcVar18)(prVar35);
                prVar35 = (re_dfa_t *)context->nodes_alloc;
                prVar27 = (re_dfa_t *)auStackY_138._48_4_;
                prVar34 = (re_dfa_t *)auStackY_138._44_4_;
                puVar40 = (undefined *)auStackY_138._0_4_;
              }
            }
          }
LAB_00020df8:
          uVar33 = auStackY_138._24_4_;
          if ((prVar27 == prVar35) && ((re_dfa_t *)mctx_01->word_char[0] == input)) {
            pcVar18 = *(code **)(puVar40 + -0x7db0);
            if (fs == (re_fail_stack_t *)0x0) {
              (*pcVar18)(auStackY_138._68_4_);
              if (auStackY_138._16_4_ == 0) goto LAB_00020f14;
              (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);
              rVar11 = _REG_NOERROR;
              goto LAB_00020f18;
            }
            prVar34 = (re_dfa_t *)0x0;
            if (prVar25 == (re_dfa_t *)0x0) {
LAB_000212c0:
              (*pcVar18)(auStackY_138._68_4_);
              if (auStackY_138._16_4_ != 0) {
                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);
              }
              goto LAB_00020f00;
            }
            prVar5 = (re_dfa_t *)0xffffffff;
            prVar35 = context;
            while (((int)prVar35->nodes < 0 || (prVar35->nodes_alloc != 0xffffffff))) {
              prVar34 = (re_dfa_t *)((int)&prVar34->nodes + 1);
              prVar35 = (re_dfa_t *)&prVar35->nodes_len;
              if (prVar25 == prVar34) {
                pcVar18 = *(code **)(puVar40 + -0x7db0);
                goto LAB_000212c0;
              }
            }
            *(Idx *)(puVar41 + 0x14) = top_node;
            *(re_dfa_t **)(puVar41 + 0x10) = context;
            prVar27 = prVar25;
            input = (re_dfa_t *)(*(code *)uVar33)(fs,&fs->stack,auStackY_138 + 0x38);
            prVar34 = (re_dfa_t *)((int)input << 3);
            puVar40 = (undefined *)auStackY_138._0_4_;
          }
          prVar35 = (re_dfa_t *)auStackY_138._56_4_;
          prVar30 = (re_dfa_t *)mctx_01->completed_bkref_map;
          prVar22 = (re_dfa_t *)prVar30->nodes;
          prVar5 = (re_dfa_t *)
                   ((int)(((re_dfa_t *)
                          (((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))->
                          word_char + 0xffffffe8) +
                   (int)((re_dfa_t *)
                        (((re_dfa_t *)
                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18))->word_char
                        + -0x18))->word_char + 0xffffffa0U);
          prVar15 = (re_dfa_t *)(uint)*(byte *)&prVar5->nodes_alloc;
          if ((*(byte *)&prVar5->nodes_alloc & 8) == 0) {
            if ((prVar5->nodes_alloc & 0x800) == 0) {
              prVar27 = (re_dfa_t *)auStackY_138._56_4_;
              if (prVar15 != (re_dfa_t *)0x4) goto LAB_00020e44;
              pprVar2 = &prVar5->nodes;
              prVar5 = (re_dfa_t *)(context->word_char + (int)*pprVar2 * 2 + -0x16)[1];
              bVar23 = context->word_char[(int)*pprVar2 * 2 + -0x16];
              prVar27 = (re_dfa_t *)((int)prVar5 - bVar23);
              if (fs == (re_fail_stack_t *)0x0) {
                if (prVar27 == (re_dfa_t *)0x0) goto LAB_00021318;
              }
              else {
                prVar22 = input;
                if ((bVar23 == 0xffffffff) ||
                   (prVar15 = (re_dfa_t *)(auStackY_138 + 0x38), prVar5 == (re_dfa_t *)0xffffffff))
                goto LAB_00020f7c;
                if (prVar27 == (re_dfa_t *)0x0) {
LAB_00021318:
                  prVar5 = input;
                  auStackY_138._44_4_ = prVar34;
                  auStackY_138._48_4_ = prVar30;
                  iVar8 = (*(code *)auStackY_138._36_4_)(top_node);
                  prVar34 = input;
                  if (iVar8 == 0) goto LAB_000213ac;
                  pprVar1 = (re_node_set **)(auStackY_138._48_4_ + 0x14);
                  auStackY_138._8_4_ = auStackY_138._48_4_;
                  auStackY_138._48_4_ = auStackY_138._56_4_;
                  iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);
                  prVar34 = (re_dfa_t *)*(*pprVar1)[(int)input].elems;
                  prVar5 = (re_dfa_t *)(iVar8 + 0xc);
                  prVar15 = prVar34;
                  iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));
                  puVar40 = (undefined *)auStackY_138._0_4_;
                  if (iVar8 != 0) goto LAB_00020ecc;
                  prVar5 = (re_dfa_t *)
                           ((int)(auStackY_138._44_4_ + 0x60) +
                           (int)(*(re_token_t **)auStackY_138._8_4_ + -0xc));
                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;
                  prVar30 = (re_dfa_t *)auStackY_138._8_4_;
                  goto LAB_00020e44;
                }
                prVar5 = (re_dfa_t *)
                         ((int)(auStackY_138._56_4_ + 0x60) + (mctx_01->nodes_alloc - 0x60));
                auStackY_138._44_4_ = prVar30;
                auStackY_138._48_4_ = prVar27;
                iVar8 = (**(code **)(puVar40 + -0x7dd0))(mctx_01->nodes_alloc + bVar23);
                prVar15 = prVar27;
                prVar27 = (re_dfa_t *)auStackY_138._48_4_;
                prVar30 = (re_dfa_t *)auStackY_138._44_4_;
                prVar22 = prVar35;
                puVar40 = (undefined *)auStackY_138._0_4_;
                if (iVar8 != 0) goto LAB_00020f7c;
              }
LAB_00021258:
              auStackY_138._56_4_ =
                   (int)(((re_dfa_t *)
                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))->word_char
                        + 0xffffffe8) +
                   (int)((re_dfa_t *)
                        (((re_dfa_t *)
                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char
                        + -0x18))->word_char + 0xffffffa0U;
              prVar34 = *(re_dfa_t **)(((re_node_set *)&prVar30->nexts)->alloc + (int)input * 4);
              input = prVar35;
            }
            else {
              prVar5 = (re_dfa_t *)&prVar30->syntax;
              auStackY_138._48_4_ = prVar30;
              auStackY_138._44_4_ = prVar34;
              *(undefined4 *)(puVar41 + 0x10) = auStackY_138._56_4_;
              prVar15 = input;
              prVar27 = (re_dfa_t *)
                        check_node_accept_bytes
                                  (prVar22,(Idx)prVar5,(re_string_t *)input,(Idx)mctx_01,
                                   *(re_dfa_t **)(puVar41 + 0x10));
              prVar30 = (re_dfa_t *)auStackY_138._48_4_;
              prVar35 = (re_dfa_t *)auStackY_138._56_4_;
              puVar40 = (undefined *)auStackY_138._0_4_;
              if (prVar27 != (re_dfa_t *)0x0) goto LAB_00021258;
              prVar5 = (re_dfa_t *)
                       ((int)(auStackY_138._44_4_ + 0x60) +
                       (int)(*(re_token_t **)auStackY_138._48_4_ + -0xc));
              prVar27 = (re_dfa_t *)auStackY_138._56_4_;
LAB_00020e44:
              prVar15 = prVar27;
              auStackY_138._44_4_ = prVar30;
              auStackY_138._48_4_ = prVar15;
              _Var14 = check_node_accept((re_match_context_t *)mctx_01,(re_token_t *)prVar5,
                                         (Idx)prVar15);
              prVar27 = (re_dfa_t *)auStackY_138._48_4_;
              puVar40 = (undefined *)auStackY_138._0_4_;
              if (CONCAT31(extraout_var,_Var14) == 0) goto LAB_00020f6c;
              auStackY_138._56_4_ = (int)(re_token_t **)auStackY_138._48_4_ + 1;
              input = (re_dfa_t *)
                      (((re_node_set *)(auStackY_138._44_4_ + 0xc))->alloc + (int)input * 4);
              prVar34 = (re_dfa_t *)input->nodes;
            }
            if (fs != (re_fail_stack_t *)0x0) {
              prVar22 = input;
              if ((mctx_01->mb_cur_max < (int)auStackY_138._56_4_) ||
                 (iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4), iVar8 == 0))
              goto LAB_00020f7c;
              prVar5 = (re_dfa_t *)(iVar8 + 0xc);
              prVar15 = prVar34;
              iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));
              puVar40 = (undefined *)auStackY_138._0_4_;
              if (iVar8 == 0) goto LAB_00020f7c;
            }
            auStackY_138._64_4_ = 0;
          }
          else {
            prVar34 = (re_dfa_t *)(prVar30->edests + (int)input);
            iVar13 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);
            iVar8 = (*(code *)auStackY_138._36_4_)(top_node);
            prVar5 = input;
            if (iVar8 == 0) {
LAB_000213ac:
              input = prVar34;
              pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);
              goto LAB_000213b0;
            }
            sVar28 = prVar34->nodes_alloc;
            input = prVar34;
            puVar40 = (undefined *)auStackY_138._0_4_;
            if ((int)sVar28 < 1) goto LAB_00020f6c;
            uVar33 = *(undefined4 *)(iVar13 + 8);
            pIVar31 = (Idx *)prVar34->nodes_len;
            sVar29 = 0;
            prVar22 = (re_dfa_t *)0xffffffff;
            prVar35 = (re_dfa_t *)(iVar13 + 0xc);
            prVar30 = (re_dfa_t *)0xffffffff;
            do {
              prVar5 = prVar35;
              input = (re_dfa_t *)*pIVar31;
              prVar15 = input;
              prVar35 = prVar5;
              iVar8 = (*(code *)auStackY_138._52_4_)(uVar33);
              prVar34 = prVar30;
              if ((iVar8 != 0) && (prVar34 = input, prVar30 != prVar22)) {
                prVar5 = (re_dfa_t *)(auStackY_138 + 0x44);
                prVar15 = prVar30;
                iVar8 = (*(code *)auStackY_138._52_4_)(auStackY_138._64_4_);
                puVar40 = (undefined *)auStackY_138._0_4_;
                if ((iVar8 != 0) || (prVar34 = prVar30, fs == (re_fail_stack_t *)0x0)) break;
                prVar15 = (re_dfa_t *)fs->num;
                prVar5 = (re_dfa_t *)((int)&prVar15->nodes + 1);
                fs->num = (Idx)prVar5;
                if (prVar5 == (re_dfa_t *)fs->alloc) {
                  auStackY_138._48_4_ = auStackY_138._56_4_;
                  prVar5 = (re_dfa_t *)((int)prVar5 * 0x30);
                  auStackY_138._44_4_ = prVar15;
                  prVar12 = (re_fail_stack_ent_t *)
                            (**(code **)(auStackY_138._0_4_ + -0x7e18))(fs->stack);
                  if (prVar12 != (re_fail_stack_ent_t *)0x0) {
                    fs->stack = prVar12;
                    fs->alloc = fs->alloc << 1;
                    prVar15 = (re_dfa_t *)auStackY_138._44_4_;
                    prVar34 = (re_dfa_t *)auStackY_138._48_4_;
                    goto LAB_000210a0;
                  }
                }
                else {
                  prVar12 = fs->stack;
                  prVar34 = (re_dfa_t *)auStackY_138._56_4_;
LAB_000210a0:
                  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7e1c);
                  auStackY_138._48_4_ = prVar12 + (int)prVar15;
                  ((re_dfa_t *)auStackY_138._48_4_)->nodes = (re_token_t *)prVar34;
                  ((re_dfa_t *)auStackY_138._48_4_)->nodes_alloc = (size_t)input;
                  pIVar31 = (Idx *)(*pcVar18)(auStackY_138._28_4_);
                  *(Idx **)(auStackY_138._48_4_ + 8) = pIVar31;
                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;
                  if (pIVar31 != (Idx *)0x0) {
                    prVar15 = (re_dfa_t *)auStackY_138._28_4_;
                    (**(code **)(auStackY_138._0_4_ + -0x7db8))(pIVar31,context);
                    prVar5 = (re_dfa_t *)top_node;
                    prVar27 = (re_dfa_t *)auStackY_138._48_4_;
                    rVar11 = re_node_set_init_copy
                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),
                                        (re_node_set *)top_node);
                    prVar34 = prVar30;
                    puVar40 = (undefined *)auStackY_138._0_4_;
                    if (rVar11 == _REG_NOERROR) break;
                  }
                }
                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._68_4_);
                if (auStackY_138._16_4_ != 0) goto LAB_000214d4;
                goto LAB_0002112c;
              }
              sVar29 = sVar29 + 1;
              pIVar31 = pIVar31 + 1;
              prVar30 = prVar34;
              puVar40 = (undefined *)auStackY_138._0_4_;
            } while (sVar28 != sVar29);
          }
LAB_00020ecc:
          if ((int)prVar34 < 0) goto LAB_00020f60;
          prVar35 = (re_dfa_t *)context->nodes_alloc;
          pcVar18 = *(code **)(puVar40 + -0x7db0);
          if ((int)prVar35 < (int)auStackY_138._56_4_) break;
        } while( true );
      }
      prVar27 = (re_dfa_t *)auStackY_138._56_4_;
      (*pcVar18)(auStackY_138._68_4_);
      if (auStackY_138._16_4_ == 0) {
        rVar11 = _REG_NOERROR;
        if (fs == (re_fail_stack_t *)0x0) goto LAB_00020f18;
      }
      else {
        (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);
        if (fs == (re_fail_stack_t *)0x0) {
          rVar11 = _REG_NOERROR;
          goto LAB_00020f18;
        }
      }
LAB_00020f00:
      free_fail_stack_return(fs);
LAB_00020f14:
      rVar11 = _REG_NOERROR;
      goto LAB_00020f18;
    }
  }
  rVar11 = _REG_ESPACE;
  puVar42 = puVar43;
LAB_00020f18:
  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7ddc);
  if (prStackY_e4 == *(re_match_context_t **)auStackY_138._12_4_) {
    return rVar11;
  }
  pcVar19 = get_subexp_sub;
  mctx_00 = prStackY_e4;
  (*pcVar18)();
  *(re_dfa_t **)(puVar42 + -0x18) = input;
  *(Idx *)(puVar42 + -0x14) = top_node;
  *(re_dfa_t **)(puVar42 + -0x1c) = context;
  *(re_dfa_t **)(puVar42 + -0x10) = prVar25;
  *(code **)(puVar42 + -0x28) = pcVar18 + 0x22b80;
  *(re_dfa_t **)(puVar42 + -0x20) = mctx_01;
  *(code **)(puVar42 + -4) = pcVar19;
  *(int **)(puVar42 + -8) = piVar38;
  *(re_fail_stack_t **)(puVar42 + -0xc) = fs;
  iVar8 = *(int *)(puVar42 + 0x10);
  sVar28 = prVar15->nodes_alloc;
  prVar26 = prVar15->nodes;
  *(undefined4 *)(puVar42 + -0x30) = 8;
  *(int *)(puVar42 + -0x34) = iVar8;
  *(re_dfa_t **)(puVar42 + -0x38) = prVar27;
  rVar11 = check_arrival(mctx_00,(state_array_t *)&prVar15->nodes_len,(Idx)prVar26,sVar28,
                         *(Idx *)(puVar42 + -0x38),*(Idx *)(puVar42 + -0x34),
                         *(int *)(puVar42 + -0x30));
  if (rVar11 != _REG_NOERROR) {
    return rVar11;
  }
  iVar13 = mctx_00->nbkref_ents;
  prVar39 = prVar5->nodes;
  prVar37 = (re_token_t *)prVar15->nodes_alloc;
  prVar24 = mctx_00->bkref_ents;
  prVar26 = prVar37;
  if (mctx_00->abkref_ents <= iVar13) {
    prVar24 = (re_backref_cache_entry *)
              (**(code **)(*(int *)(puVar42 + -0x28) + -0x7e18))
                        (prVar24,mctx_00->abkref_ents * 0x28);
    if (prVar24 == (re_backref_cache_entry *)0x0) {
      (**(code **)(*(int *)(puVar42 + -0x28) + -0x7db0))(mctx_00->bkref_ents);
      return _REG_ESPACE;
    }
    pcVar18 = *(code **)(*(int *)(puVar42 + -0x28) + -0x7e40);
    mctx_00->bkref_ents = prVar24;
    (*pcVar18)(prVar24 + mctx_00->nbkref_ents,0,mctx_00->abkref_ents * 0x14);
    prVar26 = (re_token_t *)prVar15->nodes_alloc;
    iVar13 = mctx_00->nbkref_ents;
    prVar24 = mctx_00->bkref_ents;
    mctx_00->abkref_ents = mctx_00->abkref_ents << 1;
  }
  if ((0 < iVar13) && (iVar8 == prVar24[iVar13 + -1].str_idx)) {
    prVar24[iVar13 + -1].more = '\x01';
  }
  prVar24 = prVar24 + iVar13;
  prVar24->node = (Idx)prVar27;
  prVar24->str_idx = iVar8;
  prVar24->subexp_from = (Idx)prVar39;
  prVar24->subexp_to = (Idx)prVar37;
  prVar24->eps_reachable_subexps_map = -(ushort)(prVar39 == prVar37);
  mctx_00->nbkref_ents = iVar13 + 1;
  prVar24->more = '\0';
  if (mctx_00->max_mb_elem_len < (int)prVar37 - (int)prVar39) {
    mctx_00->max_mb_elem_len = (int)prVar37 - (int)prVar39;
  }
  rVar11 = clean_state_log_if_needed(mctx_00,(int)prVar26 + (iVar8 - (int)prVar5->nodes));
  return rVar11;
LAB_00020f60:
  pcVar18 = *(code **)(puVar40 + -0x7db0);
  prVar27 = (re_dfa_t *)auStackY_138._56_4_;
  if (prVar34 == (re_dfa_t *)&SUB_fffffffe) {
LAB_000213b0:
    (*pcVar18)(auStackY_138._68_4_);
    if (auStackY_138._16_4_ != 0) {
LAB_000214d4:
      (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);
    }
    if (fs != (re_fail_stack_t *)0x0) goto LAB_0002112c;
    rVar11 = _REG_ESPACE;
    goto LAB_00020f18;
  }
LAB_00020f6c:
  prVar22 = input;
  if (fs == (re_fail_stack_t *)0x0) {
    (**(code **)(puVar40 + -0x7db0))(auStackY_138._68_4_);
    if (auStackY_138._16_4_ == 0) {
      rVar11 = _REG_NOMATCH;
    }
    else {
      (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);
      rVar11 = _REG_NOMATCH;
    }
    goto LAB_00020f18;
  }
LAB_00020f7c:
  uVar33 = auStackY_138._24_4_;
  prVar15 = (re_dfa_t *)(auStackY_138 + 0x38);
  prVar5 = (re_dfa_t *)&fs->stack;
  *(Idx *)(puVar41 + 0x14) = top_node;
  *(re_dfa_t **)(puVar41 + 0x10) = context;
  prVar34 = (re_dfa_t *)(*(code *)uVar33)(fs,prVar5,prVar15,prVar25);
  input = prVar22;
  goto LAB_00020db0;
}



/* WARNING: Type propagation algorithm not settling */

uint FUN_00020550(int *******param_1,int *******param_2,int *******param_3,int *******param_4,
                 int *******param_5,int param_6,int *******param_7)

{
  uint *puVar1;
  undefined *puVar2;
  int *******pppppppiVar3;
  int ******ppppppiVar4;
  code *pcVar5;
  int iVar6;
  int *******pppppppiVar7;
  int *****pppppiVar8;
  int *piVar9;
  uint uVar10;
  int iVar11;
  int *******pppppppiVar12;
  int ******ppppppiVar13;
  int ******ppppppiVar14;
  code *pcVar15;
  code *pcVar16;
  code *pcVar17;
  int ******ppppppiVar18;
  int ****ppppiVar19;
  int iVar20;
  undefined4 *puVar21;
  int *******pppppppiVar22;
  int *******pppppppiVar23;
  int iVar24;
  int *******pppppppiVar25;
  int *******pppppppiVar26;
  int *******pppppppiVar27;
  int *******pppppppiVar28;
  int *******pppppppiVar29;
  int *******pppppppiVar30;
  int iVar31;
  int ******ppppppiVar32;
  int *******unaff_s5;
  int **ppiVar33;
  int *piVar34;
  int ******unaff_s7;
  undefined *puVar35;
  int ****ppppiVar36;
  undefined1 *puVar37;
  undefined1 *puVar38;
  undefined1 *puVar39;
  int *******unaff_s8;
  undefined1 auStack_150 [24];
  int ******appppppiStack_138 [2];
  int *******pppppppiStack_130;
  int *piStack_12c;
  int iStack_128;
  int *******pppppppiStack_124;
  int ****ppppiStack_120;
  int *******pppppppiStack_11c;
  int ****ppppiStack_118;
  int ****ppppiStack_114;
  int ****ppppiStack_110;
  int *******pppppppiStack_10c;
  int *******pppppppiStack_108;
  int ****ppppiStack_104;
  int *******pppppppiStack_100;
  int ******ppppppiStack_fc;
  undefined4 uStack_f8;
  int ******ppppppiStack_f4;
  int *piStack_f0;
  undefined4 uStack_ec;
  int iStack_e8;
  int iStack_e4;
  int *******pppppppiStack_e0;
  int *******pppppppiStack_dc;
  int *******pppppppiStack_d8;
  int *******pppppppiStack_d4;
  int ******ppppppiStack_d0;
  int *******pppppppiStack_cc;
  int *******pppppppiStack_c8;
  int ******ppppppiStack_c4;
  int *******pppppppiStack_c0;
  code *pcStack_bc;
  undefined4 local_a8;
  int local_8c;
  code *local_6c;
  uint local_4c;
  uint local_48 [3];
  undefined4 *local_3c;
  int ******local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 *local_2c;
  
  puVar35 = PTR___stack_chk_guard_0003c314;
  pppppppiVar12 = (int *******)param_1[0x15];
  pppppppiVar30 = (int *******)param_2[1];
  local_2c = *(undefined4 **)PTR___stack_chk_guard_0003c314;
  pppppppiVar22 = (int *******)((int)param_3 * 8);
  pppppppiVar23 = (int *******)(param_6 + (int)param_1[0x1e]);
  local_4c = 0;
  pppppppiVar3 = (int *******)(*pppppppiVar12)[(int)param_3 * 2];
  pppppppiVar7 = param_4;
  if ((int)pppppppiVar23 < (int)pppppppiVar30) {
LAB_000205e8:
    puVar2 = PTR_LAB_0003c1e8;
    ppppppiVar13 = param_1[0x19];
    pppppppiVar23 = (int *******)param_1[0x16];
    pppppppiVar28 = (int *******)*param_2;
    ppppppiVar32 = param_2[2];
    ppppppiVar14 = param_1[10];
    if (pppppppiVar28 == (int *******)0x0) {
      param_1[0x19] = ppppppiVar32;
      pppppppiVar22 = (int *******)((int)param_4 + -1);
      param_1[10] = (int ******)param_4;
      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);
LAB_00020b7c:
      local_48[1] = 1;
      local_48[2] = 1;
      local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4);
      if (local_3c == (undefined4 *)0x0) goto LAB_00020c64;
      pppppppiVar22 = (int *******)(local_48 + 1);
      *local_3c = param_3;
      local_4c = 0;
      pppppppiVar23 = pppppppiVar3;
      pppppppiVar7 = param_7;
      local_4c = FUN_0001afe8(pppppppiVar12);
      pppppppiVar28 = param_4;
      if (local_4c == 0) {
LAB_00020ab8:
        pppppppiVar25 = (int *******)(local_48 + 1);
        if (local_48[2] != 0) {
          local_a8 = param_7;
          pppppppiVar22 = pppppppiVar25;
          pppppppiVar23 = pppppppiVar28;
          pppppppiVar7 = pppppppiVar3;
          local_4c = FUN_0001c580(param_1);
          if (local_4c != 0) goto LAB_00020920;
        }
        pppppppiVar22 = pppppppiVar12;
        pppppppiVar7 = pppppppiVar30;
        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);
        pppppppiVar23 = pppppppiVar25;
        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {
          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;
          pppppppiVar25 = pppppppiVar28;
          goto LAB_00020670;
        }
      }
LAB_00020920:
      (*(code *)PTR_free_0003c320)(local_3c);
      uVar10 = local_4c;
    }
    else {
      param_1[0x19] = ppppppiVar32;
      pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);
      param_1[10] = (int ******)pppppppiVar28;
      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);
      if (pppppppiVar28 == param_4) goto LAB_00020b7c;
      ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;
      unaff_s7 = (int ******)*ppppppiVar32;
      pppppppiVar25 = pppppppiVar28;
      if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {
        local_48[1] = 0;
        local_48[2] = 0;
        local_3c = (undefined4 *)0x0;
LAB_00020670:
        local_6c = (code *)(puVar2 + -0x34b0);
        puVar1 = local_48 + 1;
        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {
          ppppppiVar4 = param_1[0x19];
          local_8c = 0;
          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);
          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);
          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);
          pppppppiVar28 = pppppppiVar25;
          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);
          do {
            pppppppiVar25 = unaff_s8;
            local_48[2] = 0;
            param_3 = (int *******)((int)pppppppiVar25 + -1);
            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {
              uVar10 = local_4c;
              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;
              ppppppiVar4 = param_1[0x16];
            }
            else {
              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);
              local_4c = FUN_0001aa4c(puVar1);
              unaff_s8 = pppppppiVar25;
              if (local_4c != 0) goto LAB_00020920;
              uVar10 = 0;
              if (unaff_s7 != (int ******)0x0) {
LAB_000206f8:
                local_4c = uVar10;
                unaff_s5 = &local_38;
                pppppppiVar30 = (int *******)param_1[0x15];
                local_38 = (int ******)0x0;
                local_48[0] = 0;
                local_34 = 0;
                local_30 = 0;
                if (0 < (int)unaff_s7[5]) {
                  ppppppiVar32 = (int ******)0x0;
                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);
                  do {
                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];
                    param_4 = (int *******)((int)pppppppiVar29 * 8);
                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;
                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {
                      pppppppiVar23 = pppppppiVar29;
                      pppppppiVar7 = param_1;
                      local_a8 = param_3;
                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);
                      if (iVar6 < 2) {
                        unaff_s8 = pppppppiVar25;
                        if (iVar6 == 0) {
                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;
                          goto LAB_00020768;
                        }
                        goto LAB_00020784;
                      }
                      iVar6 = (int)param_3 + iVar6;
                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);
                      param_4 = (int *******)(iVar6 * 4);
                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];
                      local_34 = 0;
                      if (param_1[0x19][iVar6] == (int *****)0x0) {
LAB_000209e0:
                        pppppppiVar22 = unaff_s8;
                        iVar31 = (*pcVar17)(unaff_s5);
                        if (iVar31 == 0) goto LAB_00020904;
                        pppppppiVar7 = (int *******)param_1[0x19];
                        unaff_s8 = pppppppiVar7 + iVar6;
                        pppppppiVar22 = pppppppiVar30;
                        pppppppiVar23 = unaff_s5;
                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);
                        ppppppiVar18 = param_1[0x19];
                        *unaff_s8 = ppppppiVar4;
                        param_4 = (int *******)(ppppppiVar18 + iVar6);
                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;
                      }
                      else {
                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);
                        local_48[0] = FUN_0001aa4c(unaff_s5);
                        if (local_48[0] == 0) goto LAB_000209e0;
                      }
                      (*(code *)PTR_free_0003c320)(local_30);
                      local_4c = local_48[0];
                      unaff_s8 = pppppppiVar25;
                      if (local_48[0] == 0) goto LAB_000207d0;
                      goto LAB_00020920;
                    }
LAB_00020768:
                    pppppppiVar23 = param_3;
                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);
                    unaff_s8 = pppppppiVar25;
                    if (iVar6 != 0) {
LAB_00020784:
                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);
                      pppppppiVar22 = (int *******)*pppppppiVar28;
                      iVar6 = (*pcVar17)(puVar1);
                      if (iVar6 == 0) {
LAB_00020904:
                        (*(code *)PTR_free_0003c320)(local_30);
                        local_4c = 0xc;
                        goto LAB_00020920;
                      }
                    }
                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);
                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);
                }
                (*(code *)PTR_free_0003c320)(local_30);
                local_4c = 0;
              }
LAB_000207d0:
              if (local_48[2] != 0) {
                pppppppiVar22 = (int *******)puVar1;
                pppppppiVar23 = pppppppiVar3;
                pppppppiVar7 = param_7;
                local_4c = (*pcVar15)(pppppppiVar12);
                pppppppiVar28 = pppppppiVar25;
                unaff_s8 = pppppppiVar25;
                if (local_4c != 0) goto LAB_00020920;
                local_a8 = param_7;
                pppppppiVar22 = (int *******)puVar1;
                pppppppiVar23 = pppppppiVar25;
                pppppppiVar7 = pppppppiVar3;
                local_4c = FUN_0001c580(param_1);
                if (local_4c != 0) goto LAB_00020920;
              }
              ppppppiVar4 = param_1[0x16];
            }
            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);
            pppppppiVar22 = pppppppiVar12;
            pppppppiVar23 = (int *******)puVar1;
            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);
            if (unaff_s7 == (int ******)0x0) {
              pppppppiVar28 = pppppppiVar25;
              unaff_s8 = pppppppiVar25;
              if (local_4c != 0) goto LAB_00020920;
              ppppppiVar4 = param_1[0x19];
              local_8c = local_8c + 1;
              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);
              *unaff_s5 = (int ******)0x0;
            }
            else {
              ppppppiVar4 = param_1[0x19];
              local_8c = 0;
              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);
              *unaff_s5 = unaff_s7;
            }
            unaff_s8 = pppppppiVar25;
          } while (((int)pppppppiVar25 < param_6) &&
                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,
                  local_8c <= (int)param_1[0x1e]));
        }
        (*(code *)PTR_free_0003c320)(local_3c);
        pppppiVar8 = param_1[0x19][param_6];
        pppppppiVar28 = pppppppiVar25;
        if (pppppiVar8 == (int *****)0x0) {
          *param_2 = (int ******)pppppppiVar25;
          param_1[0x19] = ppppppiVar13;
          param_1[10] = ppppppiVar14;
          uVar10 = 1;
        }
        else {
          pppppppiVar22 = (int *******)(pppppiVar8 + 3);
          *param_2 = (int ******)pppppppiVar25;
          param_1[10] = ppppppiVar14;
          ppppiVar19 = pppppiVar8[2];
          param_1[0x19] = ppppppiVar13;
          iVar6 = FUN_0001a2d0(ppppiVar19);
          uVar10 = (uint)(iVar6 == 0);
          pppppppiVar23 = param_5;
        }
      }
      else {
        pppppppiVar22 = (int *******)(unaff_s7 + 1);
        uVar10 = FUN_0001ba80(local_48 + 1);
        local_4c = uVar10;
        if (uVar10 == 0) {
          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;
          goto LAB_00020ab8;
        }
      }
    }
  }
  else {
    pppppppiVar28 = (int *******)((int)pppppppiVar23 + 1);
    ppppppiVar32 = (int ******)((int)pppppppiVar30 + (int)pppppppiVar28);
    if (((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&
       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)) {
      pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);
      ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);
      puVar2 = PTR_memset_0003c290;
      if (ppppppiVar13 != (int ******)0x0) {
        param_2[2] = ppppppiVar13;
        param_2[1] = ppppppiVar32;
        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);
        goto LAB_000205e8;
      }
    }
LAB_00020c64:
    uVar10 = 0xc;
  }
  if (local_2c == *(undefined4 **)puVar35) {
    return uVar10;
  }
  pcVar15 = FUN_00020ca0;
  puVar21 = local_2c;
  puVar35 = PTR___stack_chk_fail_0003c2f4;
  (*(code *)PTR___stack_chk_fail_0003c2f4)();
  appppppiStack_138[0] = (int ******)(puVar35 + 0x23430);
  puVar37 = auStack_150;
  puVar38 = auStack_150;
  piStack_12c = *(int **)(puVar35 + 0x1b674);
  uStack_ec = 2;
  piStack_f0 = (int *)0x0;
  iStack_e8 = 0;
  iStack_e4 = *piStack_12c;
  piVar34 = (int *)*puVar21;
  pppppppiVar3 = pppppppiVar22;
  pppppppiVar12 = pppppppiVar23;
  pppppppiVar25 = pppppppiVar7;
  pppppppiStack_e0 = pppppppiVar28;
  pppppppiStack_dc = param_4;
  pppppppiStack_d8 = pppppppiVar30;
  pppppppiStack_d4 = param_3;
  ppppppiStack_d0 = ppppppiVar32;
  pppppppiStack_cc = unaff_s5;
  pppppppiStack_c8 = param_1;
  ppppppiStack_c4 = unaff_s7;
  pppppppiStack_c0 = unaff_s8;
  pcStack_bc = pcVar15;
  if ((char)local_a8 == '\0') {
    pppppppiVar28 = (int *******)piVar34[0x12];
    ppiVar33 = (int **)0x0;
    if ((uint)((int)pppppppiVar23 << 3) < 0xfc0) goto LAB_00020d5c;
LAB_00021488:
    pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);
    ppppppiStack_f4 = (int ******)0x0;
    uStack_f8 = 0;
    ppppppiStack_fc = (int ******)0x0;
    param_3 = &ppppppiStack_fc;
    pppppppiStack_124 = (int *******)(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c);
    iStack_128 = 1;
    if (pppppppiStack_124 != (int *******)0x0) goto LAB_00020d6c;
    puVar37 = auStack_150;
    if (ppiVar33 == (int **)0x0) {
      uVar10 = 0xc;
      goto LAB_00020f18;
    }
LAB_0002112c:
    param_3 = &ppppppiStack_fc;
    FUN_0001ec78(ppiVar33);
    puVar39 = puVar37;
  }
  else {
    ppiVar33 = &piStack_f0;
    iStack_e8 = (**(code **)(puVar35 + 0x1b614))(0x30);
    puVar39 = auStack_150;
    if (iStack_e8 != 0) {
      pppppppiVar28 = (int *******)piVar34[0x12];
      if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;
LAB_00020d5c:
      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);
      ppppppiStack_f4 = (int ******)0x0;
      uStack_f8 = 0;
      ppppppiStack_fc = (int ******)0x0;
      puVar37 = auStack_150 + (int)pppppppiVar23 * -8;
      iStack_128 = 0;
      pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;
LAB_00020d6c:
      param_3 = &ppppppiStack_fc;
      pppppppiVar3 = pppppppiVar7;
      pppppppiVar12 = pppppppiStack_11c;
      (*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);
      pppppppiStack_100 = (int *******)*pppppppiVar7;
      ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);
      ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);
      ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);
LAB_00020db0:
      pppppppiVar29 = (int *******)pppppppiVar7[1];
      ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];
      ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];
      ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];
      ppppppiVar32 = appppppiStack_138[0];
      puVar38 = puVar37;
      if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {
        do {
          pppppppiVar30 = pppppppiVar28;
          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);
          pppppppiVar12 = (int *******)0x8;
          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);
          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);
          pppppppiVar25 = pppppppiStack_100;
          if (pppppppiVar3 == (int *******)0x8) {
            iVar6 = *piVar9;
            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);
            if (pppppppiVar3 != (int *******)0x0) {
              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;
              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;
              pppppppiVar29 = (int *******)pppppppiVar7[1];
            }
          }
          else {
            pppppppiVar12 = (int *******)&DAT_00000009;
            if (pppppppiVar3 == (int *******)&DAT_00000009) {
              iVar6 = *piVar9 + 1;
              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);
              pppppppiVar3 = (int *******)(iVar6 * 8);
              if (pppppppiVar12 != (int *******)0x0) {
                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;
                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];
                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {
                  pppppppiVar29[1] = (int ******)pppppppiStack_100;
                  pppppppiVar26 = pppppppiStack_124;
                  pppppppiVar3 = pppppppiVar7;
                }
                else if (((piVar9[1] & 0x1000U) == 0) ||
                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,
                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {
                  pppppppiVar29[1] = (int ******)pppppppiStack_100;
                  pppppppiVar29 = (int *******)pppppppiVar7[1];
                  goto LAB_00020df8;
                }
                pppppppiVar12 = pppppppiStack_11c;
                pppppppiStack_10c = pppppppiVar28;
                pppppppiStack_108 = pppppppiStack_100;
                (*(code *)ppppiVar19)(pppppppiVar26);
                pppppppiVar29 = (int *******)pppppppiVar7[1];
                pppppppiVar25 = pppppppiStack_108;
                pppppppiVar28 = pppppppiStack_10c;
                ppppppiVar32 = appppppiStack_138[0];
              }
            }
          }
LAB_00020df8:
          ppppiVar19 = ppppiStack_120;
          if ((pppppppiVar25 == pppppppiVar29) &&
             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {
            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];
            if (ppiVar33 == (int **)0x0) {
              (*(code *)ppppiVar36)(ppppppiStack_f4);
              if (iStack_128 == 0) goto LAB_00020f14;
              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);
              uVar10 = 0;
              goto LAB_00020f18;
            }
            pppppppiVar28 = (int *******)0x0;
            if (pppppppiVar23 == (int *******)0x0) {
LAB_000212c0:
              (*(code *)ppppiVar36)(ppppppiStack_f4);
              if (iStack_128 != 0) {
                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);
              }
              goto LAB_00020f00;
            }
            pppppppiVar3 = (int *******)0xffffffff;
            pppppppiVar29 = pppppppiVar7;
            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {
              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);
              pppppppiVar29 = pppppppiVar29 + 2;
              if (pppppppiVar23 == pppppppiVar28) {
                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];
                goto LAB_000212c0;
              }
            }
            *(int ********)(puVar37 + 0x14) = param_3;
            *(int ********)(puVar37 + 0x10) = pppppppiVar7;
            pppppppiVar25 = pppppppiVar23;
            pppppppiVar30 =
                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);
            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);
            ppppppiVar32 = appppppiStack_138[0];
          }
          pppppppiVar29 = pppppppiStack_100;
          pppppppiVar26 = (int *******)pppppppiVar22[0x15];
          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);
          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);
          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {
            if (((uint)pppppppiVar3[1] & 0x800) == 0) {
              pppppppiVar25 = pppppppiStack_100;
              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;
              ppppppiVar13 = *pppppppiVar3;
              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];
              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];
              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);
              if (ppiVar33 == (int **)0x0) {
                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;
              }
              else {
                pppppppiVar27 = pppppppiVar30;
                if ((ppppppiVar13 == (int ******)0xffffffff) ||
                   (pppppppiVar12 = (int *******)&pppppppiStack_100,
                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;
                if (pppppppiVar25 == (int *******)0x0) {
LAB_00021318:
                  pppppppiVar3 = pppppppiVar30;
                  pppppppiStack_10c = pppppppiVar28;
                  pppppppiStack_108 = pppppppiVar26;
                  iVar6 = (*(code *)ppppiStack_114)(param_3);
                  pppppppiVar28 = pppppppiVar30;
                  if (iVar6 == 0) goto LAB_000213ac;
                  pppppppiVar3 = pppppppiStack_108 + 5;
                  pppppppiStack_130 = pppppppiStack_108;
                  pppppppiStack_108 = pppppppiStack_100;
                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];
                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);
                  pppppppiVar12 = pppppppiVar28;
                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);
                  ppppppiVar32 = appppppiStack_138[0];
                  if (iVar6 != 0) goto LAB_00020ecc;
                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);
                  pppppppiVar25 = pppppppiStack_108;
                  pppppppiVar26 = pppppppiStack_130;
                  goto LAB_00020e44;
                }
                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);
                pppppppiStack_10c = pppppppiVar26;
                pppppppiStack_108 = pppppppiVar25;
                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])
                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);
                pppppppiVar12 = pppppppiVar25;
                pppppppiVar25 = pppppppiStack_108;
                pppppppiVar26 = pppppppiStack_10c;
                pppppppiVar27 = pppppppiVar29;
                ppppppiVar32 = appppppiStack_138[0];
                if (iVar6 != 0) goto LAB_00020f7c;
              }
LAB_00021258:
              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);
              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];
              pppppppiVar30 = pppppppiVar29;
            }
            else {
              pppppppiVar3 = pppppppiVar26 + 0x20;
              pppppppiStack_10c = pppppppiVar28;
              pppppppiStack_108 = pppppppiVar26;
              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;
              pppppppiVar12 = pppppppiVar30;
              pppppppiVar25 = (int *******)FUN_000201f0();
              pppppppiVar26 = pppppppiStack_108;
              pppppppiVar29 = pppppppiStack_100;
              ppppppiVar32 = appppppiStack_138[0];
              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;
              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);
              pppppppiVar25 = pppppppiStack_100;
LAB_00020e44:
              pppppppiVar12 = pppppppiVar25;
              pppppppiStack_10c = pppppppiVar26;
              pppppppiStack_108 = pppppppiVar12;
              iVar6 = FUN_0001cc98(pppppppiVar22);
              pppppppiVar25 = pppppppiStack_108;
              ppppppiVar32 = appppppiStack_138[0];
              if (iVar6 == 0) goto LAB_00020f6c;
              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);
              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];
              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);
            }
            if (ppiVar33 != (int **)0x0) {
              pppppppiVar27 = pppppppiVar30;
              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||
                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],
                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;
              pppppppiVar3 = (int *******)(pppppiVar8 + 3);
              pppppppiVar12 = pppppppiVar28;
              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);
              ppppppiVar32 = appppppiStack_138[0];
              if (iVar6 == 0) goto LAB_00020f7c;
            }
            uStack_f8 = 0;
          }
          else {
            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);
            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];
            iVar6 = (*(code *)ppppiStack_114)(param_3);
            pppppppiVar3 = pppppppiVar30;
            if (iVar6 == 0) {
LAB_000213ac:
              pppppppiVar30 = pppppppiVar28;
              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];
              goto LAB_000213b0;
            }
            ppppppiVar13 = pppppppiVar28[1];
            pppppppiVar30 = pppppppiVar28;
            ppppppiVar32 = appppppiStack_138[0];
            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;
            ppppiVar19 = pppppiVar8[2];
            ppppppiVar4 = pppppppiVar28[2];
            ppppppiVar14 = (int ******)0x0;
            pppppppiVar27 = (int *******)0xffffffff;
            pppppppiVar29 = (int *******)(pppppiVar8 + 3);
            pppppppiVar26 = (int *******)0xffffffff;
            do {
              pppppppiVar3 = pppppppiVar29;
              pppppppiVar30 = (int *******)*ppppppiVar4;
              pppppppiVar12 = pppppppiVar30;
              pppppppiVar29 = pppppppiVar3;
              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);
              pppppppiVar28 = pppppppiVar26;
              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {
                pppppppiVar3 = &ppppppiStack_f4;
                pppppppiVar12 = pppppppiVar26;
                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);
                ppppppiVar32 = appppppiStack_138[0];
                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;
                pppppppiVar12 = (int *******)*ppiVar33;
                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);
                *ppiVar33 = (int *)pppppppiVar3;
                if (pppppppiVar3 == (int *******)ppiVar33[1]) {
                  pppppppiStack_108 = pppppppiStack_100;
                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);
                  pppppppiStack_10c = pppppppiVar12;
                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);
                  if (piVar9 != (int *)0x0) {
                    ppiVar33[2] = piVar9;
                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);
                    pppppppiVar12 = pppppppiStack_10c;
                    pppppppiVar28 = pppppppiStack_108;
                    goto LAB_000210a0;
                  }
                }
                else {
                  piVar9 = ppiVar33[2];
                  pppppppiVar28 = pppppppiStack_100;
LAB_000210a0:
                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];
                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);
                  *pppppppiStack_108 = (int ******)pppppppiVar28;
                  pppppppiStack_108[1] = (int ******)pppppppiVar30;
                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);
                  pppppppiStack_108[2] = ppppppiVar32;
                  pppppppiVar25 = pppppppiStack_108;
                  if (ppppppiVar32 != (int ******)0x0) {
                    pppppppiVar12 = pppppppiStack_11c;
                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);
                    pppppppiVar3 = param_3;
                    pppppppiVar25 = pppppppiStack_108;
                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);
                    pppppppiVar28 = pppppppiVar26;
                    ppppppiVar32 = appppppiStack_138[0];
                    if (iVar6 == 0) break;
                  }
                }
                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);
                if (iStack_128 != 0) goto LAB_000214d4;
                goto LAB_0002112c;
              }
              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);
              ppppppiVar4 = ppppppiVar4 + 1;
              pppppppiVar26 = pppppppiVar28;
              ppppppiVar32 = appppppiStack_138[0];
            } while (ppppppiVar13 != ppppppiVar14);
          }
LAB_00020ecc:
          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;
          pppppppiVar29 = (int *******)pppppppiVar7[1];
          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];
          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;
        } while( true );
      }
      pppppppiVar25 = pppppppiStack_100;
      (*(code *)ppppiVar19)(ppppppiStack_f4);
      if (iStack_128 == 0) {
        uVar10 = 0;
        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;
      }
      else {
        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);
        if (ppiVar33 == (int **)0x0) {
          uVar10 = 0;
          goto LAB_00020f18;
        }
      }
LAB_00020f00:
      FUN_0001ec78(ppiVar33);
LAB_00020f14:
      uVar10 = 0;
      goto LAB_00020f18;
    }
  }
  uVar10 = 0xc;
  puVar38 = puVar39;
LAB_00020f18:
  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f77];
  if (iStack_e4 == *piStack_12c) {
    return uVar10;
  }
  pcVar15 = FUN_00021550;
  iVar6 = iStack_e4;
  (*(code *)ppppiVar19)();
  *(int ********)(puVar38 + -0x18) = pppppppiVar30;
  *(int ********)(puVar38 + -0x14) = param_3;
  *(int ********)(puVar38 + -0x1c) = pppppppiVar7;
  *(int ********)(puVar38 + -0x10) = pppppppiVar23;
  *(int *****)(puVar38 + -0x28) = ppppiVar19 + 0x8ae0;
  *(int ********)(puVar38 + -0x20) = pppppppiVar22;
  *(code **)(puVar38 + -4) = pcVar15;
  *(int **)(puVar38 + -8) = piVar34;
  *(int ***)(puVar38 + -0xc) = ppiVar33;
  iVar31 = *(int *)(puVar38 + 0x10);
  *(undefined4 *)(puVar38 + -0x30) = 8;
  *(int *)(puVar38 + -0x34) = iVar31;
  *(int ********)(puVar38 + -0x38) = pppppppiVar25;
  uVar10 = FUN_00020550();
  if (uVar10 != 0) {
    return uVar10;
  }
  iVar11 = *(int *)(iVar6 + 0x6c);
  ppppppiVar14 = *pppppppiVar3;
  ppppppiVar13 = pppppppiVar12[1];
  iVar20 = *(int *)(iVar6 + 0x74);
  ppppppiVar32 = ppppppiVar13;
  if (*(int *)(iVar6 + 0x70) <= iVar11) {
    iVar11 = (**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))
                       (iVar20,*(int *)(iVar6 + 0x70) * 0x28);
    if (iVar11 == 0) {
      (**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74));
      return 0xc;
    }
    pcVar15 = *(code **)(*(int *)(puVar38 + -0x28) + -0x7e40);
    *(int *)(iVar6 + 0x74) = iVar11;
    (*pcVar15)(iVar11 + *(int *)(iVar6 + 0x6c) * 0x14,0,*(int *)(iVar6 + 0x70) * 0x14);
    ppppppiVar32 = pppppppiVar12[1];
    iVar11 = *(int *)(iVar6 + 0x6c);
    iVar20 = *(int *)(iVar6 + 0x74);
    *(int *)(iVar6 + 0x70) = *(int *)(iVar6 + 0x70) << 1;
  }
  if ((0 < iVar11) && (iVar24 = iVar20 + iVar11 * 0x14 + -0x14, iVar31 == *(int *)(iVar24 + 4))) {
    *(undefined1 *)(iVar24 + 0x10) = 1;
  }
  puVar21 = (undefined4 *)(iVar20 + iVar11 * 0x14);
  *puVar21 = pppppppiVar25;
  puVar21[1] = iVar31;
  puVar21[2] = ppppppiVar14;
  puVar21[3] = ppppppiVar13;
  *(ushort *)((int)puVar21 + 0x12) = -(ushort)(ppppppiVar14 == ppppppiVar13);
  *(int *)(iVar6 + 0x6c) = iVar11 + 1;
  *(undefined1 *)(puVar21 + 4) = 0;
  if (*(int *)(iVar6 + 0x78) < (int)ppppppiVar13 - (int)ppppppiVar14) {
    *(int *)(iVar6 + 0x78) = (int)ppppppiVar13 - (int)ppppppiVar14;
  }
  uVar10 = FUN_00019470(iVar6,(int)ppppppiVar32 + (iVar31 - (int)*pppppppiVar3));
  return uVar10;
LAB_00020f60:
  ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];
  pppppppiVar25 = pppppppiStack_100;
  if (pppppppiVar28 == (int *******)&SUB_fffffffe) {
LAB_000213b0:
    (*(code *)ppppiVar19)(ppppppiStack_f4);
    if (iStack_128 != 0) {
LAB_000214d4:
      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);
    }
    if (ppiVar33 != (int **)0x0) goto LAB_0002112c;
    uVar10 = 0xc;
    goto LAB_00020f18;
  }
LAB_00020f6c:
  pppppppiVar27 = pppppppiVar30;
  if (ppiVar33 == (int **)0x0) {
    (*(code *)((int *****)ppppppiVar32)[-0x1f6c])(ppppppiStack_f4);
    if (iStack_128 == 0) {
      uVar10 = 1;
    }
    else {
      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);
      uVar10 = 1;
    }
    goto LAB_00020f18;
  }
LAB_00020f7c:
  ppppiVar19 = ppppiStack_120;
  pppppppiVar12 = (int *******)&pppppppiStack_100;
  pppppppiVar3 = (int *******)(ppiVar33 + 2);
  *(int ********)(puVar37 + 0x14) = param_3;
  *(int ********)(puVar37 + 0x10) = pppppppiVar7;
  pppppppiVar28 =
       (int *******)(*(code *)ppppiVar19)(ppiVar33,pppppppiVar3,pppppppiVar12,pppppppiVar23);
  pppppppiVar30 = pppppppiVar27;
  goto LAB_00020db0;
}


lui gp,0x2
addiu gp,gp,0x3b80
addu gp,gp,t9
addiu sp,sp,-0xb8
lw v0,-0x7dbc(gp)
sw s6,0xa8(sp)
or s6,a0,zero
or a0,a1,zero
sw s3,0x9c(sp)
sw s2,0x98(sp)
or s3,a2,zero
sw v0,0x5c(sp)
lw v1,0x54(s6)
lw s2,0x4(a0)
lw a0,0x0(v0)
lw a2,0x78(s6)
lw v0,0x0(v1)
sw a1,0x58(sp)
sll a1,s3,0x3
sw v1,0x34(sp)
addu v0,v0,a1
lw v1,0xcc(sp)
sw gp,0x18(sp)
sw s1,0x94(sp)
or s1,a3,zero
addu a2,v1,a2
sw ra,0xb4(sp)
sw s8,0xb0(sp)
sw s7,0xac(sp)
slt v1,a2,s2
sw s5,0xa4(sp)
sw s4,0xa0(sp)
sw s0,0x90(sp)
sw a0,0x8c(sp)
sw zero,0x6c(sp)
lw v0,0x0(v0)
beq v1,zero,0x00020be4
_sw v0,0x40(sp)
lw v0,0x58(sp)
lw v1,0x64(s6)
lw a2,0x58(s6)
lw s0,0x0(v0)
lw s4,0x8(v0)
lw v0,-0x7ee8(gp)
sw v1,0x60(sp)
lw v1,0x28(s6)
beq s0,zero,0x00020b58
_sw v1,0x64(sp)
addiu t9,v0,-0x34b0
sw s4,0x64(s6)
addiu a1,s0,-0x1
sw s0,0x28(s6)
or a0,s6,zero
bal 0x0001cb50
_sw t9,0x4c(sp)
lw gp,0x18(sp)
beq s0,s1,0x00020b7c
_or s2,v0,zero
sll v0,s0,0x2
addu s4,s4,v0
lw s7,0x0(s4)
beq s7,zero,0x0002065c
_addiu v0,sp,0x74
lbu v0,0x34(s7)
andi v0,v0,0x2
bne v0,zero,0x00020a84
_addiu v0,sp,0x74
sw zero,0x74(sp)
sw zero,0x78(sp)
sw v0,0x24(sp)
sw zero,0x7c(sp)
lw v0,0xcc(sp)
slt v0,s0,v0
beq v0,zero,0x000208a4
_lw t9,-0x7db0(gp)
lw v0,0x78(s6)
bltz v0,0x000208a4
_lw v1,-0x7ee8(gp)
addiu s8,s0,0x1
lw v0,0x64(s6)
sw zero,0x2c(sp)
addiu v1,v1,-0x5018
sw v1,0x50(sp)
lw v1,-0x7ee8(gp)
addiu v1,v1,-0x3368
sw v1,0x3c(sp)
lw v1,-0x7ee8(gp)
addiu v1,v1,-0x7b38
sw v1,0x28(sp)
sll v1,s8,0x2
sw zero,0x78(sp)
addu v0,v0,v1
sw v1,0x30(sp)
lw a1,0x0(v0)
beq a1,zero,0x00020a74
_addiu s3,s8,-0x1
lw t9,-0x7ee8(gp)
addiu a1,a1,0x4
addiu t9,t9,-0x55b4
bal 0x0001aa4c
_lw a0,0x24(sp)
lw gp,0x18(sp)
bne v0,zero,0x0002091c
_sw v0,0x6c(sp)
beq s7,zero,0x000207d0
_lw v0,0x78(sp)
addiu s5,sp,0x80
lw v0,0x14(s7)
lw s2,0x54(s6)
sw zero,0x80(sp)
sw zero,0x70(sp)
sw zero,0x4(s5)
blez v0,0x00020c8c
_sw zero,0x8(s5)
lw v0,-0x7ee8(gp)
or s4,zero,zero
sw s8,0x54(sp)
sw v0,0x38(sp)
lw v0,-0x7ee8(gp)
sw v0,0x48(sp)
lw v0,-0x7ee8(gp)
addiu v0,v0,-0x3ea4
sw v0,0x44(sp)
lw v1,0x18(s7)
sll v0,s4,0x2
lw a0,0x0(s2)
addu v0,v1,v0
lw s0,0x0(v0)
sll s1,s0,0x3
addu a1,a0,s1
lw v0,0x4(a1)
andi v0,v0,0x800
bne v0,zero,0x00020970
_lw v0,0x38(sp)
lw t9,0x3c(sp)
or a2,s3,zero
jalr t9
_or a0,s6,zero
beq v0,zero,0x000207a4
_lw gp,0x18(sp)
sll s0,s0,0x2
lw v0,0xc(s2)
lw a0,0x24(sp)
lw t9,0x28(sp)
addu s0,v0,s0
jalr t9
_lw a1,0x0(s0)
beq v0,zero,0x00020904
_lw gp,0x18(sp)
lw v0,0x14(s7)
addiu s4,s4,0x1
slt v0,s4,v0
bne v0,zero,0x0002073c
_lw s8,0x54(sp)
lw a0,0x88(sp)
lw t9,-0x7db0(gp)
jalr t9
_nop
sw zero,0x6c(sp)
lw v0,0x78(sp)
beq v0,zero,0x0002082c
_or s0,s8,zero
lw a3,0xd0(sp)
lw a2,0x40(sp)
lw a1,0x24(sp)
lw t9,0x50(sp)
jalr t9
_lw a0,0x34(sp)
lw gp,0x18(sp)
bne v0,zero,0x0002091c
_sw v0,0x6c(sp)
lw t9,-0x7ee8(gp)
or a2,s8,zero
lw v0,0xd0(sp)
or a0,s6,zero
lw a3,0x40(sp)
lw a1,0x24(sp)
addiu t9,t9,-0x3a80
bal 0x0001c580
_sw v0,0x10(sp)
lw gp,0x18(sp)
bne v0,zero,0x0002091c
_sw v0,0x6c(sp)
lw a2,0x58(s6)
or a1,s3,zero
lw t9,0x4c(sp)
jalr t9
_or a0,s6,zero
addiu a0,sp,0x6c
lw gp,0x18(sp)
or a3,v0,zero
lw a2,0x24(sp)
lw t9,-0x7ee8(gp)
addiu t9,t9,-0x42b4
bal 0x0001bd4c
_lw a1,0x34(sp)
lw gp,0x18(sp)
beq v0,zero,0x00020b30
_or s7,v0,zero
lw v0,0x64(s6)
lw v1,0x30(sp)
sw zero,0x2c(sp)
addu s5,v0,v1
sw s7,0x0(s5)
lw v1,0xcc(sp)
slt v1,s8,v1
beq v1,zero,0x000208a0
_lw a0,0x2c(sp)
lw v1,0x78(s6)
slt v1,v1,a0
beq v1,zero,0x000206b4
_addiu s8,s8,0x1
lw t9,-0x7db0(gp)
jalr t9
_lw a0,0x7c(sp)
lw v0,0xcc(sp)
sll v1,v0,0x2
lw v0,0x64(s6)
addu v0,v0,v1
lw v0,0x0(v0)
beq v0,zero,0x00020c6c
_lw gp,0x18(sp)
lw v1,0x58(sp)
addiu a1,v0,0xc
lw t9,-0x7ee8(gp)
lw a2,0xc8(sp)
sw s0,0x0(v1)
addiu t9,t9,-0x5d30
lw v1,0x64(sp)
sw v1,0x28(s6)
lw v1,0x60(sp)
lw a0,0x8(v0)
bal 0x0001a2d0
_sw v1,0x64(s6)
lw gp,0x18(sp)
b 0x00020930
_sltiu v0,v0,0x1
lw t9,-0x7db0(gp)
jalr t9
_lw a0,0x88(sp)
li v0,0xc
lw gp,0x18(sp)
sw v0,0x6c(sp)
lw t9,-0x7db0(gp)
jalr t9
_lw a0,0x7c(sp)
lw gp,0x18(sp)
lw v0,0x6c(sp)
lw v1,0x5c(sp)
lw a0,0x8c(sp)
lw v1,0x0(v1)
bne a0,v1,0x00020c94
_lw ra,0xb4(sp)
lw s8,0xb0(sp)
lw s7,0xac(sp)
lw s6,0xa8(sp)
lw s5,0xa4(sp)
lw s4,0xa0(sp)
lw s3,0x9c(sp)
lw s2,0x98(sp)
lw s1,0x94(sp)
lw s0,0x90(sp)
jr ra
_addiu sp,sp,0xb8
addiu a1,s2,0x80
sw s3,0x10(sp)
or a3,s6,zero
addiu t9,v0,0x1f0
bal 0x000201f0
_or a2,s0,zero
slti v1,v0,0x2
bne v1,zero,0x00020a60
_nop
addu v0,s3,v0
lw a0,0x64(s6)
lw v1,0xc(s2)
sll s0,s0,0x2
sll s1,v0,0x2
addu a0,a0,s1
addu v0,v1,s0
lw a1,0x0(a0)
lw s8,0x0(v0)
beq a1,zero,0x000209e0
_sw zero,0x84(sp)
lw v0,0x48(sp)
addiu a1,a1,0x4
addiu t9,v0,-0x55b4
bal 0x0001aa4c
_or a0,s5,zero
lw gp,0x18(sp)
bne v0,zero,0x00020a38
_sw v0,0x70(sp)
lw t9,0x28(sp)
or a1,s8,zero
jalr t9
_or a0,s5,zero
beq v0,zero,0x00020904
_lw gp,0x18(sp)
lw a3,0x64(s6)
addiu a0,sp,0x70
lw t9,0x44(sp)
or a2,s5,zero
or a1,s2,zero
jalr t9
_addu s8,a3,s1
lw v1,0x64(s6)
lw gp,0x18(sp)
sw v0,0x0(s8)
addu s1,v1,s1
lw v0,0x0(s1)
bne v0,zero,0x00020784
_lw v0,0x70(sp)
beq v0,zero,0x00020784
_nop
lw t9,-0x7db0(gp)
lw a0,0x88(sp)
jalr t9
_lw s8,0x54(sp)
lw v0,0x70(sp)
lw gp,0x18(sp)
beq v0,zero,0x000207cc
_sw v0,0x6c(sp)
b 0x00020920
_lw t9,-0x7db0(gp)
bne v0,zero,0x00020780
_nop
lw a1,0x0(s2)
b 0x00020768
_addu a1,a1,s1
bne s7,zero,0x000206f8
_or s0,s8,zero
b 0x00020830
_lw a2,0x58(s6)
lw t9,-0x7ee8(gp)
addiu a1,s7,0x4
sw v0,0x24(sp)
addiu t9,t9,-0x4580
bal 0x0001ba80
_or a0,v0,zero
lw gp,0x18(sp)
bne v0,zero,0x00020930
_sw v0,0x6c(sp)
lbu v0,0x34(s7)
andi v0,v0,0x2
beq v0,zero,0x00020670
_lw v0,0xcc(sp)
lw v0,0x78(sp)
beq v0,zero,0x00020af8
_lw t9,-0x7ee8(gp)
lw t9,-0x7ee8(gp)
or a2,s0,zero
lw v0,0xd0(sp)
or a0,s6,zero
lw a3,0x40(sp)
lw a1,0x24(sp)
addiu t9,t9,-0x3a80
bal 0x0001c580
_sw v0,0x10(sp)
lw gp,0x18(sp)
bne v0,zero,0x0002091c
_sw v0,0x6c(sp)
lw t9,-0x7ee8(gp)
addiu a0,sp,0x6c
lw a2,0x24(sp)
or a3,s2,zero
addiu t9,t9,-0x42b4
bal 0x0001bd4c
_lw a1,0x34(sp)
lw gp,0x18(sp)
beq v0,zero,0x00020c50
_or s7,v0,zero
lw v0,0x64(s6)
sll v1,s0,0x2
addu v0,v0,v1
b 0x0002066c
_sw s7,0x0(v0)
lw v0,0x6c(sp)
bne v0,zero,0x0002091c
_lw v1,0x2c(sp)
lw v0,0x64(s6)
addiu v1,v1,0x1
sw v1,0x2c(sp)
lw v1,0x30(sp)
addu s5,v0,v1
b 0x00020880
_sw zero,0x0(s5)
addiu t9,v0,-0x34b0
sw s4,0x64(s6)
addiu a1,s1,-0x1
sw s1,0x28(s6)
or a0,s6,zero
bal 0x0001cb50
_sw t9,0x4c(sp)
lw gp,0x18(sp)
or s2,v0,zero
lw t9,-0x7e1c(gp)
li v0,0x1
li a0,0x4
sw v0,0x74(sp)
jalr t9
_sw v0,0x78(sp)
lw gp,0x18(sp)
beq v0,zero,0x00020c64
_sw v0,0x7c(sp)
lw t9,-0x7ee8(gp)
addiu v1,sp,0x74
lw a3,0xd0(sp)
or s0,s1,zero
lw a2,0x40(sp)
or a1,v1,zero
lw a0,0x34(sp)
addiu t9,t9,-0x5018
sw v1,0x24(sp)
sw s3,0x0(v0)
bal 0x0001afe8
_sw zero,0x6c(sp)
lw gp,0x18(sp)
beq v0,zero,0x00020ab8
_sw v0,0x6c(sp)
b 0x00020920
_lw t9,-0x7db0(gp)
lui v0,0x7fff
addiu s0,a2,0x1
ori v0,v0,0xffff
subu v0,v0,s2
slt v0,v0,s0
bne v0,zero,0x00020c64
_addu s4,s2,s0
lui v0,0x4000
sltu v0,s4,v0
beq v0,zero,0x00020c64
_lw s5,0x58(sp)
sll a1,s4,0x2
lw t9,-0x7e18(gp)
jalr t9
_lw a0,0x8(s5)
beq v0,zero,0x00020c64
_lw gp,0x18(sp)
sll s2,s2,0x2
lw t9,-0x7e40(gp)
sll a2,s0,0x2
sw v0,0x8(s5)
or a1,zero,zero
sw s4,0x4(s5)
jalr t9
_addu a0,v0,s2
b 0x000205e8
_lw gp,0x18(sp)
lw v0,0x6c(sp)
beq v0,zero,0x00020b1c
_lw t9,-0x7db0(gp)
b 0x00020920
_nop
b 0x00020930
_li v0,0xc
lw v0,0x58(sp)
lw v1,0x60(sp)
sw s0,0x0(v0)
li v0,0x1
sw v1,0x64(s6)
lw v1,0x64(sp)
b 0x00020930
_sw v1,0x28(s6)
b 0x000207bc
_or a0,zero,zero
lw t9,-0x7ddc(gp)
jalr t9
_nop
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nuint FUN_00020550(int *******param_1,int *******param_2,int *******param_3,int *******param_4,\n                 int *******param_5,int param_6,int *******param_7)\n\n{\n  uint *puVar1;\n  undefined *puVar2;\n  int *******pppppppiVar3;\n  int ******ppppppiVar4;\n  code *pcVar5;\n  int iVar6;\n  int *******pppppppiVar7;\n  int *****pppppiVar8;\n  int *piVar9;\n  uint uVar10;\n  int iVar11;\n  int *******pppppppiVar12;\n  int ******ppppppiVar13;\n  int ******ppppppiVar14;\n  code *pcVar15;\n  code *pcVar16;\n  code *pcVar17;\n  int ******ppppppiVar18;\n  int ****ppppiVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  int *******pppppppiVar22;\n  int *******pppppppiVar23;\n  int iVar24;\n  int *******pppppppiVar25;\n  int *******pppppppiVar26;\n  int *******pppppppiVar27;\n  int *******pppppppiVar28;\n  int *******pppppppiVar29;\n  int *******pppppppiVar30;\n  int iVar31;\n  int ******ppppppiVar32;\n  int *******unaff_s5;\n  int **ppiVar33;\n  int *piVar34;\n  int ******unaff_s7;\n  undefined *puVar35;\n  int ****ppppiVar36;\n  undefined1 *puVar37;\n  undefined1 *puVar38;\n  undefined1 *puVar39;\n  int *******unaff_s8;\n  undefined1 auStack_150 [24];\n  int ******appppppiStack_138 [2];\n  int *******pppppppiStack_130;\n  int *piStack_12c;\n  int iStack_128;\n  int *******pppppppiStack_124;\n  int ****ppppiStack_120;\n  int *******pppppppiStack_11c;\n  int ****ppppiStack_118;\n  int ****ppppiStack_114;\n  int ****ppppiStack_110;\n  int *******pppppppiStack_10c;\n  int *******pppppppiStack_108;\n  int ****ppppiStack_104;\n  int *******pppppppiStack_100;\n  int ******ppppppiStack_fc;\n  undefined4 uStack_f8;\n  int ******ppppppiStack_f4;\n  int *piStack_f0;\n  undefined4 uStack_ec;\n  int iStack_e8;\n  int iStack_e4;\n  int *******pppppppiStack_e0;\n  int *******pppppppiStack_dc;\n  int *******pppppppiStack_d8;\n  int *******pppppppiStack_d4;\n  int ******ppppppiStack_d0;\n  int *******pppppppiStack_cc;\n  int *******pppppppiStack_c8;\n  int ******ppppppiStack_c4;\n  int *******pppppppiStack_c0;\n  code *pcStack_bc;\n  undefined4 local_a8;\n  int local_8c;\n  code *local_6c;\n  uint local_4c;\n  uint local_48 [3];\n  undefined4 *local_3c;\n  int ******local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 *local_2c;\n  \n  puVar35 = PTR___stack_chk_guard_0003c314;\n  pppppppiVar12 = (int *******)param_1[0x15];\n  pppppppiVar30 = (int *******)param_2[1];\n  local_2c = *(undefined4 **)PTR___stack_chk_guard_0003c314;\n  pppppppiVar22 = (int *******)((int)param_3 * 8);\n  pppppppiVar23 = (int *******)(param_6 + (int)param_1[0x1e]);\n  local_4c = 0;\n  pppppppiVar3 = (int *******)(*pppppppiVar12)[(int)param_3 * 2];\n  pppppppiVar7 = param_4;\n  if ((int)pppppppiVar23 < (int)pppppppiVar30) {\nLAB_000205e8:\n    puVar2 = PTR_LAB_0003c1e8;\n    ppppppiVar13 = param_1[0x19];\n    pppppppiVar23 = (int *******)param_1[0x16];\n    pppppppiVar28 = (int *******)*param_2;\n    ppppppiVar32 = param_2[2];\n    ppppppiVar14 = param_1[10];\n    if (pppppppiVar28 == (int *******)0x0) {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)param_4 + -1);\n      param_1[10] = (int ******)param_4;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\nLAB_00020b7c:\n      local_48[1] = 1;\n      local_48[2] = 1;\n      local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4);\n      if (local_3c == (undefined4 *)0x0) goto LAB_00020c64;\n      pppppppiVar22 = (int *******)(local_48 + 1);\n      *local_3c = param_3;\n      local_4c = 0;\n      pppppppiVar23 = pppppppiVar3;\n      pppppppiVar7 = param_7;\n      local_4c = FUN_0001afe8(pppppppiVar12);\n      pppppppiVar28 = param_4;\n      if (local_4c == 0) {\nLAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);\n        if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }\n        pppppppiVar22 = pppppppiVar12;\n        pppppppiVar7 = pppppppiVar30;\n        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n        pppppppiVar23 = pppppppiVar25;\n        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }\n      }\nLAB_00020920:\n      (*(code *)PTR_free_0003c320)(local_3c);\n      uVar10 = local_4c;\n    }\n    else {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);\n      param_1[10] = (int ******)pppppppiVar28;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\n      if (pppppppiVar28 == param_4) goto LAB_00020b7c;\n      ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;\n      unaff_s7 = (int ******)*ppppppiVar32;\n      pppppppiVar25 = pppppppiVar28;\n      if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }\n      else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }\n  }\n  else {\n    pppppppiVar28 = (int *******)((int)pppppppiVar23 + 1);\n    ppppppiVar32 = (int ******)((int)pppppppiVar30 + (int)pppppppiVar28);\n    if (((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&\n       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)) {\n      pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);\n      ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);\n      puVar2 = PTR_memset_0003c290;\n      if (ppppppiVar13 != (int ******)0x0) {\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }\n    }\nLAB_00020c64:\n    uVar10 = 0xc;\n  }\n  if (local_2c == *(undefined4 **)puVar35) {\n    return uVar10;\n  }\n  pcVar15 = FUN_00020ca0;\n  puVar21 = local_2c;\n  puVar35 = PTR___stack_chk_fail_0003c2f4;\n  (*(code *)PTR___stack_chk_fail_0003c2f4)();\n  appppppiStack_138[0] = (int ******)(puVar35 + 0x23430);\n  puVar37 = auStack_150;\n  puVar38 = auStack_150;\n  piStack_12c = *(int **)(puVar35 + 0x1b674);\n  uStack_ec = 2;\n  piStack_f0 = (int *)0x0;\n  iStack_e8 = 0;\n  iStack_e4 = *piStack_12c;\n  piVar34 = (int *)*puVar21;\n  pppppppiVar3 = pppppppiVar22;\n  pppppppiVar12 = pppppppiVar23;\n  pppppppiVar25 = pppppppiVar7;\n  pppppppiStack_e0 = pppppppiVar28;\n  pppppppiStack_dc = param_4;\n  pppppppiStack_d8 = pppppppiVar30;\n  pppppppiStack_d4 = param_3;\n  ppppppiStack_d0 = ppppppiVar32;\n  pppppppiStack_cc = unaff_s5;\n  pppppppiStack_c8 = param_1;\n  ppppppiStack_c4 = unaff_s7;\n  pppppppiStack_c0 = unaff_s8;\n  pcStack_bc = pcVar15;\n  if ((char)local_a8 == '\0') {\n    pppppppiVar28 = (int *******)piVar34[0x12];\n    ppiVar33 = (int **)0x0;\n    if ((uint)((int)pppppppiVar23 << 3) < 0xfc0) goto LAB_00020d5c;\nLAB_00021488:\n    pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n    ppppppiStack_f4 = (int ******)0x0;\n    uStack_f8 = 0;\n    ppppppiStack_fc = (int ******)0x0;\n    param_3 = &ppppppiStack_fc;\n    pppppppiStack_124 = (int *******)(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c);\n    iStack_128 = 1;\n    if (pppppppiStack_124 != (int *******)0x0) goto LAB_00020d6c;\n    puVar37 = auStack_150;\n    if (ppiVar33 == (int **)0x0) {\n      uVar10 = 0xc;\n      goto LAB_00020f18;\n    }\nLAB_0002112c:\n    param_3 = &ppppppiStack_fc;\n    FUN_0001ec78(ppiVar33);\n    puVar39 = puVar37;\n  }\n  else {\n    ppiVar33 = &piStack_f0;\n    iStack_e8 = (**(code **)(puVar35 + 0x1b614))(0x30);\n    puVar39 = auStack_150;\n    if (iStack_e8 != 0) {\n      pppppppiVar28 = (int *******)piVar34[0x12];\n      if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n      ppppppiStack_f4 = (int ******)0x0;\n      uStack_f8 = 0;\n      ppppppiStack_fc = (int ******)0x0;\n      puVar37 = auStack_150 + (int)pppppppiVar23 * -8;\n      iStack_128 = 0;\n      pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;\nLAB_00020d6c:\n      param_3 = &ppppppiStack_fc;\n      pppppppiVar3 = pppppppiVar7;\n      pppppppiVar12 = pppppppiStack_11c;\n      (*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);\n      pppppppiStack_100 = (int *******)*pppppppiVar7;\n      ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);\n      ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);\n      ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);\nLAB_00020db0:\n      pppppppiVar29 = (int *******)pppppppiVar7[1];\n      ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n      ppppppiVar32 = appppppiStack_138[0];\n      puVar38 = puVar37;\n      if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }\n      pppppppiVar25 = pppppppiStack_100;\n      (*(code *)ppppiVar19)(ppppppiStack_f4);\n      if (iStack_128 == 0) {\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }\n      else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      FUN_0001ec78(ppiVar33);\nLAB_00020f14:\n      uVar10 = 0;\n      goto LAB_00020f18;\n    }\n  }\n  uVar10 = 0xc;\n  puVar38 = puVar39;\nLAB_00020f18:\n  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f77];\n  if (iStack_e4 == *piStack_12c) {\n    return uVar10;\n  }\n  pcVar15 = FUN_00021550;\n  iVar6 = iStack_e4;\n  (*(code *)ppppiVar19)();\n  *(int ********)(puVar38 + -0x18) = pppppppiVar30;\n  *(int ********)(puVar38 + -0x14) = param_3;\n  *(int ********)(puVar38 + -0x1c) = pppppppiVar7;\n  *(int ********)(puVar38 + -0x10) = pppppppiVar23;\n  *(int *****)(puVar38 + -0x28) = ppppiVar19 + 0x8ae0;\n  *(int ********)(puVar38 + -0x20) = pppppppiVar22;\n  *(code **)(puVar38 + -4) = pcVar15;\n  *(int **)(puVar38 + -8) = piVar34;\n  *(int ***)(puVar38 + -0xc) = ppiVar33;\n  iVar31 = *(int *)(puVar38 + 0x10);\n  *(undefined4 *)(puVar38 + -0x30) = 8;\n  *(int *)(puVar38 + -0x34) = iVar31;\n  *(int ********)(puVar38 + -0x38) = pppppppiVar25;\n  uVar10 = FUN_00020550();\n  if (uVar10 != 0) {\n    return uVar10;\n  }\n  iVar11 = *(int *)(iVar6 + 0x6c);\n  ppppppiVar14 = *pppppppiVar3;\n  ppppppiVar13 = pppppppiVar12[1];\n  iVar20 = *(int *)(iVar6 + 0x74);\n  ppppppiVar32 = ppppppiVar13;\n  if (*(int *)(iVar6 + 0x70) <= iVar11) {\n    iVar11 = (**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))\n                       (iVar20,*(int *)(iVar6 + 0x70) * 0x28);\n    if (iVar11 == 0) {\n      (**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74));\n      return 0xc;\n    }\n    pcVar15 = *(code **)(*(int *)(puVar38 + -0x28) + -0x7e40);\n    *(int *)(iVar6 + 0x74) = iVar11;\n    (*pcVar15)(iVar11 + *(int *)(iVar6 + 0x6c) * 0x14,0,*(int *)(iVar6 + 0x70) * 0x14);\n    ppppppiVar32 = pppppppiVar12[1];\n    iVar11 = *(int *)(iVar6 + 0x6c);\n    iVar20 = *(int *)(iVar6 + 0x74);\n    *(int *)(iVar6 + 0x70) = *(int *)(iVar6 + 0x70) << 1;\n  }\n  if ((0 < iVar11) && (iVar24 = iVar20 + iVar11 * 0x14 + -0x14, iVar31 == *(int *)(iVar24 + 4))) {\n    *(undefined1 *)(iVar24 + 0x10) = 1;\n  }\n  puVar21 = (undefined4 *)(iVar20 + iVar11 * 0x14);\n  *puVar21 = pppppppiVar25;\n  puVar21[1] = iVar31;\n  puVar21[2] = ppppppiVar14;\n  puVar21[3] = ppppppiVar13;\n  *(ushort *)((int)puVar21 + 0x12) = -(ushort)(ppppppiVar14 == ppppppiVar13);\n  *(int *)(iVar6 + 0x6c) = iVar11 + 1;\n  *(undefined1 *)(puVar21 + 4) = 0;\n  if (*(int *)(iVar6 + 0x78) < (int)ppppppiVar13 - (int)ppppppiVar14) {\n    *(int *)(iVar6 + 0x78) = (int)ppppppiVar13 - (int)ppppppiVar14;\n  }\n  uVar10 = FUN_00019470(iVar6,(int)ppppppiVar32 + (iVar31 - (int)*pppppppiVar3));\n  return uVar10;\nLAB_00020f60:\n  ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n  pppppppiVar25 = pppppppiStack_100;\n  if (pppppppiVar28 == (int *******)&SUB_fffffffe) {\nLAB_000213b0:\n    (*(code *)ppppiVar19)(ppppppiStack_f4);\n    if (iStack_128 != 0) {\nLAB_000214d4:\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n    }\n    if (ppiVar33 != (int **)0x0) goto LAB_0002112c;\n    uVar10 = 0xc;\n    goto LAB_00020f18;\n  }\nLAB_00020f6c:\n  pppppppiVar27 = pppppppiVar30;\n  if (ppiVar33 == (int **)0x0) {\n    (*(code *)((int *****)ppppppiVar32)[-0x1f6c])(ppppppiStack_f4);\n    if (iStack_128 == 0) {\n      uVar10 = 1;\n    }\n    else {\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n      uVar10 = 1;\n    }\n    goto LAB_00020f18;\n  }\nLAB_00020f7c:\n  ppppiVar19 = ppppiStack_120;\n  pppppppiVar12 = (int *******)&pppppppiStack_100;\n  pppppppiVar3 = (int *******)(ppiVar33 + 2);\n  *(int ********)(puVar37 + 0x14) = param_3;\n  *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n  pppppppiVar28 =\n       (int *******)(*(code *)ppppiVar19)(ppiVar33,pppppppiVar3,pppppppiVar12,pppppppiVar23);\n  pppppppiVar30 = pppppppiVar27;\n  goto LAB_00020db0;\n}\n\n" comment (function_definition "uint FUN_00020550(int *******param_1,int *******param_2,int *******param_3,int *******param_4,\n                 int *******param_5,int param_6,int *******param_7)\n\n{\n  uint *puVar1;\n  undefined *puVar2;\n  int *******pppppppiVar3;\n  int ******ppppppiVar4;\n  code *pcVar5;\n  int iVar6;\n  int *******pppppppiVar7;\n  int *****pppppiVar8;\n  int *piVar9;\n  uint uVar10;\n  int iVar11;\n  int *******pppppppiVar12;\n  int ******ppppppiVar13;\n  int ******ppppppiVar14;\n  code *pcVar15;\n  code *pcVar16;\n  code *pcVar17;\n  int ******ppppppiVar18;\n  int ****ppppiVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  int *******pppppppiVar22;\n  int *******pppppppiVar23;\n  int iVar24;\n  int *******pppppppiVar25;\n  int *******pppppppiVar26;\n  int *******pppppppiVar27;\n  int *******pppppppiVar28;\n  int *******pppppppiVar29;\n  int *******pppppppiVar30;\n  int iVar31;\n  int ******ppppppiVar32;\n  int *******unaff_s5;\n  int **ppiVar33;\n  int *piVar34;\n  int ******unaff_s7;\n  undefined *puVar35;\n  int ****ppppiVar36;\n  undefined1 *puVar37;\n  undefined1 *puVar38;\n  undefined1 *puVar39;\n  int *******unaff_s8;\n  undefined1 auStack_150 [24];\n  int ******appppppiStack_138 [2];\n  int *******pppppppiStack_130;\n  int *piStack_12c;\n  int iStack_128;\n  int *******pppppppiStack_124;\n  int ****ppppiStack_120;\n  int *******pppppppiStack_11c;\n  int ****ppppiStack_118;\n  int ****ppppiStack_114;\n  int ****ppppiStack_110;\n  int *******pppppppiStack_10c;\n  int *******pppppppiStack_108;\n  int ****ppppiStack_104;\n  int *******pppppppiStack_100;\n  int ******ppppppiStack_fc;\n  undefined4 uStack_f8;\n  int ******ppppppiStack_f4;\n  int *piStack_f0;\n  undefined4 uStack_ec;\n  int iStack_e8;\n  int iStack_e4;\n  int *******pppppppiStack_e0;\n  int *******pppppppiStack_dc;\n  int *******pppppppiStack_d8;\n  int *******pppppppiStack_d4;\n  int ******ppppppiStack_d0;\n  int *******pppppppiStack_cc;\n  int *******pppppppiStack_c8;\n  int ******ppppppiStack_c4;\n  int *******pppppppiStack_c0;\n  code *pcStack_bc;\n  undefined4 local_a8;\n  int local_8c;\n  code *local_6c;\n  uint local_4c;\n  uint local_48 [3];\n  undefined4 *local_3c;\n  int ******local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 *local_2c;\n  \n  puVar35 = PTR___stack_chk_guard_0003c314;\n  pppppppiVar12 = (int *******)param_1[0x15];\n  pppppppiVar30 = (int *******)param_2[1];\n  local_2c = *(undefined4 **)PTR___stack_chk_guard_0003c314;\n  pppppppiVar22 = (int *******)((int)param_3 * 8);\n  pppppppiVar23 = (int *******)(param_6 + (int)param_1[0x1e]);\n  local_4c = 0;\n  pppppppiVar3 = (int *******)(*pppppppiVar12)[(int)param_3 * 2];\n  pppppppiVar7 = param_4;\n  if ((int)pppppppiVar23 < (int)pppppppiVar30) {\nLAB_000205e8:\n    puVar2 = PTR_LAB_0003c1e8;\n    ppppppiVar13 = param_1[0x19];\n    pppppppiVar23 = (int *******)param_1[0x16];\n    pppppppiVar28 = (int *******)*param_2;\n    ppppppiVar32 = param_2[2];\n    ppppppiVar14 = param_1[10];\n    if (pppppppiVar28 == (int *******)0x0) {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)param_4 + -1);\n      param_1[10] = (int ******)param_4;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\nLAB_00020b7c:\n      local_48[1] = 1;\n      local_48[2] = 1;\n      local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4);\n      if (local_3c == (undefined4 *)0x0) goto LAB_00020c64;\n      pppppppiVar22 = (int *******)(local_48 + 1);\n      *local_3c = param_3;\n      local_4c = 0;\n      pppppppiVar23 = pppppppiVar3;\n      pppppppiVar7 = param_7;\n      local_4c = FUN_0001afe8(pppppppiVar12);\n      pppppppiVar28 = param_4;\n      if (local_4c == 0) {\nLAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);\n        if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }\n        pppppppiVar22 = pppppppiVar12;\n        pppppppiVar7 = pppppppiVar30;\n        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n        pppppppiVar23 = pppppppiVar25;\n        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }\n      }\nLAB_00020920:\n      (*(code *)PTR_free_0003c320)(local_3c);\n      uVar10 = local_4c;\n    }\n    else {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);\n      param_1[10] = (int ******)pppppppiVar28;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\n      if (pppppppiVar28 == param_4) goto LAB_00020b7c;\n      ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;\n      unaff_s7 = (int ******)*ppppppiVar32;\n      pppppppiVar25 = pppppppiVar28;\n      if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }\n      else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }\n  }\n  else {\n    pppppppiVar28 = (int *******)((int)pppppppiVar23 + 1);\n    ppppppiVar32 = (int ******)((int)pppppppiVar30 + (int)pppppppiVar28);\n    if (((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&\n       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)) {\n      pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);\n      ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);\n      puVar2 = PTR_memset_0003c290;\n      if (ppppppiVar13 != (int ******)0x0) {\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }\n    }\nLAB_00020c64:\n    uVar10 = 0xc;\n  }\n  if (local_2c == *(undefined4 **)puVar35) {\n    return uVar10;\n  }\n  pcVar15 = FUN_00020ca0;\n  puVar21 = local_2c;\n  puVar35 = PTR___stack_chk_fail_0003c2f4;\n  (*(code *)PTR___stack_chk_fail_0003c2f4)();\n  appppppiStack_138[0] = (int ******)(puVar35 + 0x23430);\n  puVar37 = auStack_150;\n  puVar38 = auStack_150;\n  piStack_12c = *(int **)(puVar35 + 0x1b674);\n  uStack_ec = 2;\n  piStack_f0 = (int *)0x0;\n  iStack_e8 = 0;\n  iStack_e4 = *piStack_12c;\n  piVar34 = (int *)*puVar21;\n  pppppppiVar3 = pppppppiVar22;\n  pppppppiVar12 = pppppppiVar23;\n  pppppppiVar25 = pppppppiVar7;\n  pppppppiStack_e0 = pppppppiVar28;\n  pppppppiStack_dc = param_4;\n  pppppppiStack_d8 = pppppppiVar30;\n  pppppppiStack_d4 = param_3;\n  ppppppiStack_d0 = ppppppiVar32;\n  pppppppiStack_cc = unaff_s5;\n  pppppppiStack_c8 = param_1;\n  ppppppiStack_c4 = unaff_s7;\n  pppppppiStack_c0 = unaff_s8;\n  pcStack_bc = pcVar15;\n  if ((char)local_a8 == '\0') {\n    pppppppiVar28 = (int *******)piVar34[0x12];\n    ppiVar33 = (int **)0x0;\n    if ((uint)((int)pppppppiVar23 << 3) < 0xfc0) goto LAB_00020d5c;\nLAB_00021488:\n    pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n    ppppppiStack_f4 = (int ******)0x0;\n    uStack_f8 = 0;\n    ppppppiStack_fc = (int ******)0x0;\n    param_3 = &ppppppiStack_fc;\n    pppppppiStack_124 = (int *******)(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c);\n    iStack_128 = 1;\n    if (pppppppiStack_124 != (int *******)0x0) goto LAB_00020d6c;\n    puVar37 = auStack_150;\n    if (ppiVar33 == (int **)0x0) {\n      uVar10 = 0xc;\n      goto LAB_00020f18;\n    }\nLAB_0002112c:\n    param_3 = &ppppppiStack_fc;\n    FUN_0001ec78(ppiVar33);\n    puVar39 = puVar37;\n  }\n  else {\n    ppiVar33 = &piStack_f0;\n    iStack_e8 = (**(code **)(puVar35 + 0x1b614))(0x30);\n    puVar39 = auStack_150;\n    if (iStack_e8 != 0) {\n      pppppppiVar28 = (int *******)piVar34[0x12];\n      if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n      ppppppiStack_f4 = (int ******)0x0;\n      uStack_f8 = 0;\n      ppppppiStack_fc = (int ******)0x0;\n      puVar37 = auStack_150 + (int)pppppppiVar23 * -8;\n      iStack_128 = 0;\n      pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;\nLAB_00020d6c:\n      param_3 = &ppppppiStack_fc;\n      pppppppiVar3 = pppppppiVar7;\n      pppppppiVar12 = pppppppiStack_11c;\n      (*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);\n      pppppppiStack_100 = (int *******)*pppppppiVar7;\n      ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);\n      ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);\n      ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);\nLAB_00020db0:\n      pppppppiVar29 = (int *******)pppppppiVar7[1];\n      ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n      ppppppiVar32 = appppppiStack_138[0];\n      puVar38 = puVar37;\n      if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }\n      pppppppiVar25 = pppppppiStack_100;\n      (*(code *)ppppiVar19)(ppppppiStack_f4);\n      if (iStack_128 == 0) {\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }\n      else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      FUN_0001ec78(ppiVar33);\nLAB_00020f14:\n      uVar10 = 0;\n      goto LAB_00020f18;\n    }\n  }\n  uVar10 = 0xc;\n  puVar38 = puVar39;\nLAB_00020f18:\n  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f77];\n  if (iStack_e4 == *piStack_12c) {\n    return uVar10;\n  }\n  pcVar15 = FUN_00021550;\n  iVar6 = iStack_e4;\n  (*(code *)ppppiVar19)();\n  *(int ********)(puVar38 + -0x18) = pppppppiVar30;\n  *(int ********)(puVar38 + -0x14) = param_3;\n  *(int ********)(puVar38 + -0x1c) = pppppppiVar7;\n  *(int ********)(puVar38 + -0x10) = pppppppiVar23;\n  *(int *****)(puVar38 + -0x28) = ppppiVar19 + 0x8ae0;\n  *(int ********)(puVar38 + -0x20) = pppppppiVar22;\n  *(code **)(puVar38 + -4) = pcVar15;\n  *(int **)(puVar38 + -8) = piVar34;\n  *(int ***)(puVar38 + -0xc) = ppiVar33;\n  iVar31 = *(int *)(puVar38 + 0x10);\n  *(undefined4 *)(puVar38 + -0x30) = 8;\n  *(int *)(puVar38 + -0x34) = iVar31;\n  *(int ********)(puVar38 + -0x38) = pppppppiVar25;\n  uVar10 = FUN_00020550();\n  if (uVar10 != 0) {\n    return uVar10;\n  }\n  iVar11 = *(int *)(iVar6 + 0x6c);\n  ppppppiVar14 = *pppppppiVar3;\n  ppppppiVar13 = pppppppiVar12[1];\n  iVar20 = *(int *)(iVar6 + 0x74);\n  ppppppiVar32 = ppppppiVar13;\n  if (*(int *)(iVar6 + 0x70) <= iVar11) {\n    iVar11 = (**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))\n                       (iVar20,*(int *)(iVar6 + 0x70) * 0x28);\n    if (iVar11 == 0) {\n      (**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74));\n      return 0xc;\n    }\n    pcVar15 = *(code **)(*(int *)(puVar38 + -0x28) + -0x7e40);\n    *(int *)(iVar6 + 0x74) = iVar11;\n    (*pcVar15)(iVar11 + *(int *)(iVar6 + 0x6c) * 0x14,0,*(int *)(iVar6 + 0x70) * 0x14);\n    ppppppiVar32 = pppppppiVar12[1];\n    iVar11 = *(int *)(iVar6 + 0x6c);\n    iVar20 = *(int *)(iVar6 + 0x74);\n    *(int *)(iVar6 + 0x70) = *(int *)(iVar6 + 0x70) << 1;\n  }\n  if ((0 < iVar11) && (iVar24 = iVar20 + iVar11 * 0x14 + -0x14, iVar31 == *(int *)(iVar24 + 4))) {\n    *(undefined1 *)(iVar24 + 0x10) = 1;\n  }\n  puVar21 = (undefined4 *)(iVar20 + iVar11 * 0x14);\n  *puVar21 = pppppppiVar25;\n  puVar21[1] = iVar31;\n  puVar21[2] = ppppppiVar14;\n  puVar21[3] = ppppppiVar13;\n  *(ushort *)((int)puVar21 + 0x12) = -(ushort)(ppppppiVar14 == ppppppiVar13);\n  *(int *)(iVar6 + 0x6c) = iVar11 + 1;\n  *(undefined1 *)(puVar21 + 4) = 0;\n  if (*(int *)(iVar6 + 0x78) < (int)ppppppiVar13 - (int)ppppppiVar14) {\n    *(int *)(iVar6 + 0x78) = (int)ppppppiVar13 - (int)ppppppiVar14;\n  }\n  uVar10 = FUN_00019470(iVar6,(int)ppppppiVar32 + (iVar31 - (int)*pppppppiVar3));\n  return uVar10;\nLAB_00020f60:\n  ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n  pppppppiVar25 = pppppppiStack_100;\n  if (pppppppiVar28 == (int *******)&SUB_fffffffe) {\nLAB_000213b0:\n    (*(code *)ppppiVar19)(ppppppiStack_f4);\n    if (iStack_128 != 0) {\nLAB_000214d4:\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n    }\n    if (ppiVar33 != (int **)0x0) goto LAB_0002112c;\n    uVar10 = 0xc;\n    goto LAB_00020f18;\n  }\nLAB_00020f6c:\n  pppppppiVar27 = pppppppiVar30;\n  if (ppiVar33 == (int **)0x0) {\n    (*(code *)((int *****)ppppppiVar32)[-0x1f6c])(ppppppiStack_f4);\n    if (iStack_128 == 0) {\n      uVar10 = 1;\n    }\n    else {\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n      uVar10 = 1;\n    }\n    goto LAB_00020f18;\n  }\nLAB_00020f7c:\n  ppppiVar19 = ppppiStack_120;\n  pppppppiVar12 = (int *******)&pppppppiStack_100;\n  pppppppiVar3 = (int *******)(ppiVar33 + 2);\n  *(int ********)(puVar37 + 0x14) = param_3;\n  *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n  pppppppiVar28 =\n       (int *******)(*(code *)ppppiVar19)(ppiVar33,pppppppiVar3,pppppppiVar12,pppppppiVar23);\n  pppppppiVar30 = pppppppiVar27;\n  goto LAB_00020db0;\n}" type_identifier (function_declarator "FUN_00020550(int *******param_1,int *******param_2,int *******param_3,int *******param_4,\n                 int *******param_5,int param_6,int *******param_7)" identifier (parameter_list "(int *******param_1,int *******param_2,int *******param_3,int *******param_4,\n                 int *******param_5,int param_6,int *******param_7)" ( (parameter_declaration "int *******param_1" primitive_type (pointer_declarator "*******param_1" * (pointer_declarator "******param_1" * (pointer_declarator "*****param_1" * (pointer_declarator "****param_1" * (pointer_declarator "***param_1" * (pointer_declarator "**param_1" * (pointer_declarator "*param_1" * identifier)))))))) , (parameter_declaration "int *******param_2" primitive_type (pointer_declarator "*******param_2" * (pointer_declarator "******param_2" * (pointer_declarator "*****param_2" * (pointer_declarator "****param_2" * (pointer_declarator "***param_2" * (pointer_declarator "**param_2" * (pointer_declarator "*param_2" * identifier)))))))) , (parameter_declaration "int *******param_3" primitive_type (pointer_declarator "*******param_3" * (pointer_declarator "******param_3" * (pointer_declarator "*****param_3" * (pointer_declarator "****param_3" * (pointer_declarator "***param_3" * (pointer_declarator "**param_3" * (pointer_declarator "*param_3" * identifier)))))))) , (parameter_declaration "int *******param_4" primitive_type (pointer_declarator "*******param_4" * (pointer_declarator "******param_4" * (pointer_declarator "*****param_4" * (pointer_declarator "****param_4" * (pointer_declarator "***param_4" * (pointer_declarator "**param_4" * (pointer_declarator "*param_4" * identifier)))))))) , (parameter_declaration "int *******param_5" primitive_type (pointer_declarator "*******param_5" * (pointer_declarator "******param_5" * (pointer_declarator "*****param_5" * (pointer_declarator "****param_5" * (pointer_declarator "***param_5" * (pointer_declarator "**param_5" * (pointer_declarator "*param_5" * identifier)))))))) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int *******param_7" primitive_type (pointer_declarator "*******param_7" * (pointer_declarator "******param_7" * (pointer_declarator "*****param_7" * (pointer_declarator "****param_7" * (pointer_declarator "***param_7" * (pointer_declarator "**param_7" * (pointer_declarator "*param_7" * identifier)))))))) ))) (compound_statement "{\n  uint *puVar1;\n  undefined *puVar2;\n  int *******pppppppiVar3;\n  int ******ppppppiVar4;\n  code *pcVar5;\n  int iVar6;\n  int *******pppppppiVar7;\n  int *****pppppiVar8;\n  int *piVar9;\n  uint uVar10;\n  int iVar11;\n  int *******pppppppiVar12;\n  int ******ppppppiVar13;\n  int ******ppppppiVar14;\n  code *pcVar15;\n  code *pcVar16;\n  code *pcVar17;\n  int ******ppppppiVar18;\n  int ****ppppiVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  int *******pppppppiVar22;\n  int *******pppppppiVar23;\n  int iVar24;\n  int *******pppppppiVar25;\n  int *******pppppppiVar26;\n  int *******pppppppiVar27;\n  int *******pppppppiVar28;\n  int *******pppppppiVar29;\n  int *******pppppppiVar30;\n  int iVar31;\n  int ******ppppppiVar32;\n  int *******unaff_s5;\n  int **ppiVar33;\n  int *piVar34;\n  int ******unaff_s7;\n  undefined *puVar35;\n  int ****ppppiVar36;\n  undefined1 *puVar37;\n  undefined1 *puVar38;\n  undefined1 *puVar39;\n  int *******unaff_s8;\n  undefined1 auStack_150 [24];\n  int ******appppppiStack_138 [2];\n  int *******pppppppiStack_130;\n  int *piStack_12c;\n  int iStack_128;\n  int *******pppppppiStack_124;\n  int ****ppppiStack_120;\n  int *******pppppppiStack_11c;\n  int ****ppppiStack_118;\n  int ****ppppiStack_114;\n  int ****ppppiStack_110;\n  int *******pppppppiStack_10c;\n  int *******pppppppiStack_108;\n  int ****ppppiStack_104;\n  int *******pppppppiStack_100;\n  int ******ppppppiStack_fc;\n  undefined4 uStack_f8;\n  int ******ppppppiStack_f4;\n  int *piStack_f0;\n  undefined4 uStack_ec;\n  int iStack_e8;\n  int iStack_e4;\n  int *******pppppppiStack_e0;\n  int *******pppppppiStack_dc;\n  int *******pppppppiStack_d8;\n  int *******pppppppiStack_d4;\n  int ******ppppppiStack_d0;\n  int *******pppppppiStack_cc;\n  int *******pppppppiStack_c8;\n  int ******ppppppiStack_c4;\n  int *******pppppppiStack_c0;\n  code *pcStack_bc;\n  undefined4 local_a8;\n  int local_8c;\n  code *local_6c;\n  uint local_4c;\n  uint local_48 [3];\n  undefined4 *local_3c;\n  int ******local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 *local_2c;\n  \n  puVar35 = PTR___stack_chk_guard_0003c314;\n  pppppppiVar12 = (int *******)param_1[0x15];\n  pppppppiVar30 = (int *******)param_2[1];\n  local_2c = *(undefined4 **)PTR___stack_chk_guard_0003c314;\n  pppppppiVar22 = (int *******)((int)param_3 * 8);\n  pppppppiVar23 = (int *******)(param_6 + (int)param_1[0x1e]);\n  local_4c = 0;\n  pppppppiVar3 = (int *******)(*pppppppiVar12)[(int)param_3 * 2];\n  pppppppiVar7 = param_4;\n  if ((int)pppppppiVar23 < (int)pppppppiVar30) {\nLAB_000205e8:\n    puVar2 = PTR_LAB_0003c1e8;\n    ppppppiVar13 = param_1[0x19];\n    pppppppiVar23 = (int *******)param_1[0x16];\n    pppppppiVar28 = (int *******)*param_2;\n    ppppppiVar32 = param_2[2];\n    ppppppiVar14 = param_1[10];\n    if (pppppppiVar28 == (int *******)0x0) {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)param_4 + -1);\n      param_1[10] = (int ******)param_4;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\nLAB_00020b7c:\n      local_48[1] = 1;\n      local_48[2] = 1;\n      local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4);\n      if (local_3c == (undefined4 *)0x0) goto LAB_00020c64;\n      pppppppiVar22 = (int *******)(local_48 + 1);\n      *local_3c = param_3;\n      local_4c = 0;\n      pppppppiVar23 = pppppppiVar3;\n      pppppppiVar7 = param_7;\n      local_4c = FUN_0001afe8(pppppppiVar12);\n      pppppppiVar28 = param_4;\n      if (local_4c == 0) {\nLAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);\n        if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }\n        pppppppiVar22 = pppppppiVar12;\n        pppppppiVar7 = pppppppiVar30;\n        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n        pppppppiVar23 = pppppppiVar25;\n        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }\n      }\nLAB_00020920:\n      (*(code *)PTR_free_0003c320)(local_3c);\n      uVar10 = local_4c;\n    }\n    else {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);\n      param_1[10] = (int ******)pppppppiVar28;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\n      if (pppppppiVar28 == param_4) goto LAB_00020b7c;\n      ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;\n      unaff_s7 = (int ******)*ppppppiVar32;\n      pppppppiVar25 = pppppppiVar28;\n      if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }\n      else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }\n  }\n  else {\n    pppppppiVar28 = (int *******)((int)pppppppiVar23 + 1);\n    ppppppiVar32 = (int ******)((int)pppppppiVar30 + (int)pppppppiVar28);\n    if (((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&\n       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)) {\n      pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);\n      ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);\n      puVar2 = PTR_memset_0003c290;\n      if (ppppppiVar13 != (int ******)0x0) {\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }\n    }\nLAB_00020c64:\n    uVar10 = 0xc;\n  }\n  if (local_2c == *(undefined4 **)puVar35) {\n    return uVar10;\n  }\n  pcVar15 = FUN_00020ca0;\n  puVar21 = local_2c;\n  puVar35 = PTR___stack_chk_fail_0003c2f4;\n  (*(code *)PTR___stack_chk_fail_0003c2f4)();\n  appppppiStack_138[0] = (int ******)(puVar35 + 0x23430);\n  puVar37 = auStack_150;\n  puVar38 = auStack_150;\n  piStack_12c = *(int **)(puVar35 + 0x1b674);\n  uStack_ec = 2;\n  piStack_f0 = (int *)0x0;\n  iStack_e8 = 0;\n  iStack_e4 = *piStack_12c;\n  piVar34 = (int *)*puVar21;\n  pppppppiVar3 = pppppppiVar22;\n  pppppppiVar12 = pppppppiVar23;\n  pppppppiVar25 = pppppppiVar7;\n  pppppppiStack_e0 = pppppppiVar28;\n  pppppppiStack_dc = param_4;\n  pppppppiStack_d8 = pppppppiVar30;\n  pppppppiStack_d4 = param_3;\n  ppppppiStack_d0 = ppppppiVar32;\n  pppppppiStack_cc = unaff_s5;\n  pppppppiStack_c8 = param_1;\n  ppppppiStack_c4 = unaff_s7;\n  pppppppiStack_c0 = unaff_s8;\n  pcStack_bc = pcVar15;\n  if ((char)local_a8 == '\0') {\n    pppppppiVar28 = (int *******)piVar34[0x12];\n    ppiVar33 = (int **)0x0;\n    if ((uint)((int)pppppppiVar23 << 3) < 0xfc0) goto LAB_00020d5c;\nLAB_00021488:\n    pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n    ppppppiStack_f4 = (int ******)0x0;\n    uStack_f8 = 0;\n    ppppppiStack_fc = (int ******)0x0;\n    param_3 = &ppppppiStack_fc;\n    pppppppiStack_124 = (int *******)(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c);\n    iStack_128 = 1;\n    if (pppppppiStack_124 != (int *******)0x0) goto LAB_00020d6c;\n    puVar37 = auStack_150;\n    if (ppiVar33 == (int **)0x0) {\n      uVar10 = 0xc;\n      goto LAB_00020f18;\n    }\nLAB_0002112c:\n    param_3 = &ppppppiStack_fc;\n    FUN_0001ec78(ppiVar33);\n    puVar39 = puVar37;\n  }\n  else {\n    ppiVar33 = &piStack_f0;\n    iStack_e8 = (**(code **)(puVar35 + 0x1b614))(0x30);\n    puVar39 = auStack_150;\n    if (iStack_e8 != 0) {\n      pppppppiVar28 = (int *******)piVar34[0x12];\n      if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n      ppppppiStack_f4 = (int ******)0x0;\n      uStack_f8 = 0;\n      ppppppiStack_fc = (int ******)0x0;\n      puVar37 = auStack_150 + (int)pppppppiVar23 * -8;\n      iStack_128 = 0;\n      pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;\nLAB_00020d6c:\n      param_3 = &ppppppiStack_fc;\n      pppppppiVar3 = pppppppiVar7;\n      pppppppiVar12 = pppppppiStack_11c;\n      (*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);\n      pppppppiStack_100 = (int *******)*pppppppiVar7;\n      ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);\n      ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);\n      ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);\nLAB_00020db0:\n      pppppppiVar29 = (int *******)pppppppiVar7[1];\n      ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n      ppppppiVar32 = appppppiStack_138[0];\n      puVar38 = puVar37;\n      if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }\n      pppppppiVar25 = pppppppiStack_100;\n      (*(code *)ppppiVar19)(ppppppiStack_f4);\n      if (iStack_128 == 0) {\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }\n      else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      FUN_0001ec78(ppiVar33);\nLAB_00020f14:\n      uVar10 = 0;\n      goto LAB_00020f18;\n    }\n  }\n  uVar10 = 0xc;\n  puVar38 = puVar39;\nLAB_00020f18:\n  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f77];\n  if (iStack_e4 == *piStack_12c) {\n    return uVar10;\n  }\n  pcVar15 = FUN_00021550;\n  iVar6 = iStack_e4;\n  (*(code *)ppppiVar19)();\n  *(int ********)(puVar38 + -0x18) = pppppppiVar30;\n  *(int ********)(puVar38 + -0x14) = param_3;\n  *(int ********)(puVar38 + -0x1c) = pppppppiVar7;\n  *(int ********)(puVar38 + -0x10) = pppppppiVar23;\n  *(int *****)(puVar38 + -0x28) = ppppiVar19 + 0x8ae0;\n  *(int ********)(puVar38 + -0x20) = pppppppiVar22;\n  *(code **)(puVar38 + -4) = pcVar15;\n  *(int **)(puVar38 + -8) = piVar34;\n  *(int ***)(puVar38 + -0xc) = ppiVar33;\n  iVar31 = *(int *)(puVar38 + 0x10);\n  *(undefined4 *)(puVar38 + -0x30) = 8;\n  *(int *)(puVar38 + -0x34) = iVar31;\n  *(int ********)(puVar38 + -0x38) = pppppppiVar25;\n  uVar10 = FUN_00020550();\n  if (uVar10 != 0) {\n    return uVar10;\n  }\n  iVar11 = *(int *)(iVar6 + 0x6c);\n  ppppppiVar14 = *pppppppiVar3;\n  ppppppiVar13 = pppppppiVar12[1];\n  iVar20 = *(int *)(iVar6 + 0x74);\n  ppppppiVar32 = ppppppiVar13;\n  if (*(int *)(iVar6 + 0x70) <= iVar11) {\n    iVar11 = (**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))\n                       (iVar20,*(int *)(iVar6 + 0x70) * 0x28);\n    if (iVar11 == 0) {\n      (**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74));\n      return 0xc;\n    }\n    pcVar15 = *(code **)(*(int *)(puVar38 + -0x28) + -0x7e40);\n    *(int *)(iVar6 + 0x74) = iVar11;\n    (*pcVar15)(iVar11 + *(int *)(iVar6 + 0x6c) * 0x14,0,*(int *)(iVar6 + 0x70) * 0x14);\n    ppppppiVar32 = pppppppiVar12[1];\n    iVar11 = *(int *)(iVar6 + 0x6c);\n    iVar20 = *(int *)(iVar6 + 0x74);\n    *(int *)(iVar6 + 0x70) = *(int *)(iVar6 + 0x70) << 1;\n  }\n  if ((0 < iVar11) && (iVar24 = iVar20 + iVar11 * 0x14 + -0x14, iVar31 == *(int *)(iVar24 + 4))) {\n    *(undefined1 *)(iVar24 + 0x10) = 1;\n  }\n  puVar21 = (undefined4 *)(iVar20 + iVar11 * 0x14);\n  *puVar21 = pppppppiVar25;\n  puVar21[1] = iVar31;\n  puVar21[2] = ppppppiVar14;\n  puVar21[3] = ppppppiVar13;\n  *(ushort *)((int)puVar21 + 0x12) = -(ushort)(ppppppiVar14 == ppppppiVar13);\n  *(int *)(iVar6 + 0x6c) = iVar11 + 1;\n  *(undefined1 *)(puVar21 + 4) = 0;\n  if (*(int *)(iVar6 + 0x78) < (int)ppppppiVar13 - (int)ppppppiVar14) {\n    *(int *)(iVar6 + 0x78) = (int)ppppppiVar13 - (int)ppppppiVar14;\n  }\n  uVar10 = FUN_00019470(iVar6,(int)ppppppiVar32 + (iVar31 - (int)*pppppppiVar3));\n  return uVar10;\nLAB_00020f60:\n  ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n  pppppppiVar25 = pppppppiStack_100;\n  if (pppppppiVar28 == (int *******)&SUB_fffffffe) {\nLAB_000213b0:\n    (*(code *)ppppiVar19)(ppppppiStack_f4);\n    if (iStack_128 != 0) {\nLAB_000214d4:\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n    }\n    if (ppiVar33 != (int **)0x0) goto LAB_0002112c;\n    uVar10 = 0xc;\n    goto LAB_00020f18;\n  }\nLAB_00020f6c:\n  pppppppiVar27 = pppppppiVar30;\n  if (ppiVar33 == (int **)0x0) {\n    (*(code *)((int *****)ppppppiVar32)[-0x1f6c])(ppppppiStack_f4);\n    if (iStack_128 == 0) {\n      uVar10 = 1;\n    }\n    else {\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n      uVar10 = 1;\n    }\n    goto LAB_00020f18;\n  }\nLAB_00020f7c:\n  ppppiVar19 = ppppiStack_120;\n  pppppppiVar12 = (int *******)&pppppppiStack_100;\n  pppppppiVar3 = (int *******)(ppiVar33 + 2);\n  *(int ********)(puVar37 + 0x14) = param_3;\n  *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n  pppppppiVar28 =\n       (int *******)(*(code *)ppppiVar19)(ppiVar33,pppppppiVar3,pppppppiVar12,pppppppiVar23);\n  pppppppiVar30 = pppppppiVar27;\n  goto LAB_00020db0;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *******pppppppiVar3;" primitive_type (pointer_declarator "*******pppppppiVar3" * (pointer_declarator "******pppppppiVar3" * (pointer_declarator "*****pppppppiVar3" * (pointer_declarator "****pppppppiVar3" * (pointer_declarator "***pppppppiVar3" * (pointer_declarator "**pppppppiVar3" * (pointer_declarator "*pppppppiVar3" * identifier))))))) ;) (declaration "int ******ppppppiVar4;" primitive_type (pointer_declarator "******ppppppiVar4" * (pointer_declarator "*****ppppppiVar4" * (pointer_declarator "****ppppppiVar4" * (pointer_declarator "***ppppppiVar4" * (pointer_declarator "**ppppppiVar4" * (pointer_declarator "*ppppppiVar4" * identifier)))))) ;) (declaration "code *pcVar5;" type_identifier (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *******pppppppiVar7;" primitive_type (pointer_declarator "*******pppppppiVar7" * (pointer_declarator "******pppppppiVar7" * (pointer_declarator "*****pppppppiVar7" * (pointer_declarator "****pppppppiVar7" * (pointer_declarator "***pppppppiVar7" * (pointer_declarator "**pppppppiVar7" * (pointer_declarator "*pppppppiVar7" * identifier))))))) ;) (declaration "int *****pppppiVar8;" primitive_type (pointer_declarator "*****pppppiVar8" * (pointer_declarator "****pppppiVar8" * (pointer_declarator "***pppppiVar8" * (pointer_declarator "**pppppiVar8" * (pointer_declarator "*pppppiVar8" * identifier))))) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int *******pppppppiVar12;" primitive_type (pointer_declarator "*******pppppppiVar12" * (pointer_declarator "******pppppppiVar12" * (pointer_declarator "*****pppppppiVar12" * (pointer_declarator "****pppppppiVar12" * (pointer_declarator "***pppppppiVar12" * (pointer_declarator "**pppppppiVar12" * (pointer_declarator "*pppppppiVar12" * identifier))))))) ;) (declaration "int ******ppppppiVar13;" primitive_type (pointer_declarator "******ppppppiVar13" * (pointer_declarator "*****ppppppiVar13" * (pointer_declarator "****ppppppiVar13" * (pointer_declarator "***ppppppiVar13" * (pointer_declarator "**ppppppiVar13" * (pointer_declarator "*ppppppiVar13" * identifier)))))) ;) (declaration "int ******ppppppiVar14;" primitive_type (pointer_declarator "******ppppppiVar14" * (pointer_declarator "*****ppppppiVar14" * (pointer_declarator "****ppppppiVar14" * (pointer_declarator "***ppppppiVar14" * (pointer_declarator "**ppppppiVar14" * (pointer_declarator "*ppppppiVar14" * identifier)))))) ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "code *pcVar17;" type_identifier (pointer_declarator "*pcVar17" * identifier) ;) (declaration "int ******ppppppiVar18;" primitive_type (pointer_declarator "******ppppppiVar18" * (pointer_declarator "*****ppppppiVar18" * (pointer_declarator "****ppppppiVar18" * (pointer_declarator "***ppppppiVar18" * (pointer_declarator "**ppppppiVar18" * (pointer_declarator "*ppppppiVar18" * identifier)))))) ;) (declaration "int ****ppppiVar19;" primitive_type (pointer_declarator "****ppppiVar19" * (pointer_declarator "***ppppiVar19" * (pointer_declarator "**ppppiVar19" * (pointer_declarator "*ppppiVar19" * identifier)))) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "undefined4 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "int *******pppppppiVar22;" primitive_type (pointer_declarator "*******pppppppiVar22" * (pointer_declarator "******pppppppiVar22" * (pointer_declarator "*****pppppppiVar22" * (pointer_declarator "****pppppppiVar22" * (pointer_declarator "***pppppppiVar22" * (pointer_declarator "**pppppppiVar22" * (pointer_declarator "*pppppppiVar22" * identifier))))))) ;) (declaration "int *******pppppppiVar23;" primitive_type (pointer_declarator "*******pppppppiVar23" * (pointer_declarator "******pppppppiVar23" * (pointer_declarator "*****pppppppiVar23" * (pointer_declarator "****pppppppiVar23" * (pointer_declarator "***pppppppiVar23" * (pointer_declarator "**pppppppiVar23" * (pointer_declarator "*pppppppiVar23" * identifier))))))) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "int *******pppppppiVar25;" primitive_type (pointer_declarator "*******pppppppiVar25" * (pointer_declarator "******pppppppiVar25" * (pointer_declarator "*****pppppppiVar25" * (pointer_declarator "****pppppppiVar25" * (pointer_declarator "***pppppppiVar25" * (pointer_declarator "**pppppppiVar25" * (pointer_declarator "*pppppppiVar25" * identifier))))))) ;) (declaration "int *******pppppppiVar26;" primitive_type (pointer_declarator "*******pppppppiVar26" * (pointer_declarator "******pppppppiVar26" * (pointer_declarator "*****pppppppiVar26" * (pointer_declarator "****pppppppiVar26" * (pointer_declarator "***pppppppiVar26" * (pointer_declarator "**pppppppiVar26" * (pointer_declarator "*pppppppiVar26" * identifier))))))) ;) (declaration "int *******pppppppiVar27;" primitive_type (pointer_declarator "*******pppppppiVar27" * (pointer_declarator "******pppppppiVar27" * (pointer_declarator "*****pppppppiVar27" * (pointer_declarator "****pppppppiVar27" * (pointer_declarator "***pppppppiVar27" * (pointer_declarator "**pppppppiVar27" * (pointer_declarator "*pppppppiVar27" * identifier))))))) ;) (declaration "int *******pppppppiVar28;" primitive_type (pointer_declarator "*******pppppppiVar28" * (pointer_declarator "******pppppppiVar28" * (pointer_declarator "*****pppppppiVar28" * (pointer_declarator "****pppppppiVar28" * (pointer_declarator "***pppppppiVar28" * (pointer_declarator "**pppppppiVar28" * (pointer_declarator "*pppppppiVar28" * identifier))))))) ;) (declaration "int *******pppppppiVar29;" primitive_type (pointer_declarator "*******pppppppiVar29" * (pointer_declarator "******pppppppiVar29" * (pointer_declarator "*****pppppppiVar29" * (pointer_declarator "****pppppppiVar29" * (pointer_declarator "***pppppppiVar29" * (pointer_declarator "**pppppppiVar29" * (pointer_declarator "*pppppppiVar29" * identifier))))))) ;) (declaration "int *******pppppppiVar30;" primitive_type (pointer_declarator "*******pppppppiVar30" * (pointer_declarator "******pppppppiVar30" * (pointer_declarator "*****pppppppiVar30" * (pointer_declarator "****pppppppiVar30" * (pointer_declarator "***pppppppiVar30" * (pointer_declarator "**pppppppiVar30" * (pointer_declarator "*pppppppiVar30" * identifier))))))) ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "int ******ppppppiVar32;" primitive_type (pointer_declarator "******ppppppiVar32" * (pointer_declarator "*****ppppppiVar32" * (pointer_declarator "****ppppppiVar32" * (pointer_declarator "***ppppppiVar32" * (pointer_declarator "**ppppppiVar32" * (pointer_declarator "*ppppppiVar32" * identifier)))))) ;) (declaration "int *******unaff_s5;" primitive_type (pointer_declarator "*******unaff_s5" * (pointer_declarator "******unaff_s5" * (pointer_declarator "*****unaff_s5" * (pointer_declarator "****unaff_s5" * (pointer_declarator "***unaff_s5" * (pointer_declarator "**unaff_s5" * (pointer_declarator "*unaff_s5" * identifier))))))) ;) (declaration "int **ppiVar33;" primitive_type (pointer_declarator "**ppiVar33" * (pointer_declarator "*ppiVar33" * identifier)) ;) (declaration "int *piVar34;" primitive_type (pointer_declarator "*piVar34" * identifier) ;) (declaration "int ******unaff_s7;" primitive_type (pointer_declarator "******unaff_s7" * (pointer_declarator "*****unaff_s7" * (pointer_declarator "****unaff_s7" * (pointer_declarator "***unaff_s7" * (pointer_declarator "**unaff_s7" * (pointer_declarator "*unaff_s7" * identifier)))))) ;) (declaration "undefined *puVar35;" type_identifier (pointer_declarator "*puVar35" * identifier) ;) (declaration "int ****ppppiVar36;" primitive_type (pointer_declarator "****ppppiVar36" * (pointer_declarator "***ppppiVar36" * (pointer_declarator "**ppppiVar36" * (pointer_declarator "*ppppiVar36" * identifier)))) ;) (declaration "undefined1 *puVar37;" type_identifier (pointer_declarator "*puVar37" * identifier) ;) (declaration "undefined1 *puVar38;" type_identifier (pointer_declarator "*puVar38" * identifier) ;) (declaration "undefined1 *puVar39;" type_identifier (pointer_declarator "*puVar39" * identifier) ;) (declaration "int *******unaff_s8;" primitive_type (pointer_declarator "*******unaff_s8" * (pointer_declarator "******unaff_s8" * (pointer_declarator "*****unaff_s8" * (pointer_declarator "****unaff_s8" * (pointer_declarator "***unaff_s8" * (pointer_declarator "**unaff_s8" * (pointer_declarator "*unaff_s8" * identifier))))))) ;) (declaration "undefined1 auStack_150 [24];" type_identifier (array_declarator "auStack_150 [24]" identifier [ number_literal ]) ;) (declaration "int ******appppppiStack_138 [2];" primitive_type (pointer_declarator "******appppppiStack_138 [2]" * (pointer_declarator "*****appppppiStack_138 [2]" * (pointer_declarator "****appppppiStack_138 [2]" * (pointer_declarator "***appppppiStack_138 [2]" * (pointer_declarator "**appppppiStack_138 [2]" * (pointer_declarator "*appppppiStack_138 [2]" * (array_declarator "appppppiStack_138 [2]" identifier [ number_literal ]))))))) ;) (declaration "int *******pppppppiStack_130;" primitive_type (pointer_declarator "*******pppppppiStack_130" * (pointer_declarator "******pppppppiStack_130" * (pointer_declarator "*****pppppppiStack_130" * (pointer_declarator "****pppppppiStack_130" * (pointer_declarator "***pppppppiStack_130" * (pointer_declarator "**pppppppiStack_130" * (pointer_declarator "*pppppppiStack_130" * identifier))))))) ;) (declaration "int *piStack_12c;" primitive_type (pointer_declarator "*piStack_12c" * identifier) ;) (declaration "int iStack_128;" primitive_type identifier ;) (declaration "int *******pppppppiStack_124;" primitive_type (pointer_declarator "*******pppppppiStack_124" * (pointer_declarator "******pppppppiStack_124" * (pointer_declarator "*****pppppppiStack_124" * (pointer_declarator "****pppppppiStack_124" * (pointer_declarator "***pppppppiStack_124" * (pointer_declarator "**pppppppiStack_124" * (pointer_declarator "*pppppppiStack_124" * identifier))))))) ;) (declaration "int ****ppppiStack_120;" primitive_type (pointer_declarator "****ppppiStack_120" * (pointer_declarator "***ppppiStack_120" * (pointer_declarator "**ppppiStack_120" * (pointer_declarator "*ppppiStack_120" * identifier)))) ;) (declaration "int *******pppppppiStack_11c;" primitive_type (pointer_declarator "*******pppppppiStack_11c" * (pointer_declarator "******pppppppiStack_11c" * (pointer_declarator "*****pppppppiStack_11c" * (pointer_declarator "****pppppppiStack_11c" * (pointer_declarator "***pppppppiStack_11c" * (pointer_declarator "**pppppppiStack_11c" * (pointer_declarator "*pppppppiStack_11c" * identifier))))))) ;) (declaration "int ****ppppiStack_118;" primitive_type (pointer_declarator "****ppppiStack_118" * (pointer_declarator "***ppppiStack_118" * (pointer_declarator "**ppppiStack_118" * (pointer_declarator "*ppppiStack_118" * identifier)))) ;) (declaration "int ****ppppiStack_114;" primitive_type (pointer_declarator "****ppppiStack_114" * (pointer_declarator "***ppppiStack_114" * (pointer_declarator "**ppppiStack_114" * (pointer_declarator "*ppppiStack_114" * identifier)))) ;) (declaration "int ****ppppiStack_110;" primitive_type (pointer_declarator "****ppppiStack_110" * (pointer_declarator "***ppppiStack_110" * (pointer_declarator "**ppppiStack_110" * (pointer_declarator "*ppppiStack_110" * identifier)))) ;) (declaration "int *******pppppppiStack_10c;" primitive_type (pointer_declarator "*******pppppppiStack_10c" * (pointer_declarator "******pppppppiStack_10c" * (pointer_declarator "*****pppppppiStack_10c" * (pointer_declarator "****pppppppiStack_10c" * (pointer_declarator "***pppppppiStack_10c" * (pointer_declarator "**pppppppiStack_10c" * (pointer_declarator "*pppppppiStack_10c" * identifier))))))) ;) (declaration "int *******pppppppiStack_108;" primitive_type (pointer_declarator "*******pppppppiStack_108" * (pointer_declarator "******pppppppiStack_108" * (pointer_declarator "*****pppppppiStack_108" * (pointer_declarator "****pppppppiStack_108" * (pointer_declarator "***pppppppiStack_108" * (pointer_declarator "**pppppppiStack_108" * (pointer_declarator "*pppppppiStack_108" * identifier))))))) ;) (declaration "int ****ppppiStack_104;" primitive_type (pointer_declarator "****ppppiStack_104" * (pointer_declarator "***ppppiStack_104" * (pointer_declarator "**ppppiStack_104" * (pointer_declarator "*ppppiStack_104" * identifier)))) ;) (declaration "int *******pppppppiStack_100;" primitive_type (pointer_declarator "*******pppppppiStack_100" * (pointer_declarator "******pppppppiStack_100" * (pointer_declarator "*****pppppppiStack_100" * (pointer_declarator "****pppppppiStack_100" * (pointer_declarator "***pppppppiStack_100" * (pointer_declarator "**pppppppiStack_100" * (pointer_declarator "*pppppppiStack_100" * identifier))))))) ;) (declaration "int ******ppppppiStack_fc;" primitive_type (pointer_declarator "******ppppppiStack_fc" * (pointer_declarator "*****ppppppiStack_fc" * (pointer_declarator "****ppppppiStack_fc" * (pointer_declarator "***ppppppiStack_fc" * (pointer_declarator "**ppppppiStack_fc" * (pointer_declarator "*ppppppiStack_fc" * identifier)))))) ;) (declaration "undefined4 uStack_f8;" type_identifier identifier ;) (declaration "int ******ppppppiStack_f4;" primitive_type (pointer_declarator "******ppppppiStack_f4" * (pointer_declarator "*****ppppppiStack_f4" * (pointer_declarator "****ppppppiStack_f4" * (pointer_declarator "***ppppppiStack_f4" * (pointer_declarator "**ppppppiStack_f4" * (pointer_declarator "*ppppppiStack_f4" * identifier)))))) ;) (declaration "int *piStack_f0;" primitive_type (pointer_declarator "*piStack_f0" * identifier) ;) (declaration "undefined4 uStack_ec;" type_identifier identifier ;) (declaration "int iStack_e8;" primitive_type identifier ;) (declaration "int iStack_e4;" primitive_type identifier ;) (declaration "int *******pppppppiStack_e0;" primitive_type (pointer_declarator "*******pppppppiStack_e0" * (pointer_declarator "******pppppppiStack_e0" * (pointer_declarator "*****pppppppiStack_e0" * (pointer_declarator "****pppppppiStack_e0" * (pointer_declarator "***pppppppiStack_e0" * (pointer_declarator "**pppppppiStack_e0" * (pointer_declarator "*pppppppiStack_e0" * identifier))))))) ;) (declaration "int *******pppppppiStack_dc;" primitive_type (pointer_declarator "*******pppppppiStack_dc" * (pointer_declarator "******pppppppiStack_dc" * (pointer_declarator "*****pppppppiStack_dc" * (pointer_declarator "****pppppppiStack_dc" * (pointer_declarator "***pppppppiStack_dc" * (pointer_declarator "**pppppppiStack_dc" * (pointer_declarator "*pppppppiStack_dc" * identifier))))))) ;) (declaration "int *******pppppppiStack_d8;" primitive_type (pointer_declarator "*******pppppppiStack_d8" * (pointer_declarator "******pppppppiStack_d8" * (pointer_declarator "*****pppppppiStack_d8" * (pointer_declarator "****pppppppiStack_d8" * (pointer_declarator "***pppppppiStack_d8" * (pointer_declarator "**pppppppiStack_d8" * (pointer_declarator "*pppppppiStack_d8" * identifier))))))) ;) (declaration "int *******pppppppiStack_d4;" primitive_type (pointer_declarator "*******pppppppiStack_d4" * (pointer_declarator "******pppppppiStack_d4" * (pointer_declarator "*****pppppppiStack_d4" * (pointer_declarator "****pppppppiStack_d4" * (pointer_declarator "***pppppppiStack_d4" * (pointer_declarator "**pppppppiStack_d4" * (pointer_declarator "*pppppppiStack_d4" * identifier))))))) ;) (declaration "int ******ppppppiStack_d0;" primitive_type (pointer_declarator "******ppppppiStack_d0" * (pointer_declarator "*****ppppppiStack_d0" * (pointer_declarator "****ppppppiStack_d0" * (pointer_declarator "***ppppppiStack_d0" * (pointer_declarator "**ppppppiStack_d0" * (pointer_declarator "*ppppppiStack_d0" * identifier)))))) ;) (declaration "int *******pppppppiStack_cc;" primitive_type (pointer_declarator "*******pppppppiStack_cc" * (pointer_declarator "******pppppppiStack_cc" * (pointer_declarator "*****pppppppiStack_cc" * (pointer_declarator "****pppppppiStack_cc" * (pointer_declarator "***pppppppiStack_cc" * (pointer_declarator "**pppppppiStack_cc" * (pointer_declarator "*pppppppiStack_cc" * identifier))))))) ;) (declaration "int *******pppppppiStack_c8;" primitive_type (pointer_declarator "*******pppppppiStack_c8" * (pointer_declarator "******pppppppiStack_c8" * (pointer_declarator "*****pppppppiStack_c8" * (pointer_declarator "****pppppppiStack_c8" * (pointer_declarator "***pppppppiStack_c8" * (pointer_declarator "**pppppppiStack_c8" * (pointer_declarator "*pppppppiStack_c8" * identifier))))))) ;) (declaration "int ******ppppppiStack_c4;" primitive_type (pointer_declarator "******ppppppiStack_c4" * (pointer_declarator "*****ppppppiStack_c4" * (pointer_declarator "****ppppppiStack_c4" * (pointer_declarator "***ppppppiStack_c4" * (pointer_declarator "**ppppppiStack_c4" * (pointer_declarator "*ppppppiStack_c4" * identifier)))))) ;) (declaration "int *******pppppppiStack_c0;" primitive_type (pointer_declarator "*******pppppppiStack_c0" * (pointer_declarator "******pppppppiStack_c0" * (pointer_declarator "*****pppppppiStack_c0" * (pointer_declarator "****pppppppiStack_c0" * (pointer_declarator "***pppppppiStack_c0" * (pointer_declarator "**pppppppiStack_c0" * (pointer_declarator "*pppppppiStack_c0" * identifier))))))) ;) (declaration "code *pcStack_bc;" type_identifier (pointer_declarator "*pcStack_bc" * identifier) ;) (declaration "undefined4 local_a8;" type_identifier identifier ;) (declaration "int local_8c;" primitive_type identifier ;) (declaration "code *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "uint local_48 [3];" type_identifier (array_declarator "local_48 [3]" identifier [ number_literal ]) ;) (declaration "undefined4 *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (declaration "int ******local_38;" primitive_type (pointer_declarator "******local_38" * (pointer_declarator "*****local_38" * (pointer_declarator "****local_38" * (pointer_declarator "***local_38" * (pointer_declarator "**local_38" * (pointer_declarator "*local_38" * identifier)))))) ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar35 = PTR___stack_chk_guard_0003c314;" (assignment_expression "puVar35 = PTR___stack_chk_guard_0003c314" identifier = identifier) ;) (expression_statement "pppppppiVar12 = (int *******)param_1[0x15];" (assignment_expression "pppppppiVar12 = (int *******)param_1[0x15]" identifier = (cast_expression "(int *******)param_1[0x15]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "param_1[0x15]" identifier [ number_literal ]))) ;) (expression_statement "pppppppiVar30 = (int *******)param_2[1];" (assignment_expression "pppppppiVar30 = (int *******)param_2[1]" identifier = (cast_expression "(int *******)param_2[1]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))) ;) (expression_statement "local_2c = *(undefined4 **)PTR___stack_chk_guard_0003c314;" (assignment_expression "local_2c = *(undefined4 **)PTR___stack_chk_guard_0003c314" identifier = (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_0003c314" * (cast_expression "(undefined4 **)PTR___stack_chk_guard_0003c314" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pppppppiVar22 = (int *******)((int)param_3 * 8);" (assignment_expression "pppppppiVar22 = (int *******)((int)param_3 * 8)" identifier = (cast_expression "(int *******)((int)param_3 * 8)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)param_3 * 8)" ( (binary_expression "(int)param_3 * 8" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "pppppppiVar23 = (int *******)(param_6 + (int)param_1[0x1e]);" (assignment_expression "pppppppiVar23 = (int *******)(param_6 + (int)param_1[0x1e])" identifier = (cast_expression "(int *******)(param_6 + (int)param_1[0x1e])" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(param_6 + (int)param_1[0x1e])" ( (binary_expression "param_6 + (int)param_1[0x1e]" identifier + (cast_expression "(int)param_1[0x1e]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x1e]" identifier [ number_literal ]))) )))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "pppppppiVar3 = (int *******)(*pppppppiVar12)[(int)param_3 * 2];" (assignment_expression "pppppppiVar3 = (int *******)(*pppppppiVar12)[(int)param_3 * 2]" identifier = (cast_expression "(int *******)(*pppppppiVar12)[(int)param_3 * 2]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "(*pppppppiVar12)[(int)param_3 * 2]" (parenthesized_expression "(*pppppppiVar12)" ( (pointer_expression "*pppppppiVar12" * identifier) )) [ (binary_expression "(int)param_3 * 2" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ]))) ;) (expression_statement "pppppppiVar7 = param_4;" (assignment_expression "pppppppiVar7 = param_4" identifier = identifier) ;) (if_statement "if ((int)pppppppiVar23 < (int)pppppppiVar30) {\nLAB_000205e8:\n    puVar2 = PTR_LAB_0003c1e8;\n    ppppppiVar13 = param_1[0x19];\n    pppppppiVar23 = (int *******)param_1[0x16];\n    pppppppiVar28 = (int *******)*param_2;\n    ppppppiVar32 = param_2[2];\n    ppppppiVar14 = param_1[10];\n    if (pppppppiVar28 == (int *******)0x0) {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)param_4 + -1);\n      param_1[10] = (int ******)param_4;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\nLAB_00020b7c:\n      local_48[1] = 1;\n      local_48[2] = 1;\n      local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4);\n      if (local_3c == (undefined4 *)0x0) goto LAB_00020c64;\n      pppppppiVar22 = (int *******)(local_48 + 1);\n      *local_3c = param_3;\n      local_4c = 0;\n      pppppppiVar23 = pppppppiVar3;\n      pppppppiVar7 = param_7;\n      local_4c = FUN_0001afe8(pppppppiVar12);\n      pppppppiVar28 = param_4;\n      if (local_4c == 0) {\nLAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);\n        if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }\n        pppppppiVar22 = pppppppiVar12;\n        pppppppiVar7 = pppppppiVar30;\n        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n        pppppppiVar23 = pppppppiVar25;\n        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }\n      }\nLAB_00020920:\n      (*(code *)PTR_free_0003c320)(local_3c);\n      uVar10 = local_4c;\n    }\n    else {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);\n      param_1[10] = (int ******)pppppppiVar28;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\n      if (pppppppiVar28 == param_4) goto LAB_00020b7c;\n      ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;\n      unaff_s7 = (int ******)*ppppppiVar32;\n      pppppppiVar25 = pppppppiVar28;\n      if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }\n      else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }\n  }\n  else {\n    pppppppiVar28 = (int *******)((int)pppppppiVar23 + 1);\n    ppppppiVar32 = (int ******)((int)pppppppiVar30 + (int)pppppppiVar28);\n    if (((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&\n       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)) {\n      pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);\n      ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);\n      puVar2 = PTR_memset_0003c290;\n      if (ppppppiVar13 != (int ******)0x0) {\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }\n    }\nLAB_00020c64:\n    uVar10 = 0xc;\n  }" if (parenthesized_expression "((int)pppppppiVar23 < (int)pppppppiVar30)" ( (binary_expression "(int)pppppppiVar23 < (int)pppppppiVar30" (cast_expression "(int)pppppppiVar23" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppppiVar30" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\nLAB_000205e8:\n    puVar2 = PTR_LAB_0003c1e8;\n    ppppppiVar13 = param_1[0x19];\n    pppppppiVar23 = (int *******)param_1[0x16];\n    pppppppiVar28 = (int *******)*param_2;\n    ppppppiVar32 = param_2[2];\n    ppppppiVar14 = param_1[10];\n    if (pppppppiVar28 == (int *******)0x0) {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)param_4 + -1);\n      param_1[10] = (int ******)param_4;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\nLAB_00020b7c:\n      local_48[1] = 1;\n      local_48[2] = 1;\n      local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4);\n      if (local_3c == (undefined4 *)0x0) goto LAB_00020c64;\n      pppppppiVar22 = (int *******)(local_48 + 1);\n      *local_3c = param_3;\n      local_4c = 0;\n      pppppppiVar23 = pppppppiVar3;\n      pppppppiVar7 = param_7;\n      local_4c = FUN_0001afe8(pppppppiVar12);\n      pppppppiVar28 = param_4;\n      if (local_4c == 0) {\nLAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);\n        if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }\n        pppppppiVar22 = pppppppiVar12;\n        pppppppiVar7 = pppppppiVar30;\n        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n        pppppppiVar23 = pppppppiVar25;\n        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }\n      }\nLAB_00020920:\n      (*(code *)PTR_free_0003c320)(local_3c);\n      uVar10 = local_4c;\n    }\n    else {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);\n      param_1[10] = (int ******)pppppppiVar28;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\n      if (pppppppiVar28 == param_4) goto LAB_00020b7c;\n      ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;\n      unaff_s7 = (int ******)*ppppppiVar32;\n      pppppppiVar25 = pppppppiVar28;\n      if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }\n      else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }\n  }" { (labeled_statement "LAB_000205e8:\n    puVar2 = PTR_LAB_0003c1e8;" statement_identifier : (expression_statement "puVar2 = PTR_LAB_0003c1e8;" (assignment_expression "puVar2 = PTR_LAB_0003c1e8" identifier = identifier) ;)) (expression_statement "ppppppiVar13 = param_1[0x19];" (assignment_expression "ppppppiVar13 = param_1[0x19]" identifier = (subscript_expression "param_1[0x19]" identifier [ number_literal ])) ;) (expression_statement "pppppppiVar23 = (int *******)param_1[0x16];" (assignment_expression "pppppppiVar23 = (int *******)param_1[0x16]" identifier = (cast_expression "(int *******)param_1[0x16]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "param_1[0x16]" identifier [ number_literal ]))) ;) (expression_statement "pppppppiVar28 = (int *******)*param_2;" (assignment_expression "pppppppiVar28 = (int *******)*param_2" identifier = (cast_expression "(int *******)*param_2" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "ppppppiVar32 = param_2[2];" (assignment_expression "ppppppiVar32 = param_2[2]" identifier = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar14 = param_1[10];" (assignment_expression "ppppppiVar14 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (if_statement "if (pppppppiVar28 == (int *******)0x0) {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)param_4 + -1);\n      param_1[10] = (int ******)param_4;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\nLAB_00020b7c:\n      local_48[1] = 1;\n      local_48[2] = 1;\n      local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4);\n      if (local_3c == (undefined4 *)0x0) goto LAB_00020c64;\n      pppppppiVar22 = (int *******)(local_48 + 1);\n      *local_3c = param_3;\n      local_4c = 0;\n      pppppppiVar23 = pppppppiVar3;\n      pppppppiVar7 = param_7;\n      local_4c = FUN_0001afe8(pppppppiVar12);\n      pppppppiVar28 = param_4;\n      if (local_4c == 0) {\nLAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);\n        if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }\n        pppppppiVar22 = pppppppiVar12;\n        pppppppiVar7 = pppppppiVar30;\n        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n        pppppppiVar23 = pppppppiVar25;\n        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }\n      }\nLAB_00020920:\n      (*(code *)PTR_free_0003c320)(local_3c);\n      uVar10 = local_4c;\n    }\n    else {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);\n      param_1[10] = (int ******)pppppppiVar28;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\n      if (pppppppiVar28 == param_4) goto LAB_00020b7c;\n      ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;\n      unaff_s7 = (int ******)*ppppppiVar32;\n      pppppppiVar25 = pppppppiVar28;\n      if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }\n      else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }" if (parenthesized_expression "(pppppppiVar28 == (int *******)0x0)" ( (binary_expression "pppppppiVar28 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)param_4 + -1);\n      param_1[10] = (int ******)param_4;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\nLAB_00020b7c:\n      local_48[1] = 1;\n      local_48[2] = 1;\n      local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4);\n      if (local_3c == (undefined4 *)0x0) goto LAB_00020c64;\n      pppppppiVar22 = (int *******)(local_48 + 1);\n      *local_3c = param_3;\n      local_4c = 0;\n      pppppppiVar23 = pppppppiVar3;\n      pppppppiVar7 = param_7;\n      local_4c = FUN_0001afe8(pppppppiVar12);\n      pppppppiVar28 = param_4;\n      if (local_4c == 0) {\nLAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);\n        if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }\n        pppppppiVar22 = pppppppiVar12;\n        pppppppiVar7 = pppppppiVar30;\n        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n        pppppppiVar23 = pppppppiVar25;\n        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }\n      }\nLAB_00020920:\n      (*(code *)PTR_free_0003c320)(local_3c);\n      uVar10 = local_4c;\n    }" { (expression_statement "param_1[0x19] = ppppppiVar32;" (assignment_expression "param_1[0x19] = ppppppiVar32" (subscript_expression "param_1[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppiVar22 = (int *******)((int)param_4 + -1);" (assignment_expression "pppppppiVar22 = (int *******)((int)param_4 + -1)" identifier = (cast_expression "(int *******)((int)param_4 + -1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)param_4 + -1)" ( (binary_expression "(int)param_4 + -1" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "param_1[10] = (int ******)param_4;" (assignment_expression "param_1[10] = (int ******)param_4" (subscript_expression "param_1[10]" identifier [ number_literal ]) = (cast_expression "(int ******)param_4" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "pppppppiVar30 = (int *******)FUN_0001cb50(param_1);" (assignment_expression "pppppppiVar30 = (int *******)FUN_0001cb50(param_1)" identifier = (cast_expression "(int *******)FUN_0001cb50(param_1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_0001cb50(param_1)" identifier (argument_list "(param_1)" ( identifier ))))) ;) (labeled_statement "LAB_00020b7c:\n      local_48[1] = 1;" statement_identifier : (expression_statement "local_48[1] = 1;" (assignment_expression "local_48[1] = 1" (subscript_expression "local_48[1]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "local_48[2] = 1;" (assignment_expression "local_48[2] = 1" (subscript_expression "local_48[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4);" (assignment_expression "local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0003c2b4)(4)" (parenthesized_expression "(*(code *)PTR_malloc_0003c2b4)" ( (pointer_expression "*(code *)PTR_malloc_0003c2b4" * (cast_expression "(code *)PTR_malloc_0003c2b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(4)" ( number_literal ))))) ;) (if_statement "if (local_3c == (undefined4 *)0x0) goto LAB_00020c64;" if (parenthesized_expression "(local_3c == (undefined4 *)0x0)" ( (binary_expression "local_3c == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00020c64;" goto statement_identifier ;)) (expression_statement "pppppppiVar22 = (int *******)(local_48 + 1);" (assignment_expression "pppppppiVar22 = (int *******)(local_48 + 1)" identifier = (cast_expression "(int *******)(local_48 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(local_48 + 1)" ( (binary_expression "local_48 + 1" identifier + number_literal) )))) ;) (expression_statement "*local_3c = param_3;" (assignment_expression "*local_3c = param_3" (pointer_expression "*local_3c" * identifier) = identifier) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "pppppppiVar23 = pppppppiVar3;" (assignment_expression "pppppppiVar23 = pppppppiVar3" identifier = identifier) ;) (expression_statement "pppppppiVar7 = param_7;" (assignment_expression "pppppppiVar7 = param_7" identifier = identifier) ;) (expression_statement "local_4c = FUN_0001afe8(pppppppiVar12);" (assignment_expression "local_4c = FUN_0001afe8(pppppppiVar12)" identifier = (call_expression "FUN_0001afe8(pppppppiVar12)" identifier (argument_list "(pppppppiVar12)" ( identifier )))) ;) (expression_statement "pppppppiVar28 = param_4;" (assignment_expression "pppppppiVar28 = param_4" identifier = identifier) ;) (if_statement "if (local_4c == 0) {\nLAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);\n        if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }\n        pppppppiVar22 = pppppppiVar12;\n        pppppppiVar7 = pppppppiVar30;\n        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n        pppppppiVar23 = pppppppiVar25;\n        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }\n      }" if (parenthesized_expression "(local_4c == 0)" ( (binary_expression "local_4c == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);\n        if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }\n        pppppppiVar22 = pppppppiVar12;\n        pppppppiVar7 = pppppppiVar30;\n        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n        pppppppiVar23 = pppppppiVar25;\n        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }\n      }" { (labeled_statement "LAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);" statement_identifier : (expression_statement "pppppppiVar25 = (int *******)(local_48 + 1);" (assignment_expression "pppppppiVar25 = (int *******)(local_48 + 1)" identifier = (cast_expression "(int *******)(local_48 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(local_48 + 1)" ( (binary_expression "local_48 + 1" identifier + number_literal) )))) ;)) (if_statement "if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }" if (parenthesized_expression "(local_48[2] != 0)" ( (binary_expression "local_48[2] != 0" (subscript_expression "local_48[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }" { (expression_statement "local_a8 = param_7;" (assignment_expression "local_a8 = param_7" identifier = identifier) ;) (expression_statement "pppppppiVar22 = pppppppiVar25;" (assignment_expression "pppppppiVar22 = pppppppiVar25" identifier = identifier) ;) (expression_statement "pppppppiVar23 = pppppppiVar28;" (assignment_expression "pppppppiVar23 = pppppppiVar28" identifier = identifier) ;) (expression_statement "pppppppiVar7 = pppppppiVar3;" (assignment_expression "pppppppiVar7 = pppppppiVar3" identifier = identifier) ;) (expression_statement "local_4c = FUN_0001c580(param_1);" (assignment_expression "local_4c = FUN_0001c580(param_1)" identifier = (call_expression "FUN_0001c580(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (local_4c != 0) goto LAB_00020920;" if (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 0" identifier != number_literal) )) (goto_statement "goto LAB_00020920;" goto statement_identifier ;)) })) (expression_statement "pppppppiVar22 = pppppppiVar12;" (assignment_expression "pppppppiVar22 = pppppppiVar12" identifier = identifier) ;) (expression_statement "pppppppiVar7 = pppppppiVar30;" (assignment_expression "pppppppiVar7 = pppppppiVar30" identifier = identifier) ;) (expression_statement "unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);" (assignment_expression "unaff_s7 = (int ******)FUN_0001bd4c(&local_4c)" identifier = (cast_expression "(int ******)FUN_0001bd4c(&local_4c)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_0001bd4c(&local_4c)" identifier (argument_list "(&local_4c)" ( (pointer_expression "&local_4c" & identifier) ))))) ;) (expression_statement "pppppppiVar23 = pppppppiVar25;" (assignment_expression "pppppppiVar23 = pppppppiVar25" identifier = identifier) ;) (if_statement "if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }" if (parenthesized_expression "((unaff_s7 != (int ******)0x0) || (local_4c == 0))" ( (binary_expression "(unaff_s7 != (int ******)0x0) || (local_4c == 0)" (parenthesized_expression "(unaff_s7 != (int ******)0x0)" ( (binary_expression "unaff_s7 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) || (parenthesized_expression "(local_4c == 0)" ( (binary_expression "local_4c == 0" identifier == number_literal) ))) )) (compound_statement "{\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }" { (expression_statement "param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;" (assignment_expression "param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7" (subscript_expression "param_1[0x19][(int)pppppppiVar28]" (subscript_expression "param_1[0x19]" identifier [ number_literal ]) [ (cast_expression "(int)pppppppiVar28" ( (type_descriptor "int" primitive_type) ) identifier) ]) = (cast_expression "(int *****)unaff_s7" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (expression_statement "pppppppiVar25 = pppppppiVar28;" (assignment_expression "pppppppiVar25 = pppppppiVar28" identifier = identifier) ;) (goto_statement "goto LAB_00020670;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00020920:\n      (*(code *)PTR_free_0003c320)(local_3c);" statement_identifier : (expression_statement "(*(code *)PTR_free_0003c320)(local_3c);" (call_expression "(*(code *)PTR_free_0003c320)(local_3c)" (parenthesized_expression "(*(code *)PTR_free_0003c320)" ( (pointer_expression "*(code *)PTR_free_0003c320" * (cast_expression "(code *)PTR_free_0003c320" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_3c)" ( identifier ))) ;)) (expression_statement "uVar10 = local_4c;" (assignment_expression "uVar10 = local_4c" identifier = identifier) ;) }) (else_clause "else {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);\n      param_1[10] = (int ******)pppppppiVar28;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\n      if (pppppppiVar28 == param_4) goto LAB_00020b7c;\n      ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;\n      unaff_s7 = (int ******)*ppppppiVar32;\n      pppppppiVar25 = pppppppiVar28;\n      if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }\n      else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }" else (compound_statement "{\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);\n      param_1[10] = (int ******)pppppppiVar28;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\n      if (pppppppiVar28 == param_4) goto LAB_00020b7c;\n      ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;\n      unaff_s7 = (int ******)*ppppppiVar32;\n      pppppppiVar25 = pppppppiVar28;\n      if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }\n      else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }" { (expression_statement "param_1[0x19] = ppppppiVar32;" (assignment_expression "param_1[0x19] = ppppppiVar32" (subscript_expression "param_1[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);" (assignment_expression "pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1)" identifier = (cast_expression "(int *******)((int)pppppppiVar28 + -1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar28 + -1)" ( (binary_expression "(int)pppppppiVar28 + -1" (cast_expression "(int)pppppppiVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "param_1[10] = (int ******)pppppppiVar28;" (assignment_expression "param_1[10] = (int ******)pppppppiVar28" (subscript_expression "param_1[10]" identifier [ number_literal ]) = (cast_expression "(int ******)pppppppiVar28" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "pppppppiVar30 = (int *******)FUN_0001cb50(param_1);" (assignment_expression "pppppppiVar30 = (int *******)FUN_0001cb50(param_1)" identifier = (cast_expression "(int *******)FUN_0001cb50(param_1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_0001cb50(param_1)" identifier (argument_list "(param_1)" ( identifier ))))) ;) (if_statement "if (pppppppiVar28 == param_4) goto LAB_00020b7c;" if (parenthesized_expression "(pppppppiVar28 == param_4)" ( (binary_expression "pppppppiVar28 == param_4" identifier == identifier) )) (goto_statement "goto LAB_00020b7c;" goto statement_identifier ;)) (expression_statement "ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;" (assignment_expression "ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28" identifier = (binary_expression "ppppppiVar32 + (int)pppppppiVar28" identifier + (cast_expression "(int)pppppppiVar28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "unaff_s7 = (int ******)*ppppppiVar32;" (assignment_expression "unaff_s7 = (int ******)*ppppppiVar32" identifier = (cast_expression "(int ******)*ppppppiVar32" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "*ppppppiVar32" * identifier))) ;) (expression_statement "pppppppiVar25 = pppppppiVar28;" (assignment_expression "pppppppiVar25 = pppppppiVar28" identifier = identifier) ;) (if_statement "if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }\n      else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }" if (parenthesized_expression "((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0))" ( (binary_expression "(unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)" (parenthesized_expression "(unaff_s7 == (int ******)0x0)" ( (binary_expression "unaff_s7 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) || (parenthesized_expression "(((uint)unaff_s7[0xd] & 0x2000000) == 0)" ( (binary_expression "((uint)unaff_s7[0xd] & 0x2000000) == 0" (parenthesized_expression "((uint)unaff_s7[0xd] & 0x2000000)" ( (binary_expression "(uint)unaff_s7[0xd] & 0x2000000" (cast_expression "(uint)unaff_s7[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "unaff_s7[0xd]" identifier [ number_literal ])) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }" { (expression_statement "local_48[1] = 0;" (assignment_expression "local_48[1] = 0" (subscript_expression "local_48[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_48[2] = 0;" (assignment_expression "local_48[2] = 0" (subscript_expression "local_48[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_3c = (undefined4 *)0x0;" (assignment_expression "local_3c = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);" statement_identifier : (expression_statement "local_6c = (code *)(puVar2 + -0x34b0);" (assignment_expression "local_6c = (code *)(puVar2 + -0x34b0)" identifier = (cast_expression "(code *)(puVar2 + -0x34b0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x34b0)" ( (binary_expression "puVar2 + -0x34b0" identifier + number_literal) )))) ;)) (expression_statement "puVar1 = local_48 + 1;" (assignment_expression "puVar1 = local_48 + 1" identifier = (binary_expression "local_48 + 1" identifier + number_literal)) ;) (if_statement "if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }" if (parenthesized_expression "(((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e]))" ( (binary_expression "((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])" (parenthesized_expression "((int)pppppppiVar25 < param_6)" ( (binary_expression "(int)pppppppiVar25 < param_6" (cast_expression "(int)pppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) && (parenthesized_expression "(-1 < (int)param_1[0x1e])" ( (binary_expression "-1 < (int)param_1[0x1e]" number_literal < (cast_expression "(int)param_1[0x1e]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x1e]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }" { (expression_statement "ppppppiVar4 = param_1[0x19];" (assignment_expression "ppppppiVar4 = param_1[0x19]" identifier = (subscript_expression "param_1[0x19]" identifier [ number_literal ])) ;) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" identifier = number_literal) ;) (expression_statement "pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);" (assignment_expression "pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018)" identifier = (cast_expression "(code *)(PTR_LAB_0003c1e8 + -0x5018)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0003c1e8 + -0x5018)" ( (binary_expression "PTR_LAB_0003c1e8 + -0x5018" identifier + number_literal) )))) ;) (expression_statement "pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);" (assignment_expression "pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368)" identifier = (cast_expression "(code *)(PTR_LAB_0003c1e8 + -0x3368)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0003c1e8 + -0x3368)" ( (binary_expression "PTR_LAB_0003c1e8 + -0x3368" identifier + number_literal) )))) ;) (expression_statement "pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);" (assignment_expression "pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38)" identifier = (cast_expression "(code *)(PTR_LAB_0003c1e8 + -0x7b38)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0003c1e8 + -0x7b38)" ( (binary_expression "PTR_LAB_0003c1e8 + -0x7b38" identifier + number_literal) )))) ;) (expression_statement "pppppppiVar28 = pppppppiVar25;" (assignment_expression "pppppppiVar28 = pppppppiVar25" identifier = identifier) ;) (expression_statement "unaff_s8 = (int *******)((int)pppppppiVar25 + 1);" (assignment_expression "unaff_s8 = (int *******)((int)pppppppiVar25 + 1)" identifier = (cast_expression "(int *******)((int)pppppppiVar25 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar25 + 1)" ( (binary_expression "(int)pppppppiVar25 + 1" (cast_expression "(int)pppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));" do (compound_statement "{\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          }" { (expression_statement "pppppppiVar25 = unaff_s8;" (assignment_expression "pppppppiVar25 = unaff_s8" identifier = identifier) ;) (expression_statement "local_48[2] = 0;" (assignment_expression "local_48[2] = 0" (subscript_expression "local_48[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_3 = (int *******)((int)pppppppiVar25 + -1);" (assignment_expression "param_3 = (int *******)((int)pppppppiVar25 + -1)" identifier = (cast_expression "(int *******)((int)pppppppiVar25 + -1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar25 + -1)" ( (binary_expression "(int)pppppppiVar25 + -1" (cast_expression "(int)pppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }" if (parenthesized_expression "(ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0)" ( (binary_expression "ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0" (subscript_expression "ppppppiVar4[(int)pppppppiVar25]" identifier [ (cast_expression "(int)pppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier) ]) == (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }" { (expression_statement "uVar10 = local_4c;" (assignment_expression "uVar10 = local_4c" identifier = identifier) ;) (if_statement "if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;" if (parenthesized_expression "(unaff_s7 != (int ******)0x0)" ( (binary_expression "unaff_s7 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_000206f8;" goto statement_identifier ;)) (expression_statement "ppppppiVar4 = param_1[0x16];" (assignment_expression "ppppppiVar4 = param_1[0x16]" identifier = (subscript_expression "param_1[0x16]" identifier [ number_literal ])) ;) }) (else_clause "else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }" else (compound_statement "{\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }" { (expression_statement "pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);" (assignment_expression "pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1)" identifier = (cast_expression "(int *******)(ppppppiVar4[(int)pppppppiVar25] + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(ppppppiVar4[(int)pppppppiVar25] + 1)" ( (binary_expression "ppppppiVar4[(int)pppppppiVar25] + 1" (subscript_expression "ppppppiVar4[(int)pppppppiVar25]" identifier [ (cast_expression "(int)pppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier) ]) + number_literal) )))) ;) (expression_statement "local_4c = FUN_0001aa4c(puVar1);" (assignment_expression "local_4c = FUN_0001aa4c(puVar1)" identifier = (call_expression "FUN_0001aa4c(puVar1)" identifier (argument_list "(puVar1)" ( identifier )))) ;) (expression_statement "unaff_s8 = pppppppiVar25;" (assignment_expression "unaff_s8 = pppppppiVar25" identifier = identifier) ;) (if_statement "if (local_4c != 0) goto LAB_00020920;" if (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 0" identifier != number_literal) )) (goto_statement "goto LAB_00020920;" goto statement_identifier ;)) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (if_statement "if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }" if (parenthesized_expression "(unaff_s7 != (int ******)0x0)" ( (binary_expression "unaff_s7 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }" { (labeled_statement "LAB_000206f8:\n                local_4c = uVar10;" statement_identifier : (expression_statement "local_4c = uVar10;" (assignment_expression "local_4c = uVar10" identifier = identifier) ;)) (expression_statement "unaff_s5 = &local_38;" (assignment_expression "unaff_s5 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (expression_statement "pppppppiVar30 = (int *******)param_1[0x15];" (assignment_expression "pppppppiVar30 = (int *******)param_1[0x15]" identifier = (cast_expression "(int *******)param_1[0x15]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "param_1[0x15]" identifier [ number_literal ]))) ;) (expression_statement "local_38 = (int ******)0x0;" (assignment_expression "local_38 = (int ******)0x0" identifier = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "local_48[0] = 0;" (assignment_expression "local_48[0] = 0" (subscript_expression "local_48[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }" if (parenthesized_expression "(0 < (int)unaff_s7[5])" ( (binary_expression "0 < (int)unaff_s7[5]" number_literal < (cast_expression "(int)unaff_s7[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "unaff_s7[5]" identifier [ number_literal ]))) )) (compound_statement "{\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }" { (expression_statement "ppppppiVar32 = (int ******)0x0;" (assignment_expression "ppppppiVar32 = (int ******)0x0" identifier = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);" (assignment_expression "pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4)" identifier = (cast_expression "(code *)(PTR_LAB_0003c1e8 + -0x3ea4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0003c1e8 + -0x3ea4)" ( (binary_expression "PTR_LAB_0003c1e8 + -0x3ea4" identifier + number_literal) )))) ;) (do_statement "do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);" do (compound_statement "{\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  }" { (expression_statement "pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];" (assignment_expression "pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32]" identifier = (cast_expression "(int *******)unaff_s7[6][(int)ppppppiVar32]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "unaff_s7[6][(int)ppppppiVar32]" (subscript_expression "unaff_s7[6]" identifier [ number_literal ]) [ (cast_expression "(int)ppppppiVar32" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "param_4 = (int *******)((int)pppppppiVar29 * 8);" (assignment_expression "param_4 = (int *******)((int)pppppppiVar29 * 8)" identifier = (cast_expression "(int *******)((int)pppppppiVar29 * 8)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar29 * 8)" ( (binary_expression "(int)pppppppiVar29 * 8" (cast_expression "(int)pppppppiVar29" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;" (assignment_expression "ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2" identifier = (binary_expression "*pppppppiVar30 + (int)pppppppiVar29 * 2" (pointer_expression "*pppppppiVar30" * identifier) + (binary_expression "(int)pppppppiVar29 * 2" (cast_expression "(int)pppppppiVar29" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (if_statement "if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }" if (parenthesized_expression "(((uint)ppppppiVar4[1] & 0x800) != 0)" ( (binary_expression "((uint)ppppppiVar4[1] & 0x800) != 0" (parenthesized_expression "((uint)ppppppiVar4[1] & 0x800)" ( (binary_expression "(uint)ppppppiVar4[1] & 0x800" (cast_expression "(uint)ppppppiVar4[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppiVar4[1]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) (compound_statement "{\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }" { (expression_statement "pppppppiVar23 = pppppppiVar29;" (assignment_expression "pppppppiVar23 = pppppppiVar29" identifier = identifier) ;) (expression_statement "pppppppiVar7 = param_1;" (assignment_expression "pppppppiVar7 = param_1" identifier = identifier) ;) (expression_statement "local_a8 = param_3;" (assignment_expression "local_a8 = param_3" identifier = identifier) ;) (expression_statement "iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);" (assignment_expression "iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20)" identifier = (call_expression "FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20)" identifier (argument_list "(*pppppppiVar30,pppppppiVar30 + 0x20)" ( (pointer_expression "*pppppppiVar30" * identifier) , (binary_expression "pppppppiVar30 + 0x20" identifier + number_literal) )))) ;) (if_statement "if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }" if (parenthesized_expression "(iVar6 < 2)" ( (binary_expression "iVar6 < 2" identifier < number_literal) )) (compound_statement "{\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }" { (expression_statement "unaff_s8 = pppppppiVar25;" (assignment_expression "unaff_s8 = pppppppiVar25" identifier = identifier) ;) (if_statement "if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }" { (expression_statement "ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;" (assignment_expression "ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2" identifier = (binary_expression "*pppppppiVar30 + (int)pppppppiVar29 * 2" (pointer_expression "*pppppppiVar30" * identifier) + (binary_expression "(int)pppppppiVar29 * 2" (cast_expression "(int)pppppppiVar29" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (goto_statement "goto LAB_00020768;" goto statement_identifier ;) })) (goto_statement "goto LAB_00020784;" goto statement_identifier ;) })) (expression_statement "iVar6 = (int)param_3 + iVar6;" (assignment_expression "iVar6 = (int)param_3 + iVar6" identifier = (binary_expression "(int)param_3 + iVar6" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);" (assignment_expression "pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4)" identifier = (cast_expression "(int *******)((int)pppppppiVar29 * 4)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar29 * 4)" ( (binary_expression "(int)pppppppiVar29 * 4" (cast_expression "(int)pppppppiVar29" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "param_4 = (int *******)(iVar6 * 4);" (assignment_expression "param_4 = (int *******)(iVar6 * 4)" identifier = (cast_expression "(int *******)(iVar6 * 4)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(iVar6 * 4)" ( (binary_expression "iVar6 * 4" identifier * number_literal) )))) ;) (expression_statement "unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];" (assignment_expression "unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29]" identifier = (cast_expression "(int *******)pppppppiVar30[3][(int)pppppppiVar29]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar30[3][(int)pppppppiVar29]" (subscript_expression "pppppppiVar30[3]" identifier [ number_literal ]) [ (cast_expression "(int)pppppppiVar29" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (if_statement "if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }" if (parenthesized_expression "(param_1[0x19][iVar6] == (int *****)0x0)" ( (binary_expression "param_1[0x19][iVar6] == (int *****)0x0" (subscript_expression "param_1[0x19][iVar6]" (subscript_expression "param_1[0x19]" identifier [ number_literal ]) [ identifier ]) == (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }" { (labeled_statement "LAB_000209e0:\n                        pppppppiVar22 = unaff_s8;" statement_identifier : (expression_statement "pppppppiVar22 = unaff_s8;" (assignment_expression "pppppppiVar22 = unaff_s8" identifier = identifier) ;)) (expression_statement "iVar31 = (*pcVar17)(unaff_s5);" (assignment_expression "iVar31 = (*pcVar17)(unaff_s5)" identifier = (call_expression "(*pcVar17)(unaff_s5)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(unaff_s5)" ( identifier )))) ;) (if_statement "if (iVar31 == 0) goto LAB_00020904;" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00020904;" goto statement_identifier ;)) (expression_statement "pppppppiVar7 = (int *******)param_1[0x19];" (assignment_expression "pppppppiVar7 = (int *******)param_1[0x19]" identifier = (cast_expression "(int *******)param_1[0x19]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "param_1[0x19]" identifier [ number_literal ]))) ;) (expression_statement "unaff_s8 = pppppppiVar7 + iVar6;" (assignment_expression "unaff_s8 = pppppppiVar7 + iVar6" identifier = (binary_expression "pppppppiVar7 + iVar6" identifier + identifier)) ;) (expression_statement "pppppppiVar22 = pppppppiVar30;" (assignment_expression "pppppppiVar22 = pppppppiVar30" identifier = identifier) ;) (expression_statement "pppppppiVar23 = unaff_s5;" (assignment_expression "pppppppiVar23 = unaff_s5" identifier = identifier) ;) (expression_statement "ppppppiVar4 = (int ******)(*pcVar5)(local_48);" (assignment_expression "ppppppiVar4 = (int ******)(*pcVar5)(local_48)" identifier = (cast_expression "(int ******)(*pcVar5)(local_48)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(*pcVar5)(local_48)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(local_48)" ( identifier ))))) ;) (expression_statement "ppppppiVar18 = param_1[0x19];" (assignment_expression "ppppppiVar18 = param_1[0x19]" identifier = (subscript_expression "param_1[0x19]" identifier [ number_literal ])) ;) (expression_statement "*unaff_s8 = ppppppiVar4;" (assignment_expression "*unaff_s8 = ppppppiVar4" (pointer_expression "*unaff_s8" * identifier) = identifier) ;) (expression_statement "param_4 = (int *******)(ppppppiVar18 + iVar6);" (assignment_expression "param_4 = (int *******)(ppppppiVar18 + iVar6)" identifier = (cast_expression "(int *******)(ppppppiVar18 + iVar6)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(ppppppiVar18 + iVar6)" ( (binary_expression "ppppppiVar18 + iVar6" identifier + identifier) )))) ;) (if_statement "if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;" if (parenthesized_expression "((*param_4 != (int ******)0x0) || (local_48[0] == 0))" ( (binary_expression "(*param_4 != (int ******)0x0) || (local_48[0] == 0)" (parenthesized_expression "(*param_4 != (int ******)0x0)" ( (binary_expression "*param_4 != (int ******)0x0" (pointer_expression "*param_4" * identifier) != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) || (parenthesized_expression "(local_48[0] == 0)" ( (binary_expression "local_48[0] == 0" (subscript_expression "local_48[0]" identifier [ number_literal ]) == number_literal) ))) )) (goto_statement "goto LAB_00020784;" goto statement_identifier ;)) }) (else_clause "else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }" else (compound_statement "{\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }" { (expression_statement "pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);" (assignment_expression "pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1)" identifier = (cast_expression "(int *******)(param_1[0x19][iVar6] + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(param_1[0x19][iVar6] + 1)" ( (binary_expression "param_1[0x19][iVar6] + 1" (subscript_expression "param_1[0x19][iVar6]" (subscript_expression "param_1[0x19]" identifier [ number_literal ]) [ identifier ]) + number_literal) )))) ;) (expression_statement "local_48[0] = FUN_0001aa4c(unaff_s5);" (assignment_expression "local_48[0] = FUN_0001aa4c(unaff_s5)" (subscript_expression "local_48[0]" identifier [ number_literal ]) = (call_expression "FUN_0001aa4c(unaff_s5)" identifier (argument_list "(unaff_s5)" ( identifier )))) ;) (if_statement "if (local_48[0] == 0) goto LAB_000209e0;" if (parenthesized_expression "(local_48[0] == 0)" ( (binary_expression "local_48[0] == 0" (subscript_expression "local_48[0]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_000209e0;" goto statement_identifier ;)) }))) (expression_statement "(*(code *)PTR_free_0003c320)(local_30);" (call_expression "(*(code *)PTR_free_0003c320)(local_30)" (parenthesized_expression "(*(code *)PTR_free_0003c320)" ( (pointer_expression "*(code *)PTR_free_0003c320" * (cast_expression "(code *)PTR_free_0003c320" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_30)" ( identifier ))) ;) (expression_statement "local_4c = local_48[0];" (assignment_expression "local_4c = local_48[0]" identifier = (subscript_expression "local_48[0]" identifier [ number_literal ])) ;) (expression_statement "unaff_s8 = pppppppiVar25;" (assignment_expression "unaff_s8 = pppppppiVar25" identifier = identifier) ;) (if_statement "if (local_48[0] == 0) goto LAB_000207d0;" if (parenthesized_expression "(local_48[0] == 0)" ( (binary_expression "local_48[0] == 0" (subscript_expression "local_48[0]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_000207d0;" goto statement_identifier ;)) (goto_statement "goto LAB_00020920;" goto statement_identifier ;) })) (labeled_statement "LAB_00020768:\n                    pppppppiVar23 = param_3;" statement_identifier : (expression_statement "pppppppiVar23 = param_3;" (assignment_expression "pppppppiVar23 = param_3" identifier = identifier) ;)) (expression_statement "iVar6 = (*pcVar16)(param_1,ppppppiVar4);" (assignment_expression "iVar6 = (*pcVar16)(param_1,ppppppiVar4)" identifier = (call_expression "(*pcVar16)(param_1,ppppppiVar4)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(param_1,ppppppiVar4)" ( identifier , identifier )))) ;) (expression_statement "unaff_s8 = pppppppiVar25;" (assignment_expression "unaff_s8 = pppppppiVar25" identifier = identifier) ;) (if_statement "if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }" { (labeled_statement "LAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);" statement_identifier : (expression_statement "pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);" (assignment_expression "pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29)" identifier = (cast_expression "(int *******)(pppppppiVar30[3] + (int)pppppppiVar29)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppppiVar30[3] + (int)pppppppiVar29)" ( (binary_expression "pppppppiVar30[3] + (int)pppppppiVar29" (subscript_expression "pppppppiVar30[3]" identifier [ number_literal ]) + (cast_expression "(int)pppppppiVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "pppppppiVar22 = (int *******)*pppppppiVar28;" (assignment_expression "pppppppiVar22 = (int *******)*pppppppiVar28" identifier = (cast_expression "(int *******)*pppppppiVar28" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppiVar28" * identifier))) ;) (expression_statement "iVar6 = (*pcVar17)(puVar1);" (assignment_expression "iVar6 = (*pcVar17)(puVar1)" identifier = (call_expression "(*pcVar17)(puVar1)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(puVar1)" ( identifier )))) ;) (if_statement "if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }" { (labeled_statement "LAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);" statement_identifier : (expression_statement "(*(code *)PTR_free_0003c320)(local_30);" (call_expression "(*(code *)PTR_free_0003c320)(local_30)" (parenthesized_expression "(*(code *)PTR_free_0003c320)" ( (pointer_expression "*(code *)PTR_free_0003c320" * (cast_expression "(code *)PTR_free_0003c320" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_30)" ( identifier ))) ;)) (expression_statement "local_4c = 0xc;" (assignment_expression "local_4c = 0xc" identifier = number_literal) ;) (goto_statement "goto LAB_00020920;" goto statement_identifier ;) })) })) (expression_statement "ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);" (assignment_expression "ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1)" identifier = (cast_expression "(int ******)((int)ppppppiVar32 + 1)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)ppppppiVar32 + 1)" ( (binary_expression "(int)ppppppiVar32 + 1" (cast_expression "(int)ppppppiVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int)ppppppiVar32 < (int)unaff_s7[5])" ( (binary_expression "(int)ppppppiVar32 < (int)unaff_s7[5]" (cast_expression "(int)ppppppiVar32" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)unaff_s7[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "unaff_s7[5]" identifier [ number_literal ]))) )) ;) })) (expression_statement "(*(code *)PTR_free_0003c320)(local_30);" (call_expression "(*(code *)PTR_free_0003c320)(local_30)" (parenthesized_expression "(*(code *)PTR_free_0003c320)" ( (pointer_expression "*(code *)PTR_free_0003c320" * (cast_expression "(code *)PTR_free_0003c320" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_30)" ( identifier ))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) })) (labeled_statement "LAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }" statement_identifier : (if_statement "if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }" if (parenthesized_expression "(local_48[2] != 0)" ( (binary_expression "local_48[2] != 0" (subscript_expression "local_48[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }" { (expression_statement "pppppppiVar22 = (int *******)puVar1;" (assignment_expression "pppppppiVar22 = (int *******)puVar1" identifier = (cast_expression "(int *******)puVar1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) identifier)) ;) (expression_statement "pppppppiVar23 = pppppppiVar3;" (assignment_expression "pppppppiVar23 = pppppppiVar3" identifier = identifier) ;) (expression_statement "pppppppiVar7 = param_7;" (assignment_expression "pppppppiVar7 = param_7" identifier = identifier) ;) (expression_statement "local_4c = (*pcVar15)(pppppppiVar12);" (assignment_expression "local_4c = (*pcVar15)(pppppppiVar12)" identifier = (call_expression "(*pcVar15)(pppppppiVar12)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(pppppppiVar12)" ( identifier )))) ;) (expression_statement "pppppppiVar28 = pppppppiVar25;" (assignment_expression "pppppppiVar28 = pppppppiVar25" identifier = identifier) ;) (expression_statement "unaff_s8 = pppppppiVar25;" (assignment_expression "unaff_s8 = pppppppiVar25" identifier = identifier) ;) (if_statement "if (local_4c != 0) goto LAB_00020920;" if (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 0" identifier != number_literal) )) (goto_statement "goto LAB_00020920;" goto statement_identifier ;)) (expression_statement "local_a8 = param_7;" (assignment_expression "local_a8 = param_7" identifier = identifier) ;) (expression_statement "pppppppiVar22 = (int *******)puVar1;" (assignment_expression "pppppppiVar22 = (int *******)puVar1" identifier = (cast_expression "(int *******)puVar1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) identifier)) ;) (expression_statement "pppppppiVar23 = pppppppiVar25;" (assignment_expression "pppppppiVar23 = pppppppiVar25" identifier = identifier) ;) (expression_statement "pppppppiVar7 = pppppppiVar3;" (assignment_expression "pppppppiVar7 = pppppppiVar3" identifier = identifier) ;) (expression_statement "local_4c = FUN_0001c580(param_1);" (assignment_expression "local_4c = FUN_0001c580(param_1)" identifier = (call_expression "FUN_0001c580(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (local_4c != 0) goto LAB_00020920;" if (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 0" identifier != number_literal) )) (goto_statement "goto LAB_00020920;" goto statement_identifier ;)) }))) (expression_statement "ppppppiVar4 = param_1[0x16];" (assignment_expression "ppppppiVar4 = param_1[0x16]" identifier = (subscript_expression "param_1[0x16]" identifier [ number_literal ])) ;) }))) (expression_statement "pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);" (assignment_expression "pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4)" identifier = (cast_expression "(int *******)(*local_6c)(param_1,param_3,ppppppiVar4)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*local_6c)(param_1,param_3,ppppppiVar4)" (parenthesized_expression "(*local_6c)" ( (pointer_expression "*local_6c" * identifier) )) (argument_list "(param_1,param_3,ppppppiVar4)" ( identifier , identifier , identifier ))))) ;) (expression_statement "pppppppiVar22 = pppppppiVar12;" (assignment_expression "pppppppiVar22 = pppppppiVar12" identifier = identifier) ;) (expression_statement "pppppppiVar23 = (int *******)puVar1;" (assignment_expression "pppppppiVar23 = (int *******)puVar1" identifier = (cast_expression "(int *******)puVar1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) identifier)) ;) (expression_statement "unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);" (assignment_expression "unaff_s7 = (int ******)FUN_0001bd4c(&local_4c)" identifier = (cast_expression "(int ******)FUN_0001bd4c(&local_4c)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_0001bd4c(&local_4c)" identifier (argument_list "(&local_4c)" ( (pointer_expression "&local_4c" & identifier) ))))) ;) (if_statement "if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }" if (parenthesized_expression "(unaff_s7 == (int ******)0x0)" ( (binary_expression "unaff_s7 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }" { (expression_statement "pppppppiVar28 = pppppppiVar25;" (assignment_expression "pppppppiVar28 = pppppppiVar25" identifier = identifier) ;) (expression_statement "unaff_s8 = pppppppiVar25;" (assignment_expression "unaff_s8 = pppppppiVar25" identifier = identifier) ;) (if_statement "if (local_4c != 0) goto LAB_00020920;" if (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 0" identifier != number_literal) )) (goto_statement "goto LAB_00020920;" goto statement_identifier ;)) (expression_statement "ppppppiVar4 = param_1[0x19];" (assignment_expression "ppppppiVar4 = param_1[0x19]" identifier = (subscript_expression "param_1[0x19]" identifier [ number_literal ])) ;) (expression_statement "local_8c = local_8c + 1;" (assignment_expression "local_8c = local_8c + 1" identifier = (binary_expression "local_8c + 1" identifier + number_literal)) ;) (expression_statement "unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);" (assignment_expression "unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25)" identifier = (cast_expression "(int *******)(ppppppiVar4 + (int)pppppppiVar25)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(ppppppiVar4 + (int)pppppppiVar25)" ( (binary_expression "ppppppiVar4 + (int)pppppppiVar25" identifier + (cast_expression "(int)pppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*unaff_s5 = (int ******)0x0;" (assignment_expression "*unaff_s5 = (int ******)0x0" (pointer_expression "*unaff_s5" * identifier) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) }) (else_clause "else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }" else (compound_statement "{\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }" { (expression_statement "ppppppiVar4 = param_1[0x19];" (assignment_expression "ppppppiVar4 = param_1[0x19]" identifier = (subscript_expression "param_1[0x19]" identifier [ number_literal ])) ;) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" identifier = number_literal) ;) (expression_statement "unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);" (assignment_expression "unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25)" identifier = (cast_expression "(int *******)(ppppppiVar4 + (int)pppppppiVar25)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(ppppppiVar4 + (int)pppppppiVar25)" ( (binary_expression "ppppppiVar4 + (int)pppppppiVar25" identifier + (cast_expression "(int)pppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*unaff_s5 = unaff_s7;" (assignment_expression "*unaff_s5 = unaff_s7" (pointer_expression "*unaff_s5" * identifier) = identifier) ;) }))) (expression_statement "unaff_s8 = pppppppiVar25;" (assignment_expression "unaff_s8 = pppppppiVar25" identifier = identifier) ;) }) while (parenthesized_expression "(((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]))" ( (binary_expression "((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e])" (parenthesized_expression "((int)pppppppiVar25 < param_6)" ( (binary_expression "(int)pppppppiVar25 < param_6" (cast_expression "(int)pppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) && (parenthesized_expression "(unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e])" ( (comma_expression "unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]" (assignment_expression "unaff_s8 = (int *******)((int)pppppppiVar25 + 1)" identifier = (cast_expression "(int *******)((int)pppppppiVar25 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar25 + 1)" ( (binary_expression "(int)pppppppiVar25 + 1" (cast_expression "(int)pppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]" (assignment_expression "pppppppiVar28 = pppppppiVar25" identifier = identifier) , (binary_expression "local_8c <= (int)param_1[0x1e]" identifier <= (cast_expression "(int)param_1[0x1e]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x1e]" identifier [ number_literal ]))))) ))) )) ;) })) (expression_statement "(*(code *)PTR_free_0003c320)(local_3c);" (call_expression "(*(code *)PTR_free_0003c320)(local_3c)" (parenthesized_expression "(*(code *)PTR_free_0003c320)" ( (pointer_expression "*(code *)PTR_free_0003c320" * (cast_expression "(code *)PTR_free_0003c320" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_3c)" ( identifier ))) ;) (expression_statement "pppppiVar8 = param_1[0x19][param_6];" (assignment_expression "pppppiVar8 = param_1[0x19][param_6]" identifier = (subscript_expression "param_1[0x19][param_6]" (subscript_expression "param_1[0x19]" identifier [ number_literal ]) [ identifier ])) ;) (expression_statement "pppppppiVar28 = pppppppiVar25;" (assignment_expression "pppppppiVar28 = pppppppiVar25" identifier = identifier) ;) (if_statement "if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }" if (parenthesized_expression "(pppppiVar8 == (int *****)0x0)" ( (binary_expression "pppppiVar8 == (int *****)0x0" identifier == (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }" { (expression_statement "*param_2 = (int ******)pppppppiVar25;" (assignment_expression "*param_2 = (int ******)pppppppiVar25" (pointer_expression "*param_2" * identifier) = (cast_expression "(int ******)pppppppiVar25" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "param_1[0x19] = ppppppiVar13;" (assignment_expression "param_1[0x19] = ppppppiVar13" (subscript_expression "param_1[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[10] = ppppppiVar14;" (assignment_expression "param_1[10] = ppppppiVar14" (subscript_expression "param_1[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }" else (compound_statement "{\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }" { (expression_statement "pppppppiVar22 = (int *******)(pppppiVar8 + 3);" (assignment_expression "pppppppiVar22 = (int *******)(pppppiVar8 + 3)" identifier = (cast_expression "(int *******)(pppppiVar8 + 3)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppiVar8 + 3)" ( (binary_expression "pppppiVar8 + 3" identifier + number_literal) )))) ;) (expression_statement "*param_2 = (int ******)pppppppiVar25;" (assignment_expression "*param_2 = (int ******)pppppppiVar25" (pointer_expression "*param_2" * identifier) = (cast_expression "(int ******)pppppppiVar25" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "param_1[10] = ppppppiVar14;" (assignment_expression "param_1[10] = ppppppiVar14" (subscript_expression "param_1[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppiVar19 = pppppiVar8[2];" (assignment_expression "ppppiVar19 = pppppiVar8[2]" identifier = (subscript_expression "pppppiVar8[2]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x19] = ppppppiVar13;" (assignment_expression "param_1[0x19] = ppppppiVar13" (subscript_expression "param_1[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar6 = FUN_0001a2d0(ppppiVar19);" (assignment_expression "iVar6 = FUN_0001a2d0(ppppiVar19)" identifier = (call_expression "FUN_0001a2d0(ppppiVar19)" identifier (argument_list "(ppppiVar19)" ( identifier )))) ;) (expression_statement "uVar10 = (uint)(iVar6 == 0);" (assignment_expression "uVar10 = (uint)(iVar6 == 0)" identifier = (call_expression "(uint)(iVar6 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )))) ;) (expression_statement "pppppppiVar23 = param_5;" (assignment_expression "pppppppiVar23 = param_5" identifier = identifier) ;) }))) }) (else_clause "else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }" else (compound_statement "{\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }" { (expression_statement "pppppppiVar22 = (int *******)(unaff_s7 + 1);" (assignment_expression "pppppppiVar22 = (int *******)(unaff_s7 + 1)" identifier = (cast_expression "(int *******)(unaff_s7 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(unaff_s7 + 1)" ( (binary_expression "unaff_s7 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar10 = FUN_0001ba80(local_48 + 1);" (assignment_expression "uVar10 = FUN_0001ba80(local_48 + 1)" identifier = (call_expression "FUN_0001ba80(local_48 + 1)" identifier (argument_list "(local_48 + 1)" ( (binary_expression "local_48 + 1" identifier + number_literal) )))) ;) (expression_statement "local_4c = uVar10;" (assignment_expression "local_4c = uVar10" identifier = identifier) ;) (if_statement "if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }" { (if_statement "if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;" if (parenthesized_expression "(((uint)unaff_s7[0xd] & 0x2000000) == 0)" ( (binary_expression "((uint)unaff_s7[0xd] & 0x2000000) == 0" (parenthesized_expression "((uint)unaff_s7[0xd] & 0x2000000)" ( (binary_expression "(uint)unaff_s7[0xd] & 0x2000000" (cast_expression "(uint)unaff_s7[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "unaff_s7[0xd]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00020670;" goto statement_identifier ;)) (goto_statement "goto LAB_00020ab8;" goto statement_identifier ;) })) }))) }))) }) (else_clause "else {\n    pppppppiVar28 = (int *******)((int)pppppppiVar23 + 1);\n    ppppppiVar32 = (int ******)((int)pppppppiVar30 + (int)pppppppiVar28);\n    if (((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&\n       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)) {\n      pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);\n      ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);\n      puVar2 = PTR_memset_0003c290;\n      if (ppppppiVar13 != (int ******)0x0) {\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }\n    }\nLAB_00020c64:\n    uVar10 = 0xc;\n  }" else (compound_statement "{\n    pppppppiVar28 = (int *******)((int)pppppppiVar23 + 1);\n    ppppppiVar32 = (int ******)((int)pppppppiVar30 + (int)pppppppiVar28);\n    if (((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&\n       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)) {\n      pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);\n      ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);\n      puVar2 = PTR_memset_0003c290;\n      if (ppppppiVar13 != (int ******)0x0) {\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }\n    }\nLAB_00020c64:\n    uVar10 = 0xc;\n  }" { (expression_statement "pppppppiVar28 = (int *******)((int)pppppppiVar23 + 1);" (assignment_expression "pppppppiVar28 = (int *******)((int)pppppppiVar23 + 1)" identifier = (cast_expression "(int *******)((int)pppppppiVar23 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar23 + 1)" ( (binary_expression "(int)pppppppiVar23 + 1" (cast_expression "(int)pppppppiVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ppppppiVar32 = (int ******)((int)pppppppiVar30 + (int)pppppppiVar28);" (assignment_expression "ppppppiVar32 = (int ******)((int)pppppppiVar30 + (int)pppppppiVar28)" identifier = (cast_expression "(int ******)((int)pppppppiVar30 + (int)pppppppiVar28)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)pppppppiVar30 + (int)pppppppiVar28)" ( (binary_expression "(int)pppppppiVar30 + (int)pppppppiVar28" (cast_expression "(int)pppppppiVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppiVar28" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&\n       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)) {\n      pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);\n      ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);\n      puVar2 = PTR_memset_0003c290;\n      if (ppppppiVar13 != (int ******)0x0) {\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }\n    }" if (parenthesized_expression "(((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&\n       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000))" ( (binary_expression "((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&\n       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)" (parenthesized_expression "((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30)" ( (binary_expression "(int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30" (cast_expression "(int)pppppppiVar28" ( (type_descriptor "int" primitive_type) ) identifier) <= (binary_expression "0x7fffffff - (int)pppppppiVar30" number_literal - (cast_expression "(int)pppppppiVar30" ( (type_descriptor "int" primitive_type) ) identifier))) )) && (parenthesized_expression "(unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)" ( (comma_expression "unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000" (assignment_expression "unaff_s5 = param_2" identifier = identifier) , (binary_expression "ppppppiVar32 < (int ******)0x40000000" identifier < (cast_expression "(int ******)0x40000000" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal))) ))) )) (compound_statement "{\n      pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);\n      ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);\n      puVar2 = PTR_memset_0003c290;\n      if (ppppppiVar13 != (int ******)0x0) {\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }\n    }" { (expression_statement "pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);" (assignment_expression "pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4)" identifier = (cast_expression "(int *******)((int)ppppppiVar32 * 4)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)ppppppiVar32 * 4)" ( (binary_expression "(int)ppppppiVar32 * 4" (cast_expression "(int)ppppppiVar32" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);" (assignment_expression "ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2])" identifier = (cast_expression "(int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2])" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(*(code *)PTR_realloc_0003c2b8)(param_2[2])" (parenthesized_expression "(*(code *)PTR_realloc_0003c2b8)" ( (pointer_expression "*(code *)PTR_realloc_0003c2b8" * (cast_expression "(code *)PTR_realloc_0003c2b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2[2])" ( (subscript_expression "param_2[2]" identifier [ number_literal ]) ))))) ;) (expression_statement "puVar2 = PTR_memset_0003c290;" (assignment_expression "puVar2 = PTR_memset_0003c290" identifier = identifier) ;) (if_statement "if (ppppppiVar13 != (int ******)0x0) {\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }" if (parenthesized_expression "(ppppppiVar13 != (int ******)0x0)" ( (binary_expression "ppppppiVar13 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }" { (expression_statement "param_2[2] = ppppppiVar13;" (assignment_expression "param_2[2] = ppppppiVar13" (subscript_expression "param_2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[1] = ppppppiVar32;" (assignment_expression "param_2[1] = ppppppiVar32" (subscript_expression "param_2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);" (call_expression "(*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4)" ( (binary_expression "ppppppiVar13 + (int)pppppppiVar30" identifier + (cast_expression "(int)pppppppiVar30" ( (type_descriptor "int" primitive_type) ) identifier)) , number_literal , (binary_expression "(int)pppppppiVar28 * 4" (cast_expression "(int)pppppppiVar28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) ;) (goto_statement "goto LAB_000205e8;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00020c64:\n    uVar10 = 0xc;" statement_identifier : (expression_statement "uVar10 = 0xc;" (assignment_expression "uVar10 = 0xc" identifier = number_literal) ;)) }))) (if_statement "if (local_2c == *(undefined4 **)puVar35) {\n    return uVar10;\n  }" if (parenthesized_expression "(local_2c == *(undefined4 **)puVar35)" ( (binary_expression "local_2c == *(undefined4 **)puVar35" identifier == (pointer_expression "*(undefined4 **)puVar35" * (cast_expression "(undefined4 **)puVar35" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return uVar10;\n  }" { (return_statement "return uVar10;" return identifier ;) })) (expression_statement "pcVar15 = FUN_00020ca0;" (assignment_expression "pcVar15 = FUN_00020ca0" identifier = identifier) ;) (expression_statement "puVar21 = local_2c;" (assignment_expression "puVar21 = local_2c" identifier = identifier) ;) (expression_statement "puVar35 = PTR___stack_chk_fail_0003c2f4;" (assignment_expression "puVar35 = PTR___stack_chk_fail_0003c2f4" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0003c2f4)();" (call_expression "(*(code *)PTR___stack_chk_fail_0003c2f4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0003c2f4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0003c2f4" * (cast_expression "(code *)PTR___stack_chk_fail_0003c2f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "appppppiStack_138[0] = (int ******)(puVar35 + 0x23430);" (assignment_expression "appppppiStack_138[0] = (int ******)(puVar35 + 0x23430)" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) = (cast_expression "(int ******)(puVar35 + 0x23430)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar35 + 0x23430)" ( (binary_expression "puVar35 + 0x23430" identifier + number_literal) )))) ;) (expression_statement "puVar37 = auStack_150;" (assignment_expression "puVar37 = auStack_150" identifier = identifier) ;) (expression_statement "puVar38 = auStack_150;" (assignment_expression "puVar38 = auStack_150" identifier = identifier) ;) (expression_statement "piStack_12c = *(int **)(puVar35 + 0x1b674);" (assignment_expression "piStack_12c = *(int **)(puVar35 + 0x1b674)" identifier = (pointer_expression "*(int **)(puVar35 + 0x1b674)" * (cast_expression "(int **)(puVar35 + 0x1b674)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + 0x1b674)" ( (binary_expression "puVar35 + 0x1b674" identifier + number_literal) ))))) ;) (expression_statement "uStack_ec = 2;" (assignment_expression "uStack_ec = 2" identifier = number_literal) ;) (expression_statement "piStack_f0 = (int *)0x0;" (assignment_expression "piStack_f0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iStack_e8 = 0;" (assignment_expression "iStack_e8 = 0" identifier = number_literal) ;) (expression_statement "iStack_e4 = *piStack_12c;" (assignment_expression "iStack_e4 = *piStack_12c" identifier = (pointer_expression "*piStack_12c" * identifier)) ;) (expression_statement "piVar34 = (int *)*puVar21;" (assignment_expression "piVar34 = (int *)*puVar21" identifier = (cast_expression "(int *)*puVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ;) (expression_statement "pppppppiVar3 = pppppppiVar22;" (assignment_expression "pppppppiVar3 = pppppppiVar22" identifier = identifier) ;) (expression_statement "pppppppiVar12 = pppppppiVar23;" (assignment_expression "pppppppiVar12 = pppppppiVar23" identifier = identifier) ;) (expression_statement "pppppppiVar25 = pppppppiVar7;" (assignment_expression "pppppppiVar25 = pppppppiVar7" identifier = identifier) ;) (expression_statement "pppppppiStack_e0 = pppppppiVar28;" (assignment_expression "pppppppiStack_e0 = pppppppiVar28" identifier = identifier) ;) (expression_statement "pppppppiStack_dc = param_4;" (assignment_expression "pppppppiStack_dc = param_4" identifier = identifier) ;) (expression_statement "pppppppiStack_d8 = pppppppiVar30;" (assignment_expression "pppppppiStack_d8 = pppppppiVar30" identifier = identifier) ;) (expression_statement "pppppppiStack_d4 = param_3;" (assignment_expression "pppppppiStack_d4 = param_3" identifier = identifier) ;) (expression_statement "ppppppiStack_d0 = ppppppiVar32;" (assignment_expression "ppppppiStack_d0 = ppppppiVar32" identifier = identifier) ;) (expression_statement "pppppppiStack_cc = unaff_s5;" (assignment_expression "pppppppiStack_cc = unaff_s5" identifier = identifier) ;) (expression_statement "pppppppiStack_c8 = param_1;" (assignment_expression "pppppppiStack_c8 = param_1" identifier = identifier) ;) (expression_statement "ppppppiStack_c4 = unaff_s7;" (assignment_expression "ppppppiStack_c4 = unaff_s7" identifier = identifier) ;) (expression_statement "pppppppiStack_c0 = unaff_s8;" (assignment_expression "pppppppiStack_c0 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_bc = pcVar15;" (assignment_expression "pcStack_bc = pcVar15" identifier = identifier) ;) (if_statement "if ((char)local_a8 == '\0') {\n    pppppppiVar28 = (int *******)piVar34[0x12];\n    ppiVar33 = (int **)0x0;\n    if ((uint)((int)pppppppiVar23 << 3) < 0xfc0) goto LAB_00020d5c;\nLAB_00021488:\n    pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n    ppppppiStack_f4 = (int ******)0x0;\n    uStack_f8 = 0;\n    ppppppiStack_fc = (int ******)0x0;\n    param_3 = &ppppppiStack_fc;\n    pppppppiStack_124 = (int *******)(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c);\n    iStack_128 = 1;\n    if (pppppppiStack_124 != (int *******)0x0) goto LAB_00020d6c;\n    puVar37 = auStack_150;\n    if (ppiVar33 == (int **)0x0) {\n      uVar10 = 0xc;\n      goto LAB_00020f18;\n    }\nLAB_0002112c:\n    param_3 = &ppppppiStack_fc;\n    FUN_0001ec78(ppiVar33);\n    puVar39 = puVar37;\n  }\n  else {\n    ppiVar33 = &piStack_f0;\n    iStack_e8 = (**(code **)(puVar35 + 0x1b614))(0x30);\n    puVar39 = auStack_150;\n    if (iStack_e8 != 0) {\n      pppppppiVar28 = (int *******)piVar34[0x12];\n      if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n      ppppppiStack_f4 = (int ******)0x0;\n      uStack_f8 = 0;\n      ppppppiStack_fc = (int ******)0x0;\n      puVar37 = auStack_150 + (int)pppppppiVar23 * -8;\n      iStack_128 = 0;\n      pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;\nLAB_00020d6c:\n      param_3 = &ppppppiStack_fc;\n      pppppppiVar3 = pppppppiVar7;\n      pppppppiVar12 = pppppppiStack_11c;\n      (*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);\n      pppppppiStack_100 = (int *******)*pppppppiVar7;\n      ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);\n      ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);\n      ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);\nLAB_00020db0:\n      pppppppiVar29 = (int *******)pppppppiVar7[1];\n      ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n      ppppppiVar32 = appppppiStack_138[0];\n      puVar38 = puVar37;\n      if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }\n      pppppppiVar25 = pppppppiStack_100;\n      (*(code *)ppppiVar19)(ppppppiStack_f4);\n      if (iStack_128 == 0) {\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }\n      else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      FUN_0001ec78(ppiVar33);\nLAB_00020f14:\n      uVar10 = 0;\n      goto LAB_00020f18;\n    }\n  }" if (parenthesized_expression "((char)local_a8 == '\0')" ( (binary_expression "(char)local_a8 == '\0'" (cast_expression "(char)local_a8" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pppppppiVar28 = (int *******)piVar34[0x12];\n    ppiVar33 = (int **)0x0;\n    if ((uint)((int)pppppppiVar23 << 3) < 0xfc0) goto LAB_00020d5c;\nLAB_00021488:\n    pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n    ppppppiStack_f4 = (int ******)0x0;\n    uStack_f8 = 0;\n    ppppppiStack_fc = (int ******)0x0;\n    param_3 = &ppppppiStack_fc;\n    pppppppiStack_124 = (int *******)(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c);\n    iStack_128 = 1;\n    if (pppppppiStack_124 != (int *******)0x0) goto LAB_00020d6c;\n    puVar37 = auStack_150;\n    if (ppiVar33 == (int **)0x0) {\n      uVar10 = 0xc;\n      goto LAB_00020f18;\n    }\nLAB_0002112c:\n    param_3 = &ppppppiStack_fc;\n    FUN_0001ec78(ppiVar33);\n    puVar39 = puVar37;\n  }" { (expression_statement "pppppppiVar28 = (int *******)piVar34[0x12];" (assignment_expression "pppppppiVar28 = (int *******)piVar34[0x12]" identifier = (cast_expression "(int *******)piVar34[0x12]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "piVar34[0x12]" identifier [ number_literal ]))) ;) (expression_statement "ppiVar33 = (int **)0x0;" (assignment_expression "ppiVar33 = (int **)0x0" identifier = (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if ((uint)((int)pppppppiVar23 << 3) < 0xfc0) goto LAB_00020d5c;" if (parenthesized_expression "((uint)((int)pppppppiVar23 << 3) < 0xfc0)" ( (binary_expression "(uint)((int)pppppppiVar23 << 3) < 0xfc0" (call_expression "(uint)((int)pppppppiVar23 << 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pppppppiVar23 << 3)" ( (binary_expression "(int)pppppppiVar23 << 3" (cast_expression "(int)pppppppiVar23" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) < number_literal) )) (goto_statement "goto LAB_00020d5c;" goto statement_identifier ;)) (labeled_statement "LAB_00021488:\n    pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);" statement_identifier : (expression_statement "pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);" (assignment_expression "pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3)" identifier = (cast_expression "(int *******)((int)pppppppiVar23 << 3)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar23 << 3)" ( (binary_expression "(int)pppppppiVar23 << 3" (cast_expression "(int)pppppppiVar23" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;)) (expression_statement "ppppppiStack_f4 = (int ******)0x0;" (assignment_expression "ppppppiStack_f4 = (int ******)0x0" identifier = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "uStack_f8 = 0;" (assignment_expression "uStack_f8 = 0" identifier = number_literal) ;) (expression_statement "ppppppiStack_fc = (int ******)0x0;" (assignment_expression "ppppppiStack_fc = (int ******)0x0" identifier = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "param_3 = &ppppppiStack_fc;" (assignment_expression "param_3 = &ppppppiStack_fc" identifier = (pointer_expression "&ppppppiStack_fc" & identifier)) ;) (expression_statement "pppppppiStack_124 = (int *******)(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c);" (assignment_expression "pppppppiStack_124 = (int *******)(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c)" identifier = (cast_expression "(int *******)(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c)" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f87])" ( (pointer_expression "*(code *)appppppiStack_138[0][-0x1f87]" * (cast_expression "(code *)appppppiStack_138[0][-0x1f87]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "appppppiStack_138[0][-0x1f87]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(pppppppiStack_11c)" ( identifier ))))) ;) (expression_statement "iStack_128 = 1;" (assignment_expression "iStack_128 = 1" identifier = number_literal) ;) (if_statement "if (pppppppiStack_124 != (int *******)0x0) goto LAB_00020d6c;" if (parenthesized_expression "(pppppppiStack_124 != (int *******)0x0)" ( (binary_expression "pppppppiStack_124 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00020d6c;" goto statement_identifier ;)) (expression_statement "puVar37 = auStack_150;" (assignment_expression "puVar37 = auStack_150" identifier = identifier) ;) (if_statement "if (ppiVar33 == (int **)0x0) {\n      uVar10 = 0xc;\n      goto LAB_00020f18;\n    }" if (parenthesized_expression "(ppiVar33 == (int **)0x0)" ( (binary_expression "ppiVar33 == (int **)0x0" identifier == (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n      uVar10 = 0xc;\n      goto LAB_00020f18;\n    }" { (expression_statement "uVar10 = 0xc;" (assignment_expression "uVar10 = 0xc" identifier = number_literal) ;) (goto_statement "goto LAB_00020f18;" goto statement_identifier ;) })) (labeled_statement "LAB_0002112c:\n    param_3 = &ppppppiStack_fc;" statement_identifier : (expression_statement "param_3 = &ppppppiStack_fc;" (assignment_expression "param_3 = &ppppppiStack_fc" identifier = (pointer_expression "&ppppppiStack_fc" & identifier)) ;)) (expression_statement "FUN_0001ec78(ppiVar33);" (call_expression "FUN_0001ec78(ppiVar33)" identifier (argument_list "(ppiVar33)" ( identifier ))) ;) (expression_statement "puVar39 = puVar37;" (assignment_expression "puVar39 = puVar37" identifier = identifier) ;) }) (else_clause "else {\n    ppiVar33 = &piStack_f0;\n    iStack_e8 = (**(code **)(puVar35 + 0x1b614))(0x30);\n    puVar39 = auStack_150;\n    if (iStack_e8 != 0) {\n      pppppppiVar28 = (int *******)piVar34[0x12];\n      if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n      ppppppiStack_f4 = (int ******)0x0;\n      uStack_f8 = 0;\n      ppppppiStack_fc = (int ******)0x0;\n      puVar37 = auStack_150 + (int)pppppppiVar23 * -8;\n      iStack_128 = 0;\n      pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;\nLAB_00020d6c:\n      param_3 = &ppppppiStack_fc;\n      pppppppiVar3 = pppppppiVar7;\n      pppppppiVar12 = pppppppiStack_11c;\n      (*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);\n      pppppppiStack_100 = (int *******)*pppppppiVar7;\n      ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);\n      ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);\n      ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);\nLAB_00020db0:\n      pppppppiVar29 = (int *******)pppppppiVar7[1];\n      ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n      ppppppiVar32 = appppppiStack_138[0];\n      puVar38 = puVar37;\n      if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }\n      pppppppiVar25 = pppppppiStack_100;\n      (*(code *)ppppiVar19)(ppppppiStack_f4);\n      if (iStack_128 == 0) {\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }\n      else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      FUN_0001ec78(ppiVar33);\nLAB_00020f14:\n      uVar10 = 0;\n      goto LAB_00020f18;\n    }\n  }" else (compound_statement "{\n    ppiVar33 = &piStack_f0;\n    iStack_e8 = (**(code **)(puVar35 + 0x1b614))(0x30);\n    puVar39 = auStack_150;\n    if (iStack_e8 != 0) {\n      pppppppiVar28 = (int *******)piVar34[0x12];\n      if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n      ppppppiStack_f4 = (int ******)0x0;\n      uStack_f8 = 0;\n      ppppppiStack_fc = (int ******)0x0;\n      puVar37 = auStack_150 + (int)pppppppiVar23 * -8;\n      iStack_128 = 0;\n      pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;\nLAB_00020d6c:\n      param_3 = &ppppppiStack_fc;\n      pppppppiVar3 = pppppppiVar7;\n      pppppppiVar12 = pppppppiStack_11c;\n      (*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);\n      pppppppiStack_100 = (int *******)*pppppppiVar7;\n      ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);\n      ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);\n      ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);\nLAB_00020db0:\n      pppppppiVar29 = (int *******)pppppppiVar7[1];\n      ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n      ppppppiVar32 = appppppiStack_138[0];\n      puVar38 = puVar37;\n      if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }\n      pppppppiVar25 = pppppppiStack_100;\n      (*(code *)ppppiVar19)(ppppppiStack_f4);\n      if (iStack_128 == 0) {\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }\n      else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      FUN_0001ec78(ppiVar33);\nLAB_00020f14:\n      uVar10 = 0;\n      goto LAB_00020f18;\n    }\n  }" { (expression_statement "ppiVar33 = &piStack_f0;" (assignment_expression "ppiVar33 = &piStack_f0" identifier = (pointer_expression "&piStack_f0" & identifier)) ;) (expression_statement "iStack_e8 = (**(code **)(puVar35 + 0x1b614))(0x30);" (assignment_expression "iStack_e8 = (**(code **)(puVar35 + 0x1b614))(0x30)" identifier = (call_expression "(**(code **)(puVar35 + 0x1b614))(0x30)" (parenthesized_expression "(**(code **)(puVar35 + 0x1b614))" ( (pointer_expression "**(code **)(puVar35 + 0x1b614)" * (pointer_expression "*(code **)(puVar35 + 0x1b614)" * (cast_expression "(code **)(puVar35 + 0x1b614)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + 0x1b614)" ( (binary_expression "puVar35 + 0x1b614" identifier + number_literal) ))))) )) (argument_list "(0x30)" ( number_literal )))) ;) (expression_statement "puVar39 = auStack_150;" (assignment_expression "puVar39 = auStack_150" identifier = identifier) ;) (if_statement "if (iStack_e8 != 0) {\n      pppppppiVar28 = (int *******)piVar34[0x12];\n      if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n      ppppppiStack_f4 = (int ******)0x0;\n      uStack_f8 = 0;\n      ppppppiStack_fc = (int ******)0x0;\n      puVar37 = auStack_150 + (int)pppppppiVar23 * -8;\n      iStack_128 = 0;\n      pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;\nLAB_00020d6c:\n      param_3 = &ppppppiStack_fc;\n      pppppppiVar3 = pppppppiVar7;\n      pppppppiVar12 = pppppppiStack_11c;\n      (*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);\n      pppppppiStack_100 = (int *******)*pppppppiVar7;\n      ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);\n      ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);\n      ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);\nLAB_00020db0:\n      pppppppiVar29 = (int *******)pppppppiVar7[1];\n      ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n      ppppppiVar32 = appppppiStack_138[0];\n      puVar38 = puVar37;\n      if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }\n      pppppppiVar25 = pppppppiStack_100;\n      (*(code *)ppppiVar19)(ppppppiStack_f4);\n      if (iStack_128 == 0) {\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }\n      else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      FUN_0001ec78(ppiVar33);\nLAB_00020f14:\n      uVar10 = 0;\n      goto LAB_00020f18;\n    }" if (parenthesized_expression "(iStack_e8 != 0)" ( (binary_expression "iStack_e8 != 0" identifier != number_literal) )) (compound_statement "{\n      pppppppiVar28 = (int *******)piVar34[0x12];\n      if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n      ppppppiStack_f4 = (int ******)0x0;\n      uStack_f8 = 0;\n      ppppppiStack_fc = (int ******)0x0;\n      puVar37 = auStack_150 + (int)pppppppiVar23 * -8;\n      iStack_128 = 0;\n      pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;\nLAB_00020d6c:\n      param_3 = &ppppppiStack_fc;\n      pppppppiVar3 = pppppppiVar7;\n      pppppppiVar12 = pppppppiStack_11c;\n      (*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);\n      pppppppiStack_100 = (int *******)*pppppppiVar7;\n      ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);\n      ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);\n      ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);\nLAB_00020db0:\n      pppppppiVar29 = (int *******)pppppppiVar7[1];\n      ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n      ppppppiVar32 = appppppiStack_138[0];\n      puVar38 = puVar37;\n      if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }\n      pppppppiVar25 = pppppppiStack_100;\n      (*(code *)ppppiVar19)(ppppppiStack_f4);\n      if (iStack_128 == 0) {\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }\n      else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      FUN_0001ec78(ppiVar33);\nLAB_00020f14:\n      uVar10 = 0;\n      goto LAB_00020f18;\n    }" { (expression_statement "pppppppiVar28 = (int *******)piVar34[0x12];" (assignment_expression "pppppppiVar28 = (int *******)piVar34[0x12]" identifier = (cast_expression "(int *******)piVar34[0x12]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "piVar34[0x12]" identifier [ number_literal ]))) ;) (if_statement "if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;" if (parenthesized_expression "(0xfbf < (uint)((int)pppppppiVar23 << 3))" ( (binary_expression "0xfbf < (uint)((int)pppppppiVar23 << 3)" number_literal < (call_expression "(uint)((int)pppppppiVar23 << 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pppppppiVar23 << 3)" ( (binary_expression "(int)pppppppiVar23 << 3" (cast_expression "(int)pppppppiVar23" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) )) (goto_statement "goto LAB_00021488;" goto statement_identifier ;)) (labeled_statement "LAB_00020d5c:\n      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);" statement_identifier : (expression_statement "pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);" (assignment_expression "pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3)" identifier = (cast_expression "(int *******)((int)pppppppiVar23 << 3)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar23 << 3)" ( (binary_expression "(int)pppppppiVar23 << 3" (cast_expression "(int)pppppppiVar23" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;)) (expression_statement "ppppppiStack_f4 = (int ******)0x0;" (assignment_expression "ppppppiStack_f4 = (int ******)0x0" identifier = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "uStack_f8 = 0;" (assignment_expression "uStack_f8 = 0" identifier = number_literal) ;) (expression_statement "ppppppiStack_fc = (int ******)0x0;" (assignment_expression "ppppppiStack_fc = (int ******)0x0" identifier = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "puVar37 = auStack_150 + (int)pppppppiVar23 * -8;" (assignment_expression "puVar37 = auStack_150 + (int)pppppppiVar23 * -8" identifier = (binary_expression "auStack_150 + (int)pppppppiVar23 * -8" identifier + (binary_expression "(int)pppppppiVar23 * -8" (cast_expression "(int)pppppppiVar23" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "iStack_128 = 0;" (assignment_expression "iStack_128 = 0" identifier = number_literal) ;) (expression_statement "pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;" (assignment_expression "pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2" identifier = (binary_expression "appppppiStack_138 + (int)pppppppiVar23 * -2" identifier + (binary_expression "(int)pppppppiVar23 * -2" (cast_expression "(int)pppppppiVar23" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (labeled_statement "LAB_00020d6c:\n      param_3 = &ppppppiStack_fc;" statement_identifier : (expression_statement "param_3 = &ppppppiStack_fc;" (assignment_expression "param_3 = &ppppppiStack_fc" identifier = (pointer_expression "&ppppppiStack_fc" & identifier)) ;)) (expression_statement "pppppppiVar3 = pppppppiVar7;" (assignment_expression "pppppppiVar3 = pppppppiVar7" identifier = identifier) ;) (expression_statement "pppppppiVar12 = pppppppiStack_11c;" (assignment_expression "pppppppiVar12 = pppppppiStack_11c" identifier = identifier) ;) (expression_statement "(*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);" (call_expression "(*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124)" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f6e])" ( (pointer_expression "*(code *)appppppiStack_138[0][-0x1f6e]" * (cast_expression "(code *)appppppiStack_138[0][-0x1f6e]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "appppppiStack_138[0][-0x1f6e]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(pppppppiStack_124)" ( identifier ))) ;) (expression_statement "pppppppiStack_100 = (int *******)*pppppppiVar7;" (assignment_expression "pppppppiStack_100 = (int *******)*pppppppiVar7" identifier = (cast_expression "(int *******)*pppppppiVar7" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppiVar7" * identifier))) ;) (expression_statement "ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);" (assignment_expression "ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb)" identifier = (cast_expression "(int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(appppppiStack_138[0][-0x1fba] + -0x4bb)" ( (binary_expression "appppppiStack_138[0][-0x1fba] + -0x4bb" (subscript_expression "appppppiStack_138[0][-0x1fba]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]) + number_literal) )))) ;) (expression_statement "ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);" (assignment_expression "ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c)" identifier = (cast_expression "(int ****)(appppppiStack_138[0][-0x1fba] + -0x174c)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(appppppiStack_138[0][-0x1fba] + -0x174c)" ( (binary_expression "appppppiStack_138[0][-0x1fba] + -0x174c" (subscript_expression "appppppiStack_138[0][-0x1fba]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]) + number_literal) )))) ;) (expression_statement "ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);" (assignment_expression "ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece)" identifier = (cast_expression "(int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(appppppiStack_138[0][-0x1fba] + -0x1ece)" ( (binary_expression "appppppiStack_138[0][-0x1fba] + -0x1ece" (subscript_expression "appppppiStack_138[0][-0x1fba]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]) + number_literal) )))) ;) (labeled_statement "LAB_00020db0:\n      pppppppiVar29 = (int *******)pppppppiVar7[1];" statement_identifier : (expression_statement "pppppppiVar29 = (int *******)pppppppiVar7[1];" (assignment_expression "pppppppiVar29 = (int *******)pppppppiVar7[1]" identifier = (cast_expression "(int *******)pppppppiVar7[1]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar7[1]" identifier [ number_literal ]))) ;)) (expression_statement "ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];" (assignment_expression "ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba]" identifier = (cast_expression "(int ****)appppppiStack_138[0][-0x1fba]" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "appppppiStack_138[0][-0x1fba]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) ;) (expression_statement "ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];" (assignment_expression "ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba]" identifier = (cast_expression "(int ****)appppppiStack_138[0][-0x1fba]" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "appppppiStack_138[0][-0x1fba]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) ;) (expression_statement "ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];" (assignment_expression "ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c]" identifier = (cast_expression "(int ****)appppppiStack_138[0][-0x1f6c]" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "appppppiStack_138[0][-0x1f6c]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) ;) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" identifier = (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ])) ;) (expression_statement "puVar38 = puVar37;" (assignment_expression "puVar38 = puVar37" identifier = identifier) ;) (if_statement "if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }" if (parenthesized_expression "((int)pppppppiStack_100 <= (int)pppppppiVar29)" ( (binary_expression "(int)pppppppiStack_100 <= (int)pppppppiVar29" (cast_expression "(int)pppppppiStack_100" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pppppppiVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }" { (do_statement "do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );" do (compound_statement "{\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        }" { (expression_statement "pppppppiVar30 = pppppppiVar28;" (assignment_expression "pppppppiVar30 = pppppppiVar28" identifier = identifier) ;) (expression_statement "pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);" (assignment_expression "pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8)" identifier = (cast_expression "(int *******)((int)pppppppiVar30 * 8)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar30 * 8)" ( (binary_expression "(int)pppppppiVar30 * 8" (cast_expression "(int)pppppppiVar30" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "pppppppiVar12 = (int *******)0x8;" (assignment_expression "pppppppiVar12 = (int *******)0x8" identifier = (cast_expression "(int *******)0x8" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);" (assignment_expression "piVar9 = (int *)(*piVar34 + (int)pppppppiVar28)" identifier = (cast_expression "(int *)(*piVar34 + (int)pppppppiVar28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar34 + (int)pppppppiVar28)" ( (binary_expression "*piVar34 + (int)pppppppiVar28" (pointer_expression "*piVar34" * identifier) + (cast_expression "(int)pppppppiVar28" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);" (assignment_expression "pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1)" identifier = (binary_expression "(int *******)(uint)*(byte *)(piVar9 + 1)" (cast_expression "(int *******)(uint)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(piVar9 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 1)" ( (binary_expression "piVar9 + 1" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar25 = pppppppiStack_100;" (assignment_expression "pppppppiVar25 = pppppppiStack_100" identifier = identifier) ;) (if_statement "if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }" if (parenthesized_expression "(pppppppiVar3 == (int *******)0x8)" ( (binary_expression "pppppppiVar3 == (int *******)0x8" identifier == (cast_expression "(int *******)0x8" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }" { (expression_statement "iVar6 = *piVar9;" (assignment_expression "iVar6 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);" (assignment_expression "pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23)" identifier = (cast_expression "(int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)(iVar6 + 1 < (int)pppppppiVar23)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar6 + 1 < (int)pppppppiVar23)" ( (binary_expression "iVar6 + 1 < (int)pppppppiVar23" (binary_expression "iVar6 + 1" identifier + number_literal) < (cast_expression "(int)pppppppiVar23" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }" if (parenthesized_expression "(pppppppiVar3 != (int *******)0x0)" ( (binary_expression "pppppppiVar3 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }" { (expression_statement "(pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;" (assignment_expression "(pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff" (subscript_expression "(pppppppiVar7 + (iVar6 + 1) * 2)[1]" (parenthesized_expression "(pppppppiVar7 + (iVar6 + 1) * 2)" ( (binary_expression "pppppppiVar7 + (iVar6 + 1) * 2" identifier + (binary_expression "(iVar6 + 1) * 2" (parenthesized_expression "(iVar6 + 1)" ( (binary_expression "iVar6 + 1" identifier + number_literal) )) * number_literal)) )) [ number_literal ]) = (cast_expression "(int ******)0xffffffff" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;" (assignment_expression "pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100" (subscript_expression "pppppppiVar7[(iVar6 + 1) * 2]" identifier [ (binary_expression "(iVar6 + 1) * 2" (parenthesized_expression "(iVar6 + 1)" ( (binary_expression "iVar6 + 1" identifier + number_literal) )) * number_literal) ]) = (cast_expression "(int ******)pppppppiStack_100" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "pppppppiVar29 = (int *******)pppppppiVar7[1];" (assignment_expression "pppppppiVar29 = (int *******)pppppppiVar7[1]" identifier = (cast_expression "(int *******)pppppppiVar7[1]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar7[1]" identifier [ number_literal ]))) ;) })) }) (else_clause "else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }" else (compound_statement "{\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }" { (expression_statement "pppppppiVar12 = (int *******)&DAT_00000009;" (assignment_expression "pppppppiVar12 = (int *******)&DAT_00000009" identifier = (cast_expression "(int *******)&DAT_00000009" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&DAT_00000009" & identifier))) ;) (if_statement "if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }" if (parenthesized_expression "(pppppppiVar3 == (int *******)&DAT_00000009)" ( (binary_expression "pppppppiVar3 == (int *******)&DAT_00000009" identifier == (cast_expression "(int *******)&DAT_00000009" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&DAT_00000009" & identifier))) )) (compound_statement "{\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }" { (expression_statement "iVar6 = *piVar9 + 1;" (assignment_expression "iVar6 = *piVar9 + 1" identifier = (binary_expression "*piVar9 + 1" (pointer_expression "*piVar9" * identifier) + number_literal)) ;) (expression_statement "pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);" (assignment_expression "pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23)" identifier = (cast_expression "(int *******)(uint)(iVar6 < (int)pppppppiVar23)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)(iVar6 < (int)pppppppiVar23)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar6 < (int)pppppppiVar23)" ( (binary_expression "iVar6 < (int)pppppppiVar23" identifier < (cast_expression "(int)pppppppiVar23" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "pppppppiVar3 = (int *******)(iVar6 * 8);" (assignment_expression "pppppppiVar3 = (int *******)(iVar6 * 8)" identifier = (cast_expression "(int *******)(iVar6 * 8)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(iVar6 * 8)" ( (binary_expression "iVar6 * 8" identifier * number_literal) )))) ;) (if_statement "if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }" if (parenthesized_expression "(pppppppiVar12 != (int *******)0x0)" ( (binary_expression "pppppppiVar12 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }" { (expression_statement "pppppppiVar29 = pppppppiVar7 + iVar6 * 2;" (assignment_expression "pppppppiVar29 = pppppppiVar7 + iVar6 * 2" identifier = (binary_expression "pppppppiVar7 + iVar6 * 2" identifier + (binary_expression "iVar6 * 2" identifier * number_literal))) ;) (expression_statement "ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];" (assignment_expression "ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e]" identifier = (subscript_expression "((int *****)ppppppiVar32)[-0x1f6e]" (parenthesized_expression "((int *****)ppppppiVar32)" ( (cast_expression "(int *****)ppppppiVar32" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ])) ;) (if_statement "if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }" if (parenthesized_expression "((int)*pppppppiVar29 < (int)pppppppiStack_100)" ( (binary_expression "(int)*pppppppiVar29 < (int)pppppppiStack_100" (cast_expression "(int)*pppppppiVar29" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppppppiVar29" * identifier)) < (cast_expression "(int)pppppppiStack_100" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }" { (expression_statement "pppppppiVar29[1] = (int ******)pppppppiStack_100;" (assignment_expression "pppppppiVar29[1] = (int ******)pppppppiStack_100" (subscript_expression "pppppppiVar29[1]" identifier [ number_literal ]) = (cast_expression "(int ******)pppppppiStack_100" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "pppppppiVar26 = pppppppiStack_124;" (assignment_expression "pppppppiVar26 = pppppppiStack_124" identifier = identifier) ;) (expression_statement "pppppppiVar3 = pppppppiVar7;" (assignment_expression "pppppppiVar3 = pppppppiVar7" identifier = identifier) ;) }) (else_clause "else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }" else (if_statement "if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }" if (parenthesized_expression "(((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff))" ( (binary_expression "((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)" (parenthesized_expression "((piVar9[1] & 0x1000U) == 0)" ( (binary_expression "(piVar9[1] & 0x1000U) == 0" (parenthesized_expression "(piVar9[1] & 0x1000U)" ( (binary_expression "piVar9[1] & 0x1000U" (subscript_expression "piVar9[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) || (parenthesized_expression "(pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)" ( (comma_expression "pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff" (assignment_expression "pppppppiVar26 = pppppppiVar7" identifier = identifier) , (comma_expression "pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff" (assignment_expression "pppppppiVar3 = pppppppiStack_124" identifier = identifier) , (binary_expression "pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff" (subscript_expression "pppppppiStack_124[iVar6 * 2]" identifier [ (binary_expression "iVar6 * 2" identifier * number_literal) ]) == (cast_expression "(int ******)0xffffffff" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)))) ))) )) (compound_statement "{\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }" { (expression_statement "pppppppiVar29[1] = (int ******)pppppppiStack_100;" (assignment_expression "pppppppiVar29[1] = (int ******)pppppppiStack_100" (subscript_expression "pppppppiVar29[1]" identifier [ number_literal ]) = (cast_expression "(int ******)pppppppiStack_100" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "pppppppiVar29 = (int *******)pppppppiVar7[1];" (assignment_expression "pppppppiVar29 = (int *******)pppppppiVar7[1]" identifier = (cast_expression "(int *******)pppppppiVar7[1]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar7[1]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_00020df8;" goto statement_identifier ;) })))) (expression_statement "pppppppiVar12 = pppppppiStack_11c;" (assignment_expression "pppppppiVar12 = pppppppiStack_11c" identifier = identifier) ;) (expression_statement "pppppppiStack_10c = pppppppiVar28;" (assignment_expression "pppppppiStack_10c = pppppppiVar28" identifier = identifier) ;) (expression_statement "pppppppiStack_108 = pppppppiStack_100;" (assignment_expression "pppppppiStack_108 = pppppppiStack_100" identifier = identifier) ;) (expression_statement "(*(code *)ppppiVar19)(pppppppiVar26);" (call_expression "(*(code *)ppppiVar19)(pppppppiVar26)" (parenthesized_expression "(*(code *)ppppiVar19)" ( (pointer_expression "*(code *)ppppiVar19" * (cast_expression "(code *)ppppiVar19" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pppppppiVar26)" ( identifier ))) ;) (expression_statement "pppppppiVar29 = (int *******)pppppppiVar7[1];" (assignment_expression "pppppppiVar29 = (int *******)pppppppiVar7[1]" identifier = (cast_expression "(int *******)pppppppiVar7[1]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar7[1]" identifier [ number_literal ]))) ;) (expression_statement "pppppppiVar25 = pppppppiStack_108;" (assignment_expression "pppppppiVar25 = pppppppiStack_108" identifier = identifier) ;) (expression_statement "pppppppiVar28 = pppppppiStack_10c;" (assignment_expression "pppppppiVar28 = pppppppiStack_10c" identifier = identifier) ;) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" identifier = (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ])) ;) })) })) }))) (labeled_statement "LAB_00020df8:\n          ppppiVar19 = ppppiStack_120;" statement_identifier : (expression_statement "ppppiVar19 = ppppiStack_120;" (assignment_expression "ppppiVar19 = ppppiStack_120" identifier = identifier) ;)) (if_statement "if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }" if (parenthesized_expression "((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30))" ( (binary_expression "(pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)" (parenthesized_expression "(pppppppiVar25 == pppppppiVar29)" ( (binary_expression "pppppppiVar25 == pppppppiVar29" identifier == identifier) )) && (parenthesized_expression "((int *******)pppppppiVar22[0x18] == pppppppiVar30)" ( (binary_expression "(int *******)pppppppiVar22[0x18] == pppppppiVar30" (cast_expression "(int *******)pppppppiVar22[0x18]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar22[0x18]" identifier [ number_literal ])) == identifier) ))) )) (compound_statement "{\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }" { (expression_statement "ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];" (assignment_expression "ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c]" identifier = (subscript_expression "((int *****)ppppppiVar32)[-0x1f6c]" (parenthesized_expression "((int *****)ppppppiVar32)" ( (cast_expression "(int *****)ppppppiVar32" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ])) ;) (if_statement "if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }" if (parenthesized_expression "(ppiVar33 == (int **)0x0)" ( (binary_expression "ppiVar33 == (int **)0x0" identifier == (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }" { (expression_statement "(*(code *)ppppiVar36)(ppppppiStack_f4);" (call_expression "(*(code *)ppppiVar36)(ppppppiStack_f4)" (parenthesized_expression "(*(code *)ppppiVar36)" ( (pointer_expression "*(code *)ppppiVar36" * (cast_expression "(code *)ppppiVar36" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppppppiStack_f4)" ( identifier ))) ;) (if_statement "if (iStack_128 == 0) goto LAB_00020f14;" if (parenthesized_expression "(iStack_128 == 0)" ( (binary_expression "iStack_128 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00020f14;" goto statement_identifier ;)) (expression_statement "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);" (call_expression "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124)" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f6c])" ( (pointer_expression "*(code *)appppppiStack_138[0][-0x1f6c]" * (cast_expression "(code *)appppppiStack_138[0][-0x1f6c]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "appppppiStack_138[0][-0x1f6c]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(pppppppiStack_124)" ( identifier ))) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00020f18;" goto statement_identifier ;) })) (expression_statement "pppppppiVar28 = (int *******)0x0;" (assignment_expression "pppppppiVar28 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }" if (parenthesized_expression "(pppppppiVar23 == (int *******)0x0)" ( (binary_expression "pppppppiVar23 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }" { (labeled_statement "LAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);" statement_identifier : (expression_statement "(*(code *)ppppiVar36)(ppppppiStack_f4);" (call_expression "(*(code *)ppppiVar36)(ppppppiStack_f4)" (parenthesized_expression "(*(code *)ppppiVar36)" ( (pointer_expression "*(code *)ppppiVar36" * (cast_expression "(code *)ppppiVar36" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppppppiStack_f4)" ( identifier ))) ;)) (if_statement "if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }" if (parenthesized_expression "(iStack_128 != 0)" ( (binary_expression "iStack_128 != 0" identifier != number_literal) )) (compound_statement "{\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }" { (expression_statement "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);" (call_expression "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124)" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f6c])" ( (pointer_expression "*(code *)appppppiStack_138[0][-0x1f6c]" * (cast_expression "(code *)appppppiStack_138[0][-0x1f6c]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "appppppiStack_138[0][-0x1f6c]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(pppppppiStack_124)" ( identifier ))) ;) })) (goto_statement "goto LAB_00020f00;" goto statement_identifier ;) })) (expression_statement "pppppppiVar3 = (int *******)0xffffffff;" (assignment_expression "pppppppiVar3 = (int *******)0xffffffff" identifier = (cast_expression "(int *******)0xffffffff" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppiVar29 = pppppppiVar7;" (assignment_expression "pppppppiVar29 = pppppppiVar7" identifier = identifier) ;) (while_statement "while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }" while (parenthesized_expression "(((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff)))" ( (parenthesized_expression "((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))" ( (binary_expression "(int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff)" (binary_expression "(int)*pppppppiVar29 < 0" (cast_expression "(int)*pppppppiVar29" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppppppiVar29" * identifier)) < number_literal) || (parenthesized_expression "(pppppppiVar29[1] != (int ******)0xffffffff)" ( (binary_expression "pppppppiVar29[1] != (int ******)0xffffffff" (subscript_expression "pppppppiVar29[1]" identifier [ number_literal ]) != (cast_expression "(int ******)0xffffffff" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) )) (compound_statement "{\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }" { (expression_statement "pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);" (assignment_expression "pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1)" identifier = (cast_expression "(int *******)((int)pppppppiVar28 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar28 + 1)" ( (binary_expression "(int)pppppppiVar28 + 1" (cast_expression "(int)pppppppiVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pppppppiVar29 = pppppppiVar29 + 2;" (assignment_expression "pppppppiVar29 = pppppppiVar29 + 2" identifier = (binary_expression "pppppppiVar29 + 2" identifier + number_literal)) ;) (if_statement "if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }" if (parenthesized_expression "(pppppppiVar23 == pppppppiVar28)" ( (binary_expression "pppppppiVar23 == pppppppiVar28" identifier == identifier) )) (compound_statement "{\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }" { (expression_statement "ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];" (assignment_expression "ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c]" identifier = (subscript_expression "((int *****)ppppppiVar32)[-0x1f6c]" (parenthesized_expression "((int *****)ppppppiVar32)" ( (cast_expression "(int *****)ppppppiVar32" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ])) ;) (goto_statement "goto LAB_000212c0;" goto statement_identifier ;) })) })) (expression_statement "*(int ********)(puVar37 + 0x14) = param_3;" (assignment_expression "*(int ********)(puVar37 + 0x14) = param_3" (pointer_expression "*(int ********)(puVar37 + 0x14)" * (cast_expression "(int ********)(puVar37 + 0x14)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(puVar37 + 0x14)" ( (binary_expression "puVar37 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int ********)(puVar37 + 0x10) = pppppppiVar7;" (assignment_expression "*(int ********)(puVar37 + 0x10) = pppppppiVar7" (pointer_expression "*(int ********)(puVar37 + 0x10)" * (cast_expression "(int ********)(puVar37 + 0x10)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(puVar37 + 0x10)" ( (binary_expression "puVar37 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pppppppiVar25 = pppppppiVar23;" (assignment_expression "pppppppiVar25 = pppppppiVar23" identifier = identifier) ;) (expression_statement "pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);" (assignment_expression "pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100)" identifier = (cast_expression "(int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100)" (parenthesized_expression "(*(code *)ppppiVar19)" ( (pointer_expression "*(code *)ppppiVar19" * (cast_expression "(code *)ppppiVar19" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppiVar33,ppiVar33 + 2,&pppppppiStack_100)" ( identifier , (binary_expression "ppiVar33 + 2" identifier + number_literal) , (pointer_expression "&pppppppiStack_100" & identifier) ))))) ;) (expression_statement "pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);" (assignment_expression "pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3)" identifier = (cast_expression "(int *******)((int)pppppppiVar30 << 3)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar30 << 3)" ( (binary_expression "(int)pppppppiVar30 << 3" (cast_expression "(int)pppppppiVar30" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" identifier = (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ])) ;) })) (expression_statement "pppppppiVar29 = pppppppiStack_100;" (assignment_expression "pppppppiVar29 = pppppppiStack_100" identifier = identifier) ;) (expression_statement "pppppppiVar26 = (int *******)pppppppiVar22[0x15];" (assignment_expression "pppppppiVar26 = (int *******)pppppppiVar22[0x15]" identifier = (cast_expression "(int *******)pppppppiVar22[0x15]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar22[0x15]" identifier [ number_literal ]))) ;) (expression_statement "pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);" (assignment_expression "pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28)" identifier = (cast_expression "(int *******)((int)*pppppppiVar26 + (int)pppppppiVar28)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)*pppppppiVar26 + (int)pppppppiVar28)" ( (binary_expression "(int)*pppppppiVar26 + (int)pppppppiVar28" (cast_expression "(int)*pppppppiVar26" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppppppiVar26" * identifier)) + (cast_expression "(int)pppppppiVar28" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);" (assignment_expression "pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1)" identifier = (binary_expression "(int *******)(uint)*(byte *)(pppppppiVar3 + 1)" (cast_expression "(int *******)(uint)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(pppppppiVar3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar3 + 1)" ( (binary_expression "pppppppiVar3 + 1" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }" if (parenthesized_expression "((*(byte *)(pppppppiVar3 + 1) & 8) == 0)" ( (binary_expression "(*(byte *)(pppppppiVar3 + 1) & 8) == 0" (parenthesized_expression "(*(byte *)(pppppppiVar3 + 1) & 8)" ( (binary_expression "*(byte *)(pppppppiVar3 + 1) & 8" (pointer_expression "*(byte *)(pppppppiVar3 + 1)" * (cast_expression "(byte *)(pppppppiVar3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar3 + 1)" ( (binary_expression "pppppppiVar3 + 1" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }" { (if_statement "if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }" if (parenthesized_expression "(((uint)pppppppiVar3[1] & 0x800) == 0)" ( (binary_expression "((uint)pppppppiVar3[1] & 0x800) == 0" (parenthesized_expression "((uint)pppppppiVar3[1] & 0x800)" ( (binary_expression "(uint)pppppppiVar3[1] & 0x800" (cast_expression "(uint)pppppppiVar3[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar3[1]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }" { (expression_statement "pppppppiVar25 = pppppppiStack_100;" (assignment_expression "pppppppiVar25 = pppppppiStack_100" identifier = identifier) ;) (if_statement "if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;" if (parenthesized_expression "(pppppppiVar12 != (int *******)0x4)" ( (binary_expression "pppppppiVar12 != (int *******)0x4" identifier != (cast_expression "(int *******)0x4" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00020e44;" goto statement_identifier ;)) (expression_statement "ppppppiVar13 = *pppppppiVar3;" (assignment_expression "ppppppiVar13 = *pppppppiVar3" identifier = (pointer_expression "*pppppppiVar3" * identifier)) ;) (expression_statement "pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];" (assignment_expression "pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1]" identifier = (cast_expression "(int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1]" (parenthesized_expression "(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)" ( (binary_expression "pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2" identifier + (binary_expression "((int)ppppppiVar13 + 1) * 2" (parenthesized_expression "((int)ppppppiVar13 + 1)" ( (binary_expression "(int)ppppppiVar13 + 1" (cast_expression "(int)ppppppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) * number_literal)) )) [ number_literal ]))) ;) (expression_statement "ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];" (assignment_expression "ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2]" identifier = (subscript_expression "pppppppiVar7[((int)ppppppiVar13 + 1) * 2]" identifier [ (binary_expression "((int)ppppppiVar13 + 1) * 2" (parenthesized_expression "((int)ppppppiVar13 + 1)" ( (binary_expression "(int)ppppppiVar13 + 1" (cast_expression "(int)ppppppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) * number_literal) ])) ;) (expression_statement "pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);" (assignment_expression "pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13)" identifier = (cast_expression "(int *******)((int)pppppppiVar3 - (int)ppppppiVar13)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar3 - (int)ppppppiVar13)" ( (binary_expression "(int)pppppppiVar3 - (int)ppppppiVar13" (cast_expression "(int)pppppppiVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppppppiVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }" if (parenthesized_expression "(ppiVar33 == (int **)0x0)" ( (binary_expression "ppiVar33 == (int **)0x0" identifier == (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }" { (if_statement "if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;" if (parenthesized_expression "(pppppppiVar25 == (int *******)0x0)" ( (binary_expression "pppppppiVar25 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00021318;" goto statement_identifier ;)) }) (else_clause "else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }" else (compound_statement "{\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }" { (expression_statement "pppppppiVar27 = pppppppiVar30;" (assignment_expression "pppppppiVar27 = pppppppiVar30" identifier = identifier) ;) (if_statement "if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;" if (parenthesized_expression "((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff))" ( (binary_expression "(ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)" (parenthesized_expression "(ppppppiVar13 == (int ******)0xffffffff)" ( (binary_expression "ppppppiVar13 == (int ******)0xffffffff" identifier == (cast_expression "(int ******)0xffffffff" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) || (parenthesized_expression "(pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)" ( (comma_expression "pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff" (assignment_expression "pppppppiVar12 = (int *******)&pppppppiStack_100" identifier = (cast_expression "(int *******)&pppppppiStack_100" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&pppppppiStack_100" & identifier))) , (binary_expression "pppppppiVar3 == (int *******)0xffffffff" identifier == (cast_expression "(int *******)0xffffffff" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal))) ))) )) (goto_statement "goto LAB_00020f7c;" goto statement_identifier ;)) (if_statement "if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }" if (parenthesized_expression "(pppppppiVar25 == (int *******)0x0)" ( (binary_expression "pppppppiVar25 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }" { (labeled_statement "LAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;" statement_identifier : (expression_statement "pppppppiVar3 = pppppppiVar30;" (assignment_expression "pppppppiVar3 = pppppppiVar30" identifier = identifier) ;)) (expression_statement "pppppppiStack_10c = pppppppiVar28;" (assignment_expression "pppppppiStack_10c = pppppppiVar28" identifier = identifier) ;) (expression_statement "pppppppiStack_108 = pppppppiVar26;" (assignment_expression "pppppppiStack_108 = pppppppiVar26" identifier = identifier) ;) (expression_statement "iVar6 = (*(code *)ppppiStack_114)(param_3);" (assignment_expression "iVar6 = (*(code *)ppppiStack_114)(param_3)" identifier = (call_expression "(*(code *)ppppiStack_114)(param_3)" (parenthesized_expression "(*(code *)ppppiStack_114)" ( (pointer_expression "*(code *)ppppiStack_114" * (cast_expression "(code *)ppppiStack_114" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "pppppppiVar28 = pppppppiVar30;" (assignment_expression "pppppppiVar28 = pppppppiVar30" identifier = identifier) ;) (if_statement "if (iVar6 == 0) goto LAB_000213ac;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000213ac;" goto statement_identifier ;)) (expression_statement "pppppppiVar3 = pppppppiStack_108 + 5;" (assignment_expression "pppppppiVar3 = pppppppiStack_108 + 5" identifier = (binary_expression "pppppppiStack_108 + 5" identifier + number_literal)) ;) (expression_statement "pppppppiStack_130 = pppppppiStack_108;" (assignment_expression "pppppppiStack_130 = pppppppiStack_108" identifier = identifier) ;) (expression_statement "pppppppiStack_108 = pppppppiStack_100;" (assignment_expression "pppppppiStack_108 = pppppppiStack_100" identifier = identifier) ;) (expression_statement "pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];" (assignment_expression "pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2]" identifier = (cast_expression "(int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2]" * (subscript_expression "(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2]" (parenthesized_expression "(*pppppppiVar3)" ( (pointer_expression "*pppppppiVar3" * identifier) )) [ (binary_expression "(int)pppppppiVar30 * 3 + 2" (binary_expression "(int)pppppppiVar30 * 3" (cast_expression "(int)pppppppiVar30" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])))) ;) (expression_statement "pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);" (assignment_expression "pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3)" identifier = (cast_expression "(int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3)" ( (binary_expression "pppppppiVar22[0x19][(int)pppppppiStack_100] + 3" (subscript_expression "pppppppiVar22[0x19][(int)pppppppiStack_100]" (subscript_expression "pppppppiVar22[0x19]" identifier [ number_literal ]) [ (cast_expression "(int)pppppppiStack_100" ( (type_descriptor "int" primitive_type) ) identifier) ]) + number_literal) )))) ;) (expression_statement "pppppppiVar12 = pppppppiVar28;" (assignment_expression "pppppppiVar12 = pppppppiVar28" identifier = identifier) ;) (expression_statement "iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);" (assignment_expression "iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2])" identifier = (call_expression "(*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2])" (parenthesized_expression "(*(code *)ppppiStack_104)" ( (pointer_expression "*(code *)ppppiStack_104" * (cast_expression "(code *)ppppiStack_104" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pppppppiVar22[0x19][(int)pppppppiStack_100][2])" ( (subscript_expression "pppppppiVar22[0x19][(int)pppppppiStack_100][2]" (subscript_expression "pppppppiVar22[0x19][(int)pppppppiStack_100]" (subscript_expression "pppppppiVar22[0x19]" identifier [ number_literal ]) [ (cast_expression "(int)pppppppiStack_100" ( (type_descriptor "int" primitive_type) ) identifier) ]) [ number_literal ]) )))) ;) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" identifier = (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ])) ;) (if_statement "if (iVar6 != 0) goto LAB_00020ecc;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00020ecc;" goto statement_identifier ;)) (expression_statement "pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);" (assignment_expression "pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c)" identifier = (cast_expression "(int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)*pppppppiStack_130 + (int)pppppppiStack_10c)" ( (binary_expression "(int)*pppppppiStack_130 + (int)pppppppiStack_10c" (cast_expression "(int)*pppppppiStack_130" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppppppiStack_130" * identifier)) + (cast_expression "(int)pppppppiStack_10c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppiVar25 = pppppppiStack_108;" (assignment_expression "pppppppiVar25 = pppppppiStack_108" identifier = identifier) ;) (expression_statement "pppppppiVar26 = pppppppiStack_130;" (assignment_expression "pppppppiVar26 = pppppppiStack_130" identifier = identifier) ;) (goto_statement "goto LAB_00020e44;" goto statement_identifier ;) })) (expression_statement "pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);" (assignment_expression "pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100)" identifier = (cast_expression "(int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar22[1] + (int)pppppppiStack_100)" ( (binary_expression "(int)pppppppiVar22[1] + (int)pppppppiStack_100" (cast_expression "(int)pppppppiVar22[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar22[1]" identifier [ number_literal ])) + (cast_expression "(int)pppppppiStack_100" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppiStack_10c = pppppppiVar26;" (assignment_expression "pppppppiStack_10c = pppppppiVar26" identifier = identifier) ;) (expression_statement "pppppppiStack_108 = pppppppiVar25;" (assignment_expression "pppppppiStack_108 = pppppppiVar25" identifier = identifier) ;) (expression_statement "iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);" (assignment_expression "iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13)" identifier = (call_expression "(*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13)" (parenthesized_expression "(*(code *)((int *****)ppppppiVar32)[-0x1f74])" ( (pointer_expression "*(code *)((int *****)ppppppiVar32)[-0x1f74]" * (cast_expression "(code *)((int *****)ppppppiVar32)[-0x1f74]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "((int *****)ppppppiVar32)[-0x1f74]" (parenthesized_expression "((int *****)ppppppiVar32)" ( (cast_expression "(int *****)ppppppiVar32" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]))) )) (argument_list "((int)pppppppiVar22[1] + (int)ppppppiVar13)" ( (binary_expression "(int)pppppppiVar22[1] + (int)ppppppiVar13" (cast_expression "(int)pppppppiVar22[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar22[1]" identifier [ number_literal ])) + (cast_expression "(int)ppppppiVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppiVar12 = pppppppiVar25;" (assignment_expression "pppppppiVar12 = pppppppiVar25" identifier = identifier) ;) (expression_statement "pppppppiVar25 = pppppppiStack_108;" (assignment_expression "pppppppiVar25 = pppppppiStack_108" identifier = identifier) ;) (expression_statement "pppppppiVar26 = pppppppiStack_10c;" (assignment_expression "pppppppiVar26 = pppppppiStack_10c" identifier = identifier) ;) (expression_statement "pppppppiVar27 = pppppppiVar29;" (assignment_expression "pppppppiVar27 = pppppppiVar29" identifier = identifier) ;) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" identifier = (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ])) ;) (if_statement "if (iVar6 != 0) goto LAB_00020f7c;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00020f7c;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);" statement_identifier : (expression_statement "pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);" (assignment_expression "pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25)" identifier = (cast_expression "(int *******)((int)pppppppiVar29 + (int)pppppppiVar25)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar29 + (int)pppppppiVar25)" ( (binary_expression "(int)pppppppiVar29 + (int)pppppppiVar25" (cast_expression "(int)pppppppiVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];" (assignment_expression "pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30]" identifier = (cast_expression "(int *******)pppppppiVar26[3][(int)pppppppiVar30]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar26[3][(int)pppppppiVar30]" (subscript_expression "pppppppiVar26[3]" identifier [ number_literal ]) [ (cast_expression "(int)pppppppiVar30" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "pppppppiVar30 = pppppppiVar29;" (assignment_expression "pppppppiVar30 = pppppppiVar29" identifier = identifier) ;) }) (else_clause "else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }" else (compound_statement "{\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }" { (expression_statement "pppppppiVar3 = pppppppiVar26 + 0x20;" (assignment_expression "pppppppiVar3 = pppppppiVar26 + 0x20" identifier = (binary_expression "pppppppiVar26 + 0x20" identifier + number_literal)) ;) (expression_statement "pppppppiStack_10c = pppppppiVar28;" (assignment_expression "pppppppiStack_10c = pppppppiVar28" identifier = identifier) ;) (expression_statement "pppppppiStack_108 = pppppppiVar26;" (assignment_expression "pppppppiStack_108 = pppppppiVar26" identifier = identifier) ;) (expression_statement "*(int ********)(puVar37 + 0x10) = pppppppiStack_100;" (assignment_expression "*(int ********)(puVar37 + 0x10) = pppppppiStack_100" (pointer_expression "*(int ********)(puVar37 + 0x10)" * (cast_expression "(int ********)(puVar37 + 0x10)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(puVar37 + 0x10)" ( (binary_expression "puVar37 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pppppppiVar12 = pppppppiVar30;" (assignment_expression "pppppppiVar12 = pppppppiVar30" identifier = identifier) ;) (expression_statement "pppppppiVar25 = (int *******)FUN_000201f0();" (assignment_expression "pppppppiVar25 = (int *******)FUN_000201f0()" identifier = (cast_expression "(int *******)FUN_000201f0()" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_000201f0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "pppppppiVar26 = pppppppiStack_108;" (assignment_expression "pppppppiVar26 = pppppppiStack_108" identifier = identifier) ;) (expression_statement "pppppppiVar29 = pppppppiStack_100;" (assignment_expression "pppppppiVar29 = pppppppiStack_100" identifier = identifier) ;) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" identifier = (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ])) ;) (if_statement "if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;" if (parenthesized_expression "(pppppppiVar25 != (int *******)0x0)" ( (binary_expression "pppppppiVar25 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00021258;" goto statement_identifier ;)) (expression_statement "pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);" (assignment_expression "pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c)" identifier = (cast_expression "(int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)*pppppppiStack_108 + (int)pppppppiStack_10c)" ( (binary_expression "(int)*pppppppiStack_108 + (int)pppppppiStack_10c" (cast_expression "(int)*pppppppiStack_108" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppppppiStack_108" * identifier)) + (cast_expression "(int)pppppppiStack_10c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppiVar25 = pppppppiStack_100;" (assignment_expression "pppppppiVar25 = pppppppiStack_100" identifier = identifier) ;) (labeled_statement "LAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;" statement_identifier : (expression_statement "pppppppiVar12 = pppppppiVar25;" (assignment_expression "pppppppiVar12 = pppppppiVar25" identifier = identifier) ;)) (expression_statement "pppppppiStack_10c = pppppppiVar26;" (assignment_expression "pppppppiStack_10c = pppppppiVar26" identifier = identifier) ;) (expression_statement "pppppppiStack_108 = pppppppiVar12;" (assignment_expression "pppppppiStack_108 = pppppppiVar12" identifier = identifier) ;) (expression_statement "iVar6 = FUN_0001cc98(pppppppiVar22);" (assignment_expression "iVar6 = FUN_0001cc98(pppppppiVar22)" identifier = (call_expression "FUN_0001cc98(pppppppiVar22)" identifier (argument_list "(pppppppiVar22)" ( identifier )))) ;) (expression_statement "pppppppiVar25 = pppppppiStack_108;" (assignment_expression "pppppppiVar25 = pppppppiStack_108" identifier = identifier) ;) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" identifier = (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ])) ;) (if_statement "if (iVar6 == 0) goto LAB_00020f6c;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00020f6c;" goto statement_identifier ;)) (expression_statement "pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);" (assignment_expression "pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1)" identifier = (cast_expression "(int *******)((int)pppppppiStack_108 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiStack_108 + 1)" ( (binary_expression "(int)pppppppiStack_108 + 1" (cast_expression "(int)pppppppiStack_108" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];" (assignment_expression "pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30]" identifier = (cast_expression "(int *******)pppppppiStack_10c[3][(int)pppppppiVar30]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiStack_10c[3][(int)pppppppiVar30]" (subscript_expression "pppppppiStack_10c[3]" identifier [ number_literal ]) [ (cast_expression "(int)pppppppiVar30" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);" (assignment_expression "pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30)" identifier = (cast_expression "(int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppppiStack_10c[3] + (int)pppppppiVar30)" ( (binary_expression "pppppppiStack_10c[3] + (int)pppppppiVar30" (subscript_expression "pppppppiStack_10c[3]" identifier [ number_literal ]) + (cast_expression "(int)pppppppiVar30" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }))) (if_statement "if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }" if (parenthesized_expression "(ppiVar33 != (int **)0x0)" ( (binary_expression "ppiVar33 != (int **)0x0" identifier != (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }" { (expression_statement "pppppppiVar27 = pppppppiVar30;" (assignment_expression "pppppppiVar27 = pppppppiVar30" identifier = identifier) ;) (if_statement "if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;" if (parenthesized_expression "(((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0))" ( (binary_expression "((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)" (parenthesized_expression "((int)pppppppiVar22[0x17] < (int)pppppppiStack_100)" ( (binary_expression "(int)pppppppiVar22[0x17] < (int)pppppppiStack_100" (cast_expression "(int)pppppppiVar22[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar22[0x17]" identifier [ number_literal ])) < (cast_expression "(int)pppppppiStack_100" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)" ( (comma_expression "pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0" (assignment_expression "pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100]" identifier = (subscript_expression "pppppppiVar22[0x19][(int)pppppppiStack_100]" (subscript_expression "pppppppiVar22[0x19]" identifier [ number_literal ]) [ (cast_expression "(int)pppppppiStack_100" ( (type_descriptor "int" primitive_type) ) identifier) ])) , (binary_expression "pppppiVar8 == (int *****)0x0" identifier == (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal))) ))) )) (goto_statement "goto LAB_00020f7c;" goto statement_identifier ;)) (expression_statement "pppppppiVar3 = (int *******)(pppppiVar8 + 3);" (assignment_expression "pppppppiVar3 = (int *******)(pppppiVar8 + 3)" identifier = (cast_expression "(int *******)(pppppiVar8 + 3)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppiVar8 + 3)" ( (binary_expression "pppppiVar8 + 3" identifier + number_literal) )))) ;) (expression_statement "pppppppiVar12 = pppppppiVar28;" (assignment_expression "pppppppiVar12 = pppppppiVar28" identifier = identifier) ;) (expression_statement "iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);" (assignment_expression "iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2])" identifier = (call_expression "(*(code *)ppppiStack_104)(pppppiVar8[2])" (parenthesized_expression "(*(code *)ppppiStack_104)" ( (pointer_expression "*(code *)ppppiStack_104" * (cast_expression "(code *)ppppiStack_104" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pppppiVar8[2])" ( (subscript_expression "pppppiVar8[2]" identifier [ number_literal ]) )))) ;) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" identifier = (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ])) ;) (if_statement "if (iVar6 == 0) goto LAB_00020f7c;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00020f7c;" goto statement_identifier ;)) })) (expression_statement "uStack_f8 = 0;" (assignment_expression "uStack_f8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }" else (compound_statement "{\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }" { (expression_statement "pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);" (assignment_expression "pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3)" identifier = (cast_expression "(int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppppiVar26[5] + (int)pppppppiVar30 * 3)" ( (binary_expression "pppppppiVar26[5] + (int)pppppppiVar30 * 3" (subscript_expression "pppppppiVar26[5]" identifier [ number_literal ]) + (binary_expression "(int)pppppppiVar30 * 3" (cast_expression "(int)pppppppiVar30" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];" (assignment_expression "pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100]" identifier = (subscript_expression "pppppppiVar22[0x19][(int)pppppppiStack_100]" (subscript_expression "pppppppiVar22[0x19]" identifier [ number_literal ]) [ (cast_expression "(int)pppppppiStack_100" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) (expression_statement "iVar6 = (*(code *)ppppiStack_114)(param_3);" (assignment_expression "iVar6 = (*(code *)ppppiStack_114)(param_3)" identifier = (call_expression "(*(code *)ppppiStack_114)(param_3)" (parenthesized_expression "(*(code *)ppppiStack_114)" ( (pointer_expression "*(code *)ppppiStack_114" * (cast_expression "(code *)ppppiStack_114" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "pppppppiVar3 = pppppppiVar30;" (assignment_expression "pppppppiVar3 = pppppppiVar30" identifier = identifier) ;) (if_statement "if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }" { (labeled_statement "LAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;" statement_identifier : (expression_statement "pppppppiVar30 = pppppppiVar28;" (assignment_expression "pppppppiVar30 = pppppppiVar28" identifier = identifier) ;)) (expression_statement "ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];" (assignment_expression "ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c]" identifier = (cast_expression "(int ****)appppppiStack_138[0][-0x1f6c]" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "appppppiStack_138[0][-0x1f6c]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) ;) (goto_statement "goto LAB_000213b0;" goto statement_identifier ;) })) (expression_statement "ppppppiVar13 = pppppppiVar28[1];" (assignment_expression "ppppppiVar13 = pppppppiVar28[1]" identifier = (subscript_expression "pppppppiVar28[1]" identifier [ number_literal ])) ;) (expression_statement "pppppppiVar30 = pppppppiVar28;" (assignment_expression "pppppppiVar30 = pppppppiVar28" identifier = identifier) ;) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" identifier = (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ])) ;) (if_statement "if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;" if (parenthesized_expression "((int)ppppppiVar13 < 1)" ( (binary_expression "(int)ppppppiVar13 < 1" (cast_expression "(int)ppppppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00020f6c;" goto statement_identifier ;)) (expression_statement "ppppiVar19 = pppppiVar8[2];" (assignment_expression "ppppiVar19 = pppppiVar8[2]" identifier = (subscript_expression "pppppiVar8[2]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar4 = pppppppiVar28[2];" (assignment_expression "ppppppiVar4 = pppppppiVar28[2]" identifier = (subscript_expression "pppppppiVar28[2]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar14 = (int ******)0x0;" (assignment_expression "ppppppiVar14 = (int ******)0x0" identifier = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar27 = (int *******)0xffffffff;" (assignment_expression "pppppppiVar27 = (int *******)0xffffffff" identifier = (cast_expression "(int *******)0xffffffff" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppiVar29 = (int *******)(pppppiVar8 + 3);" (assignment_expression "pppppppiVar29 = (int *******)(pppppiVar8 + 3)" identifier = (cast_expression "(int *******)(pppppiVar8 + 3)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppiVar8 + 3)" ( (binary_expression "pppppiVar8 + 3" identifier + number_literal) )))) ;) (expression_statement "pppppppiVar26 = (int *******)0xffffffff;" (assignment_expression "pppppppiVar26 = (int *******)0xffffffff" identifier = (cast_expression "(int *******)0xffffffff" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (do_statement "do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);" do (compound_statement "{\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            }" { (expression_statement "pppppppiVar3 = pppppppiVar29;" (assignment_expression "pppppppiVar3 = pppppppiVar29" identifier = identifier) ;) (expression_statement "pppppppiVar30 = (int *******)*ppppppiVar4;" (assignment_expression "pppppppiVar30 = (int *******)*ppppppiVar4" identifier = (cast_expression "(int *******)*ppppppiVar4" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*ppppppiVar4" * identifier))) ;) (expression_statement "pppppppiVar12 = pppppppiVar30;" (assignment_expression "pppppppiVar12 = pppppppiVar30" identifier = identifier) ;) (expression_statement "pppppppiVar29 = pppppppiVar3;" (assignment_expression "pppppppiVar29 = pppppppiVar3" identifier = identifier) ;) (expression_statement "iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);" (assignment_expression "iVar6 = (*(code *)ppppiStack_104)(ppppiVar19)" identifier = (call_expression "(*(code *)ppppiStack_104)(ppppiVar19)" (parenthesized_expression "(*(code *)ppppiStack_104)" ( (pointer_expression "*(code *)ppppiStack_104" * (cast_expression "(code *)ppppiStack_104" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppppiVar19)" ( identifier )))) ;) (expression_statement "pppppppiVar28 = pppppppiVar26;" (assignment_expression "pppppppiVar28 = pppppppiVar26" identifier = identifier) ;) (if_statement "if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }" if (parenthesized_expression "((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27))" ( (binary_expression "(iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)" (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) && (parenthesized_expression "(pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)" ( (comma_expression "pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27" (assignment_expression "pppppppiVar28 = pppppppiVar30" identifier = identifier) , (binary_expression "pppppppiVar26 != pppppppiVar27" identifier != identifier)) ))) )) (compound_statement "{\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }" { (expression_statement "pppppppiVar3 = &ppppppiStack_f4;" (assignment_expression "pppppppiVar3 = &ppppppiStack_f4" identifier = (pointer_expression "&ppppppiStack_f4" & identifier)) ;) (expression_statement "pppppppiVar12 = pppppppiVar26;" (assignment_expression "pppppppiVar12 = pppppppiVar26" identifier = identifier) ;) (expression_statement "iVar6 = (*(code *)ppppiStack_104)(uStack_f8);" (assignment_expression "iVar6 = (*(code *)ppppiStack_104)(uStack_f8)" identifier = (call_expression "(*(code *)ppppiStack_104)(uStack_f8)" (parenthesized_expression "(*(code *)ppppiStack_104)" ( (pointer_expression "*(code *)ppppiStack_104" * (cast_expression "(code *)ppppiStack_104" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uStack_f8)" ( identifier )))) ;) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" identifier = (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ])) ;) (if_statement "if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;" if (parenthesized_expression "((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0))" ( (binary_expression "(iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)" (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) || (parenthesized_expression "(pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)" ( (comma_expression "pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0" (assignment_expression "pppppppiVar28 = pppppppiVar26" identifier = identifier) , (binary_expression "ppiVar33 == (int **)0x0" identifier == (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) ))) )) (break_statement "break;" break ;)) (expression_statement "pppppppiVar12 = (int *******)*ppiVar33;" (assignment_expression "pppppppiVar12 = (int *******)*ppiVar33" identifier = (cast_expression "(int *******)*ppiVar33" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*ppiVar33" * identifier))) ;) (expression_statement "pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);" (assignment_expression "pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1)" identifier = (cast_expression "(int *******)((int)pppppppiVar12 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar12 + 1)" ( (binary_expression "(int)pppppppiVar12 + 1" (cast_expression "(int)pppppppiVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*ppiVar33 = (int *)pppppppiVar3;" (assignment_expression "*ppiVar33 = (int *)pppppppiVar3" (pointer_expression "*ppiVar33" * identifier) = (cast_expression "(int *)pppppppiVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }" if (parenthesized_expression "(pppppppiVar3 == (int *******)ppiVar33[1])" ( (binary_expression "pppppppiVar3 == (int *******)ppiVar33[1]" identifier == (cast_expression "(int *******)ppiVar33[1]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "ppiVar33[1]" identifier [ number_literal ]))) )) (compound_statement "{\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }" { (expression_statement "pppppppiStack_108 = pppppppiStack_100;" (assignment_expression "pppppppiStack_108 = pppppppiStack_100" identifier = identifier) ;) (expression_statement "pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);" (assignment_expression "pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30)" identifier = (cast_expression "(int *******)((int)pppppppiVar3 * 0x30)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar3 * 0x30)" ( (binary_expression "(int)pppppppiVar3 * 0x30" (cast_expression "(int)pppppppiVar3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "pppppppiStack_10c = pppppppiVar12;" (assignment_expression "pppppppiStack_10c = pppppppiVar12" identifier = identifier) ;) (expression_statement "piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);" (assignment_expression "piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2])" identifier = (cast_expression "(int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2])" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2])" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f86])" ( (pointer_expression "*(code *)appppppiStack_138[0][-0x1f86]" * (cast_expression "(code *)appppppiStack_138[0][-0x1f86]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "appppppiStack_138[0][-0x1f86]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(ppiVar33[2])" ( (subscript_expression "ppiVar33[2]" identifier [ number_literal ]) ))))) ;) (if_statement "if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }" if (parenthesized_expression "(piVar9 != (int *)0x0)" ( (binary_expression "piVar9 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }" { (expression_statement "ppiVar33[2] = piVar9;" (assignment_expression "ppiVar33[2] = piVar9" (subscript_expression "ppiVar33[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);" (assignment_expression "ppiVar33[1] = (int *)((int)ppiVar33[1] << 1)" (subscript_expression "ppiVar33[1]" identifier [ number_literal ]) = (cast_expression "(int *)((int)ppiVar33[1] << 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar33[1] << 1)" ( (binary_expression "(int)ppiVar33[1] << 1" (cast_expression "(int)ppiVar33[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar33[1]" identifier [ number_literal ])) << number_literal) )))) ;) (expression_statement "pppppppiVar12 = pppppppiStack_10c;" (assignment_expression "pppppppiVar12 = pppppppiStack_10c" identifier = identifier) ;) (expression_statement "pppppppiVar28 = pppppppiStack_108;" (assignment_expression "pppppppiVar28 = pppppppiStack_108" identifier = identifier) ;) (goto_statement "goto LAB_000210a0;" goto statement_identifier ;) })) }) (else_clause "else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }" else (compound_statement "{\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }" { (expression_statement "piVar9 = ppiVar33[2];" (assignment_expression "piVar9 = ppiVar33[2]" identifier = (subscript_expression "ppiVar33[2]" identifier [ number_literal ])) ;) (expression_statement "pppppppiVar28 = pppppppiStack_100;" (assignment_expression "pppppppiVar28 = pppppppiStack_100" identifier = identifier) ;) (labeled_statement "LAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];" statement_identifier : (expression_statement "ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];" (assignment_expression "ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87]" identifier = (cast_expression "(int ****)appppppiStack_138[0][-0x1f87]" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "appppppiStack_138[0][-0x1f87]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) ;)) (expression_statement "pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);" (assignment_expression "pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6)" identifier = (cast_expression "(int *******)(piVar9 + (int)pppppppiVar12 * 6)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(piVar9 + (int)pppppppiVar12 * 6)" ( (binary_expression "piVar9 + (int)pppppppiVar12 * 6" identifier + (binary_expression "(int)pppppppiVar12 * 6" (cast_expression "(int)pppppppiVar12" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "*pppppppiStack_108 = (int ******)pppppppiVar28;" (assignment_expression "*pppppppiStack_108 = (int ******)pppppppiVar28" (pointer_expression "*pppppppiStack_108" * identifier) = (cast_expression "(int ******)pppppppiVar28" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "pppppppiStack_108[1] = (int ******)pppppppiVar30;" (assignment_expression "pppppppiStack_108[1] = (int ******)pppppppiVar30" (subscript_expression "pppppppiStack_108[1]" identifier [ number_literal ]) = (cast_expression "(int ******)pppppppiVar30" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);" (assignment_expression "ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c)" identifier = (cast_expression "(int ******)(*(code *)ppppiVar19)(pppppppiStack_11c)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(*(code *)ppppiVar19)(pppppppiStack_11c)" (parenthesized_expression "(*(code *)ppppiVar19)" ( (pointer_expression "*(code *)ppppiVar19" * (cast_expression "(code *)ppppiVar19" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pppppppiStack_11c)" ( identifier ))))) ;) (expression_statement "pppppppiStack_108[2] = ppppppiVar32;" (assignment_expression "pppppppiStack_108[2] = ppppppiVar32" (subscript_expression "pppppppiStack_108[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppiVar25 = pppppppiStack_108;" (assignment_expression "pppppppiVar25 = pppppppiStack_108" identifier = identifier) ;) (if_statement "if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }" if (parenthesized_expression "(ppppppiVar32 != (int ******)0x0)" ( (binary_expression "ppppppiVar32 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }" { (expression_statement "pppppppiVar12 = pppppppiStack_11c;" (assignment_expression "pppppppiVar12 = pppppppiStack_11c" identifier = identifier) ;) (expression_statement "(*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);" (call_expression "(*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7)" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f6e])" ( (pointer_expression "*(code *)appppppiStack_138[0][-0x1f6e]" * (cast_expression "(code *)appppppiStack_138[0][-0x1f6e]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "appppppiStack_138[0][-0x1f6e]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(ppppppiVar32,pppppppiVar7)" ( identifier , identifier ))) ;) (expression_statement "pppppppiVar3 = param_3;" (assignment_expression "pppppppiVar3 = param_3" identifier = identifier) ;) (expression_statement "pppppppiVar25 = pppppppiStack_108;" (assignment_expression "pppppppiVar25 = pppppppiStack_108" identifier = identifier) ;) (expression_statement "iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);" (assignment_expression "iVar6 = FUN_0001ba80(pppppppiStack_108 + 3)" identifier = (call_expression "FUN_0001ba80(pppppppiStack_108 + 3)" identifier (argument_list "(pppppppiStack_108 + 3)" ( (binary_expression "pppppppiStack_108 + 3" identifier + number_literal) )))) ;) (expression_statement "pppppppiVar28 = pppppppiVar26;" (assignment_expression "pppppppiVar28 = pppppppiVar26" identifier = identifier) ;) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" identifier = (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ])) ;) (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) })) }))) (expression_statement "(*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);" (call_expression "(*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4)" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f6c])" ( (pointer_expression "*(code *)appppppiStack_138[0][-0x1f6c]" * (cast_expression "(code *)appppppiStack_138[0][-0x1f6c]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "appppppiStack_138[0][-0x1f6c]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(ppppppiStack_f4)" ( identifier ))) ;) (if_statement "if (iStack_128 != 0) goto LAB_000214d4;" if (parenthesized_expression "(iStack_128 != 0)" ( (binary_expression "iStack_128 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000214d4;" goto statement_identifier ;)) (goto_statement "goto LAB_0002112c;" goto statement_identifier ;) })) (expression_statement "ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);" (assignment_expression "ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1)" identifier = (cast_expression "(int ******)((int)ppppppiVar14 + 1)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)ppppppiVar14 + 1)" ( (binary_expression "(int)ppppppiVar14 + 1" (cast_expression "(int)ppppppiVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ppppppiVar4 = ppppppiVar4 + 1;" (assignment_expression "ppppppiVar4 = ppppppiVar4 + 1" identifier = (binary_expression "ppppppiVar4 + 1" identifier + number_literal)) ;) (expression_statement "pppppppiVar26 = pppppppiVar28;" (assignment_expression "pppppppiVar26 = pppppppiVar28" identifier = identifier) ;) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" identifier = (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(ppppppiVar13 != ppppppiVar14)" ( (binary_expression "ppppppiVar13 != ppppppiVar14" identifier != identifier) )) ;) }))) (labeled_statement "LAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;" statement_identifier : (if_statement "if ((int)pppppppiVar28 < 0) goto LAB_00020f60;" if (parenthesized_expression "((int)pppppppiVar28 < 0)" ( (binary_expression "(int)pppppppiVar28 < 0" (cast_expression "(int)pppppppiVar28" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00020f60;" goto statement_identifier ;))) (expression_statement "pppppppiVar29 = (int *******)pppppppiVar7[1];" (assignment_expression "pppppppiVar29 = (int *******)pppppppiVar7[1]" identifier = (cast_expression "(int *******)pppppppiVar7[1]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar7[1]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];" (assignment_expression "ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c]" identifier = (subscript_expression "((int *****)ppppppiVar32)[-0x1f6c]" (parenthesized_expression "((int *****)ppppppiVar32)" ( (cast_expression "(int *****)ppppppiVar32" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ])) ;) (if_statement "if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;" if (parenthesized_expression "((int)pppppppiVar29 < (int)pppppppiStack_100)" ( (binary_expression "(int)pppppppiVar29 < (int)pppppppiStack_100" (cast_expression "(int)pppppppiVar29" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppppiStack_100" ( (type_descriptor "int" primitive_type) ) identifier)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "pppppppiVar25 = pppppppiStack_100;" (assignment_expression "pppppppiVar25 = pppppppiStack_100" identifier = identifier) ;) (expression_statement "(*(code *)ppppiVar19)(ppppppiStack_f4);" (call_expression "(*(code *)ppppiVar19)(ppppppiStack_f4)" (parenthesized_expression "(*(code *)ppppiVar19)" ( (pointer_expression "*(code *)ppppiVar19" * (cast_expression "(code *)ppppiVar19" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppppppiStack_f4)" ( identifier ))) ;) (if_statement "if (iStack_128 == 0) {\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }\n      else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }" if (parenthesized_expression "(iStack_128 == 0)" ( (binary_expression "iStack_128 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (if_statement "if (ppiVar33 == (int **)0x0) goto LAB_00020f18;" if (parenthesized_expression "(ppiVar33 == (int **)0x0)" ( (binary_expression "ppiVar33 == (int **)0x0" identifier == (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_00020f18;" goto statement_identifier ;)) }) (else_clause "else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }" else (compound_statement "{\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }" { (expression_statement "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);" (call_expression "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124)" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f6c])" ( (pointer_expression "*(code *)appppppiStack_138[0][-0x1f6c]" * (cast_expression "(code *)appppppiStack_138[0][-0x1f6c]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "appppppiStack_138[0][-0x1f6c]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(pppppppiStack_124)" ( identifier ))) ;) (if_statement "if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }" if (parenthesized_expression "(ppiVar33 == (int **)0x0)" ( (binary_expression "ppiVar33 == (int **)0x0" identifier == (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00020f18;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00020f00:\n      FUN_0001ec78(ppiVar33);" statement_identifier : (expression_statement "FUN_0001ec78(ppiVar33);" (call_expression "FUN_0001ec78(ppiVar33)" identifier (argument_list "(ppiVar33)" ( identifier ))) ;)) (labeled_statement "LAB_00020f14:\n      uVar10 = 0;" statement_identifier : (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_00020f18;" goto statement_identifier ;) })) }))) (expression_statement "uVar10 = 0xc;" (assignment_expression "uVar10 = 0xc" identifier = number_literal) ;) (expression_statement "puVar38 = puVar39;" (assignment_expression "puVar38 = puVar39" identifier = identifier) ;) (labeled_statement "LAB_00020f18:\n  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f77];" statement_identifier : (expression_statement "ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f77];" (assignment_expression "ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f77]" identifier = (cast_expression "(int ****)appppppiStack_138[0][-0x1f77]" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "appppppiStack_138[0][-0x1f77]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) ;)) (if_statement "if (iStack_e4 == *piStack_12c) {\n    return uVar10;\n  }" if (parenthesized_expression "(iStack_e4 == *piStack_12c)" ( (binary_expression "iStack_e4 == *piStack_12c" identifier == (pointer_expression "*piStack_12c" * identifier)) )) (compound_statement "{\n    return uVar10;\n  }" { (return_statement "return uVar10;" return identifier ;) })) (expression_statement "pcVar15 = FUN_00021550;" (assignment_expression "pcVar15 = FUN_00021550" identifier = identifier) ;) (expression_statement "iVar6 = iStack_e4;" (assignment_expression "iVar6 = iStack_e4" identifier = identifier) ;) (expression_statement "(*(code *)ppppiVar19)();" (call_expression "(*(code *)ppppiVar19)()" (parenthesized_expression "(*(code *)ppppiVar19)" ( (pointer_expression "*(code *)ppppiVar19" * (cast_expression "(code *)ppppiVar19" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "*(int ********)(puVar38 + -0x18) = pppppppiVar30;" (assignment_expression "*(int ********)(puVar38 + -0x18) = pppppppiVar30" (pointer_expression "*(int ********)(puVar38 + -0x18)" * (cast_expression "(int ********)(puVar38 + -0x18)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(puVar38 + -0x18)" ( (binary_expression "puVar38 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int ********)(puVar38 + -0x14) = param_3;" (assignment_expression "*(int ********)(puVar38 + -0x14) = param_3" (pointer_expression "*(int ********)(puVar38 + -0x14)" * (cast_expression "(int ********)(puVar38 + -0x14)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(puVar38 + -0x14)" ( (binary_expression "puVar38 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int ********)(puVar38 + -0x1c) = pppppppiVar7;" (assignment_expression "*(int ********)(puVar38 + -0x1c) = pppppppiVar7" (pointer_expression "*(int ********)(puVar38 + -0x1c)" * (cast_expression "(int ********)(puVar38 + -0x1c)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(puVar38 + -0x1c)" ( (binary_expression "puVar38 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int ********)(puVar38 + -0x10) = pppppppiVar23;" (assignment_expression "*(int ********)(puVar38 + -0x10) = pppppppiVar23" (pointer_expression "*(int ********)(puVar38 + -0x10)" * (cast_expression "(int ********)(puVar38 + -0x10)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(puVar38 + -0x10)" ( (binary_expression "puVar38 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *****)(puVar38 + -0x28) = ppppiVar19 + 0x8ae0;" (assignment_expression "*(int *****)(puVar38 + -0x28) = ppppiVar19 + 0x8ae0" (pointer_expression "*(int *****)(puVar38 + -0x28)" * (cast_expression "(int *****)(puVar38 + -0x28)" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar38 + -0x28)" ( (binary_expression "puVar38 + -0x28" identifier + number_literal) )))) = (binary_expression "ppppiVar19 + 0x8ae0" identifier + number_literal)) ;) (expression_statement "*(int ********)(puVar38 + -0x20) = pppppppiVar22;" (assignment_expression "*(int ********)(puVar38 + -0x20) = pppppppiVar22" (pointer_expression "*(int ********)(puVar38 + -0x20)" * (cast_expression "(int ********)(puVar38 + -0x20)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(puVar38 + -0x20)" ( (binary_expression "puVar38 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar38 + -4) = pcVar15;" (assignment_expression "*(code **)(puVar38 + -4) = pcVar15" (pointer_expression "*(code **)(puVar38 + -4)" * (cast_expression "(code **)(puVar38 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + -4)" ( (binary_expression "puVar38 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar38 + -8) = piVar34;" (assignment_expression "*(int **)(puVar38 + -8) = piVar34" (pointer_expression "*(int **)(puVar38 + -8)" * (cast_expression "(int **)(puVar38 + -8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + -8)" ( (binary_expression "puVar38 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int ***)(puVar38 + -0xc) = ppiVar33;" (assignment_expression "*(int ***)(puVar38 + -0xc) = ppiVar33" (pointer_expression "*(int ***)(puVar38 + -0xc)" * (cast_expression "(int ***)(puVar38 + -0xc)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar38 + -0xc)" ( (binary_expression "puVar38 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar31 = *(int *)(puVar38 + 0x10);" (assignment_expression "iVar31 = *(int *)(puVar38 + 0x10)" identifier = (pointer_expression "*(int *)(puVar38 + 0x10)" * (cast_expression "(int *)(puVar38 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x10)" ( (binary_expression "puVar38 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar38 + -0x30) = 8;" (assignment_expression "*(undefined4 *)(puVar38 + -0x30) = 8" (pointer_expression "*(undefined4 *)(puVar38 + -0x30)" * (cast_expression "(undefined4 *)(puVar38 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x30)" ( (binary_expression "puVar38 + -0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar38 + -0x34) = iVar31;" (assignment_expression "*(int *)(puVar38 + -0x34) = iVar31" (pointer_expression "*(int *)(puVar38 + -0x34)" * (cast_expression "(int *)(puVar38 + -0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x34)" ( (binary_expression "puVar38 + -0x34" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int ********)(puVar38 + -0x38) = pppppppiVar25;" (assignment_expression "*(int ********)(puVar38 + -0x38) = pppppppiVar25" (pointer_expression "*(int ********)(puVar38 + -0x38)" * (cast_expression "(int ********)(puVar38 + -0x38)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(puVar38 + -0x38)" ( (binary_expression "puVar38 + -0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar10 = FUN_00020550();" (assignment_expression "uVar10 = FUN_00020550()" identifier = (call_expression "FUN_00020550()" identifier (argument_list "()" ( )))) ;) (if_statement "if (uVar10 != 0) {\n    return uVar10;\n  }" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (compound_statement "{\n    return uVar10;\n  }" { (return_statement "return uVar10;" return identifier ;) })) (expression_statement "iVar11 = *(int *)(iVar6 + 0x6c);" (assignment_expression "iVar11 = *(int *)(iVar6 + 0x6c)" identifier = (pointer_expression "*(int *)(iVar6 + 0x6c)" * (cast_expression "(int *)(iVar6 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x6c)" ( (binary_expression "iVar6 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "ppppppiVar14 = *pppppppiVar3;" (assignment_expression "ppppppiVar14 = *pppppppiVar3" identifier = (pointer_expression "*pppppppiVar3" * identifier)) ;) (expression_statement "ppppppiVar13 = pppppppiVar12[1];" (assignment_expression "ppppppiVar13 = pppppppiVar12[1]" identifier = (subscript_expression "pppppppiVar12[1]" identifier [ number_literal ])) ;) (expression_statement "iVar20 = *(int *)(iVar6 + 0x74);" (assignment_expression "iVar20 = *(int *)(iVar6 + 0x74)" identifier = (pointer_expression "*(int *)(iVar6 + 0x74)" * (cast_expression "(int *)(iVar6 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x74)" ( (binary_expression "iVar6 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "ppppppiVar32 = ppppppiVar13;" (assignment_expression "ppppppiVar32 = ppppppiVar13" identifier = identifier) ;) (if_statement "if (*(int *)(iVar6 + 0x70) <= iVar11) {\n    iVar11 = (**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))\n                       (iVar20,*(int *)(iVar6 + 0x70) * 0x28);\n    if (iVar11 == 0) {\n      (**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74));\n      return 0xc;\n    }\n    pcVar15 = *(code **)(*(int *)(puVar38 + -0x28) + -0x7e40);\n    *(int *)(iVar6 + 0x74) = iVar11;\n    (*pcVar15)(iVar11 + *(int *)(iVar6 + 0x6c) * 0x14,0,*(int *)(iVar6 + 0x70) * 0x14);\n    ppppppiVar32 = pppppppiVar12[1];\n    iVar11 = *(int *)(iVar6 + 0x6c);\n    iVar20 = *(int *)(iVar6 + 0x74);\n    *(int *)(iVar6 + 0x70) = *(int *)(iVar6 + 0x70) << 1;\n  }" if (parenthesized_expression "(*(int *)(iVar6 + 0x70) <= iVar11)" ( (binary_expression "*(int *)(iVar6 + 0x70) <= iVar11" (pointer_expression "*(int *)(iVar6 + 0x70)" * (cast_expression "(int *)(iVar6 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x70)" ( (binary_expression "iVar6 + 0x70" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n    iVar11 = (**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))\n                       (iVar20,*(int *)(iVar6 + 0x70) * 0x28);\n    if (iVar11 == 0) {\n      (**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74));\n      return 0xc;\n    }\n    pcVar15 = *(code **)(*(int *)(puVar38 + -0x28) + -0x7e40);\n    *(int *)(iVar6 + 0x74) = iVar11;\n    (*pcVar15)(iVar11 + *(int *)(iVar6 + 0x6c) * 0x14,0,*(int *)(iVar6 + 0x70) * 0x14);\n    ppppppiVar32 = pppppppiVar12[1];\n    iVar11 = *(int *)(iVar6 + 0x6c);\n    iVar20 = *(int *)(iVar6 + 0x74);\n    *(int *)(iVar6 + 0x70) = *(int *)(iVar6 + 0x70) << 1;\n  }" { (expression_statement "iVar11 = (**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))\n                       (iVar20,*(int *)(iVar6 + 0x70) * 0x28);" (assignment_expression "iVar11 = (**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))\n                       (iVar20,*(int *)(iVar6 + 0x70) * 0x28)" identifier = (call_expression "(**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))\n                       (iVar20,*(int *)(iVar6 + 0x70) * 0x28)" (parenthesized_expression "(**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))" ( (pointer_expression "**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18)" * (pointer_expression "*(code **)(*(int *)(puVar38 + -0x28) + -0x7e18)" * (cast_expression "(code **)(*(int *)(puVar38 + -0x28) + -0x7e18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar38 + -0x28) + -0x7e18)" ( (binary_expression "*(int *)(puVar38 + -0x28) + -0x7e18" (pointer_expression "*(int *)(puVar38 + -0x28)" * (cast_expression "(int *)(puVar38 + -0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x28)" ( (binary_expression "puVar38 + -0x28" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar20,*(int *)(iVar6 + 0x70) * 0x28)" ( identifier , (binary_expression "*(int *)(iVar6 + 0x70) * 0x28" (pointer_expression "*(int *)(iVar6 + 0x70)" * (cast_expression "(int *)(iVar6 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x70)" ( (binary_expression "iVar6 + 0x70" identifier + number_literal) )))) * number_literal) )))) ;) (if_statement "if (iVar11 == 0) {\n      (**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74));\n      return 0xc;\n    }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n      (**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74));\n      return 0xc;\n    }" { (expression_statement "(**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74));" (call_expression "(**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74))" (parenthesized_expression "(**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))" ( (pointer_expression "**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0)" * (pointer_expression "*(code **)(*(int *)(puVar38 + -0x28) + -0x7db0)" * (cast_expression "(code **)(*(int *)(puVar38 + -0x28) + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar38 + -0x28) + -0x7db0)" ( (binary_expression "*(int *)(puVar38 + -0x28) + -0x7db0" (pointer_expression "*(int *)(puVar38 + -0x28)" * (cast_expression "(int *)(puVar38 + -0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x28)" ( (binary_expression "puVar38 + -0x28" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x74))" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x74)" * (cast_expression "(undefined4 *)(iVar6 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x74)" ( (binary_expression "iVar6 + 0x74" identifier + number_literal) )))) ))) ;) (return_statement "return 0xc;" return number_literal ;) })) (expression_statement "pcVar15 = *(code **)(*(int *)(puVar38 + -0x28) + -0x7e40);" (assignment_expression "pcVar15 = *(code **)(*(int *)(puVar38 + -0x28) + -0x7e40)" identifier = (pointer_expression "*(code **)(*(int *)(puVar38 + -0x28) + -0x7e40)" * (cast_expression "(code **)(*(int *)(puVar38 + -0x28) + -0x7e40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar38 + -0x28) + -0x7e40)" ( (binary_expression "*(int *)(puVar38 + -0x28) + -0x7e40" (pointer_expression "*(int *)(puVar38 + -0x28)" * (cast_expression "(int *)(puVar38 + -0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x28)" ( (binary_expression "puVar38 + -0x28" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(int *)(iVar6 + 0x74) = iVar11;" (assignment_expression "*(int *)(iVar6 + 0x74) = iVar11" (pointer_expression "*(int *)(iVar6 + 0x74)" * (cast_expression "(int *)(iVar6 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x74)" ( (binary_expression "iVar6 + 0x74" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar15)(iVar11 + *(int *)(iVar6 + 0x6c) * 0x14,0,*(int *)(iVar6 + 0x70) * 0x14);" (call_expression "(*pcVar15)(iVar11 + *(int *)(iVar6 + 0x6c) * 0x14,0,*(int *)(iVar6 + 0x70) * 0x14)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(iVar11 + *(int *)(iVar6 + 0x6c) * 0x14,0,*(int *)(iVar6 + 0x70) * 0x14)" ( (binary_expression "iVar11 + *(int *)(iVar6 + 0x6c) * 0x14" identifier + (binary_expression "*(int *)(iVar6 + 0x6c) * 0x14" (pointer_expression "*(int *)(iVar6 + 0x6c)" * (cast_expression "(int *)(iVar6 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x6c)" ( (binary_expression "iVar6 + 0x6c" identifier + number_literal) )))) * number_literal)) , number_literal , (binary_expression "*(int *)(iVar6 + 0x70) * 0x14" (pointer_expression "*(int *)(iVar6 + 0x70)" * (cast_expression "(int *)(iVar6 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x70)" ( (binary_expression "iVar6 + 0x70" identifier + number_literal) )))) * number_literal) ))) ;) (expression_statement "ppppppiVar32 = pppppppiVar12[1];" (assignment_expression "ppppppiVar32 = pppppppiVar12[1]" identifier = (subscript_expression "pppppppiVar12[1]" identifier [ number_literal ])) ;) (expression_statement "iVar11 = *(int *)(iVar6 + 0x6c);" (assignment_expression "iVar11 = *(int *)(iVar6 + 0x6c)" identifier = (pointer_expression "*(int *)(iVar6 + 0x6c)" * (cast_expression "(int *)(iVar6 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x6c)" ( (binary_expression "iVar6 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = *(int *)(iVar6 + 0x74);" (assignment_expression "iVar20 = *(int *)(iVar6 + 0x74)" identifier = (pointer_expression "*(int *)(iVar6 + 0x74)" * (cast_expression "(int *)(iVar6 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x74)" ( (binary_expression "iVar6 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar6 + 0x70) = *(int *)(iVar6 + 0x70) << 1;" (assignment_expression "*(int *)(iVar6 + 0x70) = *(int *)(iVar6 + 0x70) << 1" (pointer_expression "*(int *)(iVar6 + 0x70)" * (cast_expression "(int *)(iVar6 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x70)" ( (binary_expression "iVar6 + 0x70" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar6 + 0x70) << 1" (pointer_expression "*(int *)(iVar6 + 0x70)" * (cast_expression "(int *)(iVar6 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x70)" ( (binary_expression "iVar6 + 0x70" identifier + number_literal) )))) << number_literal)) ;) })) (if_statement "if ((0 < iVar11) && (iVar24 = iVar20 + iVar11 * 0x14 + -0x14, iVar31 == *(int *)(iVar24 + 4))) {\n    *(undefined1 *)(iVar24 + 0x10) = 1;\n  }" if (parenthesized_expression "((0 < iVar11) && (iVar24 = iVar20 + iVar11 * 0x14 + -0x14, iVar31 == *(int *)(iVar24 + 4)))" ( (binary_expression "(0 < iVar11) && (iVar24 = iVar20 + iVar11 * 0x14 + -0x14, iVar31 == *(int *)(iVar24 + 4))" (parenthesized_expression "(0 < iVar11)" ( (binary_expression "0 < iVar11" number_literal < identifier) )) && (parenthesized_expression "(iVar24 = iVar20 + iVar11 * 0x14 + -0x14, iVar31 == *(int *)(iVar24 + 4))" ( (comma_expression "iVar24 = iVar20 + iVar11 * 0x14 + -0x14, iVar31 == *(int *)(iVar24 + 4)" (assignment_expression "iVar24 = iVar20 + iVar11 * 0x14 + -0x14" identifier = (binary_expression "iVar20 + iVar11 * 0x14 + -0x14" (binary_expression "iVar20 + iVar11 * 0x14" identifier + (binary_expression "iVar11 * 0x14" identifier * number_literal)) + number_literal)) , (binary_expression "iVar31 == *(int *)(iVar24 + 4)" identifier == (pointer_expression "*(int *)(iVar24 + 4)" * (cast_expression "(int *)(iVar24 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 4)" ( (binary_expression "iVar24 + 4" identifier + number_literal) )))))) ))) )) (compound_statement "{\n    *(undefined1 *)(iVar24 + 0x10) = 1;\n  }" { (expression_statement "*(undefined1 *)(iVar24 + 0x10) = 1;" (assignment_expression "*(undefined1 *)(iVar24 + 0x10) = 1" (pointer_expression "*(undefined1 *)(iVar24 + 0x10)" * (cast_expression "(undefined1 *)(iVar24 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x10)" ( (binary_expression "iVar24 + 0x10" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "puVar21 = (undefined4 *)(iVar20 + iVar11 * 0x14);" (assignment_expression "puVar21 = (undefined4 *)(iVar20 + iVar11 * 0x14)" identifier = (cast_expression "(undefined4 *)(iVar20 + iVar11 * 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + iVar11 * 0x14)" ( (binary_expression "iVar20 + iVar11 * 0x14" identifier + (binary_expression "iVar11 * 0x14" identifier * number_literal)) )))) ;) (expression_statement "*puVar21 = pppppppiVar25;" (assignment_expression "*puVar21 = pppppppiVar25" (pointer_expression "*puVar21" * identifier) = identifier) ;) (expression_statement "puVar21[1] = iVar31;" (assignment_expression "puVar21[1] = iVar31" (subscript_expression "puVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[2] = ppppppiVar14;" (assignment_expression "puVar21[2] = ppppppiVar14" (subscript_expression "puVar21[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[3] = ppppppiVar13;" (assignment_expression "puVar21[3] = ppppppiVar13" (subscript_expression "puVar21[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(ushort *)((int)puVar21 + 0x12) = -(ushort)(ppppppiVar14 == ppppppiVar13);" (assignment_expression "*(ushort *)((int)puVar21 + 0x12) = -(ushort)(ppppppiVar14 == ppppppiVar13)" (pointer_expression "*(ushort *)((int)puVar21 + 0x12)" * (cast_expression "(ushort *)((int)puVar21 + 0x12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar21 + 0x12)" ( (binary_expression "(int)puVar21 + 0x12" (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (unary_expression "-(ushort)(ppppppiVar14 == ppppppiVar13)" - (call_expression "(ushort)(ppppppiVar14 == ppppppiVar13)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(ppppppiVar14 == ppppppiVar13)" ( (binary_expression "ppppppiVar14 == ppppppiVar13" identifier == identifier) ))))) ;) (expression_statement "*(int *)(iVar6 + 0x6c) = iVar11 + 1;" (assignment_expression "*(int *)(iVar6 + 0x6c) = iVar11 + 1" (pointer_expression "*(int *)(iVar6 + 0x6c)" * (cast_expression "(int *)(iVar6 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x6c)" ( (binary_expression "iVar6 + 0x6c" identifier + number_literal) )))) = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(puVar21 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar21 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar21 + 4)" * (cast_expression "(undefined1 *)(puVar21 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 4)" ( (binary_expression "puVar21 + 4" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(int *)(iVar6 + 0x78) < (int)ppppppiVar13 - (int)ppppppiVar14) {\n    *(int *)(iVar6 + 0x78) = (int)ppppppiVar13 - (int)ppppppiVar14;\n  }" if (parenthesized_expression "(*(int *)(iVar6 + 0x78) < (int)ppppppiVar13 - (int)ppppppiVar14)" ( (binary_expression "*(int *)(iVar6 + 0x78) < (int)ppppppiVar13 - (int)ppppppiVar14" (pointer_expression "*(int *)(iVar6 + 0x78)" * (cast_expression "(int *)(iVar6 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x78)" ( (binary_expression "iVar6 + 0x78" identifier + number_literal) )))) < (binary_expression "(int)ppppppiVar13 - (int)ppppppiVar14" (cast_expression "(int)ppppppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppppppiVar14" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n    *(int *)(iVar6 + 0x78) = (int)ppppppiVar13 - (int)ppppppiVar14;\n  }" { (expression_statement "*(int *)(iVar6 + 0x78) = (int)ppppppiVar13 - (int)ppppppiVar14;" (assignment_expression "*(int *)(iVar6 + 0x78) = (int)ppppppiVar13 - (int)ppppppiVar14" (pointer_expression "*(int *)(iVar6 + 0x78)" * (cast_expression "(int *)(iVar6 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x78)" ( (binary_expression "iVar6 + 0x78" identifier + number_literal) )))) = (binary_expression "(int)ppppppiVar13 - (int)ppppppiVar14" (cast_expression "(int)ppppppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppppppiVar14" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (expression_statement "uVar10 = FUN_00019470(iVar6,(int)ppppppiVar32 + (iVar31 - (int)*pppppppiVar3));" (assignment_expression "uVar10 = FUN_00019470(iVar6,(int)ppppppiVar32 + (iVar31 - (int)*pppppppiVar3))" identifier = (call_expression "FUN_00019470(iVar6,(int)ppppppiVar32 + (iVar31 - (int)*pppppppiVar3))" identifier (argument_list "(iVar6,(int)ppppppiVar32 + (iVar31 - (int)*pppppppiVar3))" ( identifier , (binary_expression "(int)ppppppiVar32 + (iVar31 - (int)*pppppppiVar3)" (cast_expression "(int)ppppppiVar32" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(iVar31 - (int)*pppppppiVar3)" ( (binary_expression "iVar31 - (int)*pppppppiVar3" identifier - (cast_expression "(int)*pppppppiVar3" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppppppiVar3" * identifier))) ))) )))) ;) (return_statement "return uVar10;" return identifier ;) (labeled_statement "LAB_00020f60:\n  ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];" statement_identifier : (expression_statement "ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];" (assignment_expression "ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c]" identifier = (subscript_expression "((int *****)ppppppiVar32)[-0x1f6c]" (parenthesized_expression "((int *****)ppppppiVar32)" ( (cast_expression "(int *****)ppppppiVar32" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ])) ;)) (expression_statement "pppppppiVar25 = pppppppiStack_100;" (assignment_expression "pppppppiVar25 = pppppppiStack_100" identifier = identifier) ;) (if_statement "if (pppppppiVar28 == (int *******)&SUB_fffffffe) {\nLAB_000213b0:\n    (*(code *)ppppiVar19)(ppppppiStack_f4);\n    if (iStack_128 != 0) {\nLAB_000214d4:\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n    }\n    if (ppiVar33 != (int **)0x0) goto LAB_0002112c;\n    uVar10 = 0xc;\n    goto LAB_00020f18;\n  }" if (parenthesized_expression "(pppppppiVar28 == (int *******)&SUB_fffffffe)" ( (binary_expression "pppppppiVar28 == (int *******)&SUB_fffffffe" identifier == (cast_expression "(int *******)&SUB_fffffffe" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&SUB_fffffffe" & identifier))) )) (compound_statement "{\nLAB_000213b0:\n    (*(code *)ppppiVar19)(ppppppiStack_f4);\n    if (iStack_128 != 0) {\nLAB_000214d4:\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n    }\n    if (ppiVar33 != (int **)0x0) goto LAB_0002112c;\n    uVar10 = 0xc;\n    goto LAB_00020f18;\n  }" { (labeled_statement "LAB_000213b0:\n    (*(code *)ppppiVar19)(ppppppiStack_f4);" statement_identifier : (expression_statement "(*(code *)ppppiVar19)(ppppppiStack_f4);" (call_expression "(*(code *)ppppiVar19)(ppppppiStack_f4)" (parenthesized_expression "(*(code *)ppppiVar19)" ( (pointer_expression "*(code *)ppppiVar19" * (cast_expression "(code *)ppppiVar19" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppppppiStack_f4)" ( identifier ))) ;)) (if_statement "if (iStack_128 != 0) {\nLAB_000214d4:\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n    }" if (parenthesized_expression "(iStack_128 != 0)" ( (binary_expression "iStack_128 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000214d4:\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n    }" { (labeled_statement "LAB_000214d4:\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);" statement_identifier : (expression_statement "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);" (call_expression "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124)" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f6c])" ( (pointer_expression "*(code *)appppppiStack_138[0][-0x1f6c]" * (cast_expression "(code *)appppppiStack_138[0][-0x1f6c]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "appppppiStack_138[0][-0x1f6c]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(pppppppiStack_124)" ( identifier ))) ;)) })) (if_statement "if (ppiVar33 != (int **)0x0) goto LAB_0002112c;" if (parenthesized_expression "(ppiVar33 != (int **)0x0)" ( (binary_expression "ppiVar33 != (int **)0x0" identifier != (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_0002112c;" goto statement_identifier ;)) (expression_statement "uVar10 = 0xc;" (assignment_expression "uVar10 = 0xc" identifier = number_literal) ;) (goto_statement "goto LAB_00020f18;" goto statement_identifier ;) })) (labeled_statement "LAB_00020f6c:\n  pppppppiVar27 = pppppppiVar30;" statement_identifier : (expression_statement "pppppppiVar27 = pppppppiVar30;" (assignment_expression "pppppppiVar27 = pppppppiVar30" identifier = identifier) ;)) (if_statement "if (ppiVar33 == (int **)0x0) {\n    (*(code *)((int *****)ppppppiVar32)[-0x1f6c])(ppppppiStack_f4);\n    if (iStack_128 == 0) {\n      uVar10 = 1;\n    }\n    else {\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n      uVar10 = 1;\n    }\n    goto LAB_00020f18;\n  }" if (parenthesized_expression "(ppiVar33 == (int **)0x0)" ( (binary_expression "ppiVar33 == (int **)0x0" identifier == (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n    (*(code *)((int *****)ppppppiVar32)[-0x1f6c])(ppppppiStack_f4);\n    if (iStack_128 == 0) {\n      uVar10 = 1;\n    }\n    else {\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n      uVar10 = 1;\n    }\n    goto LAB_00020f18;\n  }" { (expression_statement "(*(code *)((int *****)ppppppiVar32)[-0x1f6c])(ppppppiStack_f4);" (call_expression "(*(code *)((int *****)ppppppiVar32)[-0x1f6c])(ppppppiStack_f4)" (parenthesized_expression "(*(code *)((int *****)ppppppiVar32)[-0x1f6c])" ( (pointer_expression "*(code *)((int *****)ppppppiVar32)[-0x1f6c]" * (cast_expression "(code *)((int *****)ppppppiVar32)[-0x1f6c]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "((int *****)ppppppiVar32)[-0x1f6c]" (parenthesized_expression "((int *****)ppppppiVar32)" ( (cast_expression "(int *****)ppppppiVar32" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]))) )) (argument_list "(ppppppiStack_f4)" ( identifier ))) ;) (if_statement "if (iStack_128 == 0) {\n      uVar10 = 1;\n    }\n    else {\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n      uVar10 = 1;\n    }" if (parenthesized_expression "(iStack_128 == 0)" ( (binary_expression "iStack_128 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar10 = 1;\n    }" { (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n      uVar10 = 1;\n    }" else (compound_statement "{\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n      uVar10 = 1;\n    }" { (expression_statement "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);" (call_expression "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124)" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f6c])" ( (pointer_expression "*(code *)appppppiStack_138[0][-0x1f6c]" * (cast_expression "(code *)appppppiStack_138[0][-0x1f6c]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "appppppiStack_138[0][-0x1f6c]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(pppppppiStack_124)" ( identifier ))) ;) (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) }))) (goto_statement "goto LAB_00020f18;" goto statement_identifier ;) })) (labeled_statement "LAB_00020f7c:\n  ppppiVar19 = ppppiStack_120;" statement_identifier : (expression_statement "ppppiVar19 = ppppiStack_120;" (assignment_expression "ppppiVar19 = ppppiStack_120" identifier = identifier) ;)) (expression_statement "pppppppiVar12 = (int *******)&pppppppiStack_100;" (assignment_expression "pppppppiVar12 = (int *******)&pppppppiStack_100" identifier = (cast_expression "(int *******)&pppppppiStack_100" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&pppppppiStack_100" & identifier))) ;) (expression_statement "pppppppiVar3 = (int *******)(ppiVar33 + 2);" (assignment_expression "pppppppiVar3 = (int *******)(ppiVar33 + 2)" identifier = (cast_expression "(int *******)(ppiVar33 + 2)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(ppiVar33 + 2)" ( (binary_expression "ppiVar33 + 2" identifier + number_literal) )))) ;) (expression_statement "*(int ********)(puVar37 + 0x14) = param_3;" (assignment_expression "*(int ********)(puVar37 + 0x14) = param_3" (pointer_expression "*(int ********)(puVar37 + 0x14)" * (cast_expression "(int ********)(puVar37 + 0x14)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(puVar37 + 0x14)" ( (binary_expression "puVar37 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int ********)(puVar37 + 0x10) = pppppppiVar7;" (assignment_expression "*(int ********)(puVar37 + 0x10) = pppppppiVar7" (pointer_expression "*(int ********)(puVar37 + 0x10)" * (cast_expression "(int ********)(puVar37 + 0x10)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(puVar37 + 0x10)" ( (binary_expression "puVar37 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pppppppiVar28 =\n       (int *******)(*(code *)ppppiVar19)(ppiVar33,pppppppiVar3,pppppppiVar12,pppppppiVar23);" (assignment_expression "pppppppiVar28 =\n       (int *******)(*(code *)ppppiVar19)(ppiVar33,pppppppiVar3,pppppppiVar12,pppppppiVar23)" identifier = (cast_expression "(int *******)(*(code *)ppppiVar19)(ppiVar33,pppppppiVar3,pppppppiVar12,pppppppiVar23)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)ppppiVar19)(ppiVar33,pppppppiVar3,pppppppiVar12,pppppppiVar23)" (parenthesized_expression "(*(code *)ppppiVar19)" ( (pointer_expression "*(code *)ppppiVar19" * (cast_expression "(code *)ppppiVar19" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppiVar33,pppppppiVar3,pppppppiVar12,pppppppiVar23)" ( identifier , identifier , identifier , identifier ))))) ;) (expression_statement "pppppppiVar30 = pppppppiVar27;" (assignment_expression "pppppppiVar30 = pppppppiVar27" identifier = identifier) ;) (goto_statement "goto LAB_00020db0;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nreg_errcode_t\ncheck_arrival(re_match_context_t *mctx,state_array_t *path,Idx top_node,Idx top_str,Idx last_node,\n             Idx last_str,int type)\n\n{\n  re_node_set **pprVar1;\n  re_token_t **pprVar2;\n  bitset_word_t *pbVar3;\n  undefined *puVar4;\n  undefined3 extraout_var;\n  re_dfa_t *prVar5;\n  re_dfastate_t **pprVar6;\n  code *pcVar7;\n  int iVar8;\n  re_dfa_t *context;\n  re_dfastate_t *prVar9;\n  int *piVar10;\n  _Bool _Var14;\n  reg_errcode_t rVar11;\n  re_fail_stack_ent_t *prVar12;\n  int iVar13;\n  re_dfa_t *prVar15;\n  re_dfastate_t **pprVar16;\n  Idx IVar17;\n  code *pcVar18;\n  code *pcVar19;\n  code *pcVar20;\n  undefined4 *puVar21;\n  re_node_set *set;\n  re_dfa_t *prVar22;\n  bitset_word_t bVar23;\n  re_match_context_t *mctx_00;\n  re_backref_cache_entry *prVar24;\n  re_dfa_t *mctx_01;\n  re_dfa_t *prVar25;\n  re_token_t *prVar26;\n  re_dfa_t *prVar27;\n  size_t sVar28;\n  size_t sVar29;\n  re_dfa_t *prVar30;\n  Idx *pIVar31;\n  int *piVar32;\n  undefined4 uVar33;\n  re_dfa_t *prVar34;\n  re_dfa_t *prVar35;\n  re_dfa_t *input;\n  re_dfastate_t **pprVar36;\n  re_dfa_t *unaff_s5;\n  re_fail_stack_t *fs;\n  re_token_t *prVar37;\n  int *piVar38;\n  re_token_t *prVar39;\n  re_dfastate_t *unaff_s7;\n  undefined *puVar40;\n  undefined1 *puVar41;\n  undefined1 *puVar42;\n  undefined1 *puVar43;\n  re_dfa_t *unaff_s8;\n  undefined1 auStackY_150 [24];\n  undefined1 auStackY_138 [76];\n  undefined4 uStackY_ec;\n  int iStackY_e8;\n  re_match_context_t *prStackY_e4;\n  re_dfa_t *prStackY_e0;\n  re_dfastate_t **pprStackY_dc;\n  re_dfa_t *prStackY_d8;\n  re_dfa_t *prStackY_d4;\n  re_dfastate_t **pprStackY_d0;\n  re_dfa_t *prStackY_cc;\n  re_match_context_t *prStackY_c8;\n  re_dfastate_t *prStackY_c4;\n  re_dfa_t *prStackY_c0;\n  code *pcStackY_bc;\n  re_dfa_t *in_stack_ffffff58;\n  char cVar44;\n  re_dfa_t *prStack_94;\n  int iStack_8c;\n  code *pcStack_6c;\n  reg_errcode_t err;\n  reg_errcode_t err_1;\n  re_node_set next_nodes;\n  re_node_set union_set;\n  \n  puVar40 = PTR___stack_chk_guard_0003c314;\n  cVar44 = (char)in_stack_ffffff58;\n  prVar15 = mctx->dfa;\n  input = (re_dfa_t *)path->alloc;\n  puVar21 = *(undefined4 **)PTR___stack_chk_guard_0003c314;\n  mctx_01 = (re_dfa_t *)(top_node * 8);\n  prVar25 = (re_dfa_t *)(last_str + mctx->max_mb_elem_len);\n  err = _REG_NOERROR;\n  prVar5 = *(re_dfa_t **)((int)mctx_01->word_char + (int)(prVar15->nodes + -0xc));\n  context = (re_dfa_t *)top_str;\n  if ((int)prVar25 < (int)input) {\nLAB_000205e8:\n    puVar4 = PTR_LAB_0003c1e8;\n    pprVar16 = mctx->state_log;\n    prVar25 = (re_dfa_t *)mctx->eflags;\n    prVar34 = (re_dfa_t *)path->next_idx;\n    pprVar36 = path->array;\n    IVar17 = (mctx->input).cur_idx;\n    if (prVar34 == (re_dfa_t *)0x0) {\n      mctx->state_log = pprVar36;\n      mctx_01 = (re_dfa_t *)(top_str + -1);\n      (mctx->input).cur_idx = top_str;\n      input = (re_dfa_t *)re_string_context_at(&mctx->input,(Idx)mctx_01,(int)prVar25);\nLAB_00020b7c:\n      next_nodes.alloc = 1;\n      next_nodes.nelem = 1;\n      next_nodes.elems = (Idx *)(*(code *)PTR_malloc_0003c2b4)(4);\n      cVar44 = (char)in_stack_ffffff58;\n      if (next_nodes.elems == (Idx *)0x0) goto LAB_00020c64;\n      mctx_01 = (re_dfa_t *)&next_nodes;\n      *next_nodes.elems = top_node;\n      err = _REG_NOERROR;\n      prVar25 = prVar5;\n      context = (re_dfa_t *)type;\n      err = check_arrival_expand_ecl(prVar15,(re_node_set *)mctx_01,(Idx)prVar5,type);\n      cVar44 = (char)in_stack_ffffff58;\n      prVar34 = (re_dfa_t *)top_str;\n      if (err == _REG_NOERROR) {\nLAB_00020ab8:\n        prStack_94 = (re_dfa_t *)&next_nodes;\n        if (next_nodes.nelem != 0) {\n          mctx_01 = prStack_94;\n          prVar25 = prVar34;\n          context = prVar5;\n          in_stack_ffffff58 = (re_dfa_t *)type;\n          err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar34,(Idx)prVar5,type);\n          cVar44 = (char)in_stack_ffffff58;\n          if (err != _REG_NOERROR) goto LAB_00020920;\n        }\n        mctx_01 = prVar15;\n        context = input;\n        unaff_s7 = re_acquire_state_context(&err,prVar15,(re_node_set *)prStack_94,(uint)input);\n        cVar44 = (char)in_stack_ffffff58;\n        prVar25 = prStack_94;\n        if ((unaff_s7 != (re_dfastate_t *)0x0) || (err == _REG_NOERROR)) {\n          mctx->state_log[(int)prVar34] = unaff_s7;\n          prVar27 = prVar34;\n          goto LAB_00020670;\n        }\n      }\nLAB_00020920:\n      (*(code *)PTR_free_0003c320)(next_nodes.elems);\n      rVar11 = err;\n    }\n    else {\n      mctx->state_log = pprVar36;\n      mctx_01 = (re_dfa_t *)((int)&prVar34[-1].subexp_map + 3);\n      (mctx->input).cur_idx = (Idx)prVar34;\n      input = (re_dfa_t *)re_string_context_at(&mctx->input,(Idx)mctx_01,(int)prVar25);\n      if (prVar34 == (re_dfa_t *)top_str) goto LAB_00020b7c;\n      pprVar36 = pprVar36 + (int)prVar34;\n      unaff_s7 = *pprVar36;\n      prVar27 = prVar34;\n      if ((unaff_s7 == (re_dfastate_t *)0x0) || ((unaff_s7->field_0x34 & 2) == 0)) {\n        next_nodes.alloc = 0;\n        next_nodes.nelem = 0;\n        next_nodes.elems = (Idx *)0x0;\nLAB_00020670:\n        cVar44 = (char)in_stack_ffffff58;\n        pcStack_6c = (code *)(puVar4 + -0x34b0);\n        prStack_94 = (re_dfa_t *)&next_nodes;\n        if (((int)prVar27 < last_str) && (-1 < mctx->max_mb_elem_len)) {\n          pprVar6 = mctx->state_log;\n          iStack_8c = 0;\n          pcVar18 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar19 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar20 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          prVar34 = prVar27;\n          unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1);\n          do {\n            prVar27 = unaff_s8;\n            next_nodes.nelem = 0;\n            top_node = (int)&prVar27[-1].subexp_map + 3;\n            if (pprVar6[(int)prVar27] == (re_dfastate_t *)0x0) {\n              rVar11 = err;\n              if (unaff_s7 != (re_dfastate_t *)0x0) goto LAB_000206f8;\n              iVar8 = mctx->eflags;\n            }\n            else {\n              mctx_01 = (re_dfa_t *)&pprVar6[(int)prVar27]->nodes;\n              err = re_node_set_merge((re_node_set *)prStack_94,(re_node_set *)mctx_01);\n              cVar44 = (char)in_stack_ffffff58;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              rVar11 = _REG_NOERROR;\n              if (unaff_s7 != (re_dfastate_t *)0x0) {\nLAB_000206f8:\n                err = rVar11;\n                unaff_s5 = (re_dfa_t *)&union_set;\n                input = mctx->dfa;\n                union_set.alloc = 0;\n                err_1 = _REG_NOERROR;\n                union_set.nelem = 0;\n                union_set.elems = (Idx *)0x0;\n                if (0 < (unaff_s7->non_eps_nodes).nelem) {\n                  pprVar36 = (re_dfastate_t **)0x0;\n                  pcVar7 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    prVar35 = (re_dfa_t *)(unaff_s7->non_eps_nodes).elems[(int)pprVar36];\n                    top_str = (int)prVar35 * 8;\n                    prVar26 = (re_token_t *)\n                              ((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60));\n                    if ((*(uint *)&prVar26->field_0x4 & 0x800) != 0) {\n                      prVar25 = prVar35;\n                      context = (re_dfa_t *)mctx;\n                      in_stack_ffffff58 = (re_dfa_t *)top_node;\n                      iVar8 = check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node);\n                      if (iVar8 < 2) {\n                        unaff_s8 = prVar27;\n                        if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60;\n                      prVar34 = (re_dfa_t *)((int)prVar35 * 4);\n                      top_str = iVar8 * 4;\n                      unaff_s8 = *(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      union_set.nelem = 0;\n                      if (mctx->state_log[iVar8] == (re_dfastate_t *)0x0) {\nLAB_000209e0:\n                        mctx_01 = unaff_s8;\n                        iVar13 = (*pcVar20)(unaff_s5);\n                        cVar44 = (char)in_stack_ffffff58;\n                        if (iVar13 == 0) goto LAB_00020904;\n                        context = (re_dfa_t *)mctx->state_log;\n                        unaff_s8 = (re_dfa_t *)((int)context + top_str);\n                        mctx_01 = input;\n                        prVar25 = unaff_s5;\n                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);\n                        pprVar6 = mctx->state_log;\n                        unaff_s8->nodes = prVar26;\n                        top_str = (Idx)(pprVar6 + iVar8);\n                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;\n                      }\n                      else {\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(union_set.elems);\n                      cVar44 = (char)in_stack_ffffff58;\n                      err = err_1;\n                      unaff_s8 = prVar27;\n                      if (err_1 == _REG_NOERROR) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    prVar25 = (re_dfa_t *)top_node;\n                    iVar8 = (*pcVar19)(mctx,prVar26);\n                    unaff_s8 = prVar27;\n                    if (iVar8 != 0) {\nLAB_00020784:\n                      prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      mctx_01 = (re_dfa_t *)prVar34->nodes;\n                      iVar8 = (*pcVar20)(prStack_94);\n                      cVar44 = (char)in_stack_ffffff58;\n                      if (iVar8 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);\n                        err = _REG_ESPACE;\n                        goto LAB_00020920;\n                      }\n                    }\n                    pprVar36 = (re_dfastate_t **)((int)pprVar36 + 1);\n                  } while ((int)pprVar36 < (unaff_s7->non_eps_nodes).nelem);\n                }\n                (*(code *)PTR_free_0003c320)(union_set.elems);\n                err = _REG_NOERROR;\n              }\nLAB_000207d0:\n              cVar44 = (char)in_stack_ffffff58;\n              if (next_nodes.nelem != 0) {\n                mctx_01 = prStack_94;\n                prVar25 = prVar5;\n                context = (re_dfa_t *)type;\n                err = (*pcVar18)(prVar15);\n                prVar34 = prVar27;\n                unaff_s8 = prVar27;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n                mctx_01 = prStack_94;\n                prVar25 = prVar27;\n                context = prVar5;\n                in_stack_ffffff58 = (re_dfa_t *)type;\n                err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar27,(Idx)prVar5,\n                                         type);\n                cVar44 = (char)in_stack_ffffff58;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n              }\n              iVar8 = mctx->eflags;\n            }\n            context = (re_dfa_t *)(*pcStack_6c)(mctx,top_node,iVar8);\n            mctx_01 = prVar15;\n            prVar25 = prStack_94;\n            unaff_s7 = re_acquire_state_context\n                                 (&err,prVar15,(re_node_set *)prStack_94,(uint)context);\n            cVar44 = (char)in_stack_ffffff58;\n            if (unaff_s7 == (re_dfastate_t *)0x0) {\n              prVar34 = prVar27;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              pprVar6 = mctx->state_log;\n              iStack_8c = iStack_8c + 1;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)0x0;\n            }\n            else {\n              pprVar6 = mctx->state_log;\n              iStack_8c = 0;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)unaff_s7;\n            }\n            unaff_s8 = prVar27;\n          } while (((int)prVar27 < last_str) &&\n                  (unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1), prVar34 = prVar27,\n                  iStack_8c <= mctx->max_mb_elem_len));\n        }\n        (*(code *)PTR_free_0003c320)(next_nodes.elems);\n        prVar9 = mctx->state_log[last_str];\n        prVar34 = prVar27;\n        if (prVar9 == (re_dfastate_t *)0x0) {\n          path->next_idx = (Idx)prVar27;\n          mctx->state_log = pprVar16;\n          (mctx->input).cur_idx = IVar17;\n          rVar11 = _REG_NOMATCH;\n        }\n        else {\n          mctx_01 = (re_dfa_t *)&(prVar9->nodes).elems;\n          path->next_idx = (Idx)prVar27;\n          (mctx->input).cur_idx = IVar17;\n          set = (re_node_set *)(prVar9->nodes).nelem;\n          mctx->state_log = pprVar16;\n          IVar17 = re_node_set_contains(set,(Idx)mctx_01,(re_node_set *)last_node);\n          rVar11 = (uint)(IVar17 == 0);\n          prVar25 = (re_dfa_t *)last_node;\n        }\n      }\n      else {\n        mctx_01 = (re_dfa_t *)&unaff_s7->nodes;\n        rVar11 = re_node_set_init_copy(&next_nodes,(re_node_set *)mctx_01);\n        cVar44 = (char)in_stack_ffffff58;\n        err = rVar11;\n        if (rVar11 == _REG_NOERROR) {\n          if ((unaff_s7->field_0x34 & 2) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }\n  }\n  else {\n    prVar34 = (re_dfa_t *)((int)&prVar25->nodes + 1);\n    pprVar36 = (re_dfastate_t **)\n               ((int)(((re_dfa_t *)(((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8) +\n               (int)((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(input->word_char + -0x18))->word_char + -0x18))->\n                     word_char + -0x18))->word_char + 0xffffffa0U);\n    if (((int)prVar34 <= 0x7fffffff - (int)input) &&\n       (unaff_s5 = (re_dfa_t *)path, pprVar36 < (re_dfastate_t **)0x40000000)) {\n      mctx_01 = (re_dfa_t *)((int)pprVar36 * 4);\n      pprVar16 = (re_dfastate_t **)(*(code *)PTR_realloc_0003c2b8)(path->array);\n      puVar4 = PTR_memset_0003c290;\n      cVar44 = (char)in_stack_ffffff58;\n      if (pprVar16 != (re_dfastate_t **)0x0) {\n        path->array = pprVar16;\n        path->alloc = (Idx)pprVar36;\n        (*(code *)puVar4)(pprVar16 + (int)input,0,(int)prVar34 * 4);\n        goto LAB_000205e8;\n      }\n    }\nLAB_00020c64:\n    rVar11 = _REG_ESPACE;\n  }\n  if (puVar21 == *(undefined4 **)puVar40) {\n    return rVar11;\n  }\n  pcVar18 = set_regs;\n  puVar40 = PTR___stack_chk_fail_0003c2f4;\n  (*(code *)PTR___stack_chk_fail_0003c2f4)();\n  auStackY_138._0_4_ = puVar40 + 0x23430;\n  puVar41 = auStackY_150;\n  puVar42 = auStackY_150;\n  auStackY_138._12_4_ = *(undefined4 *)(puVar40 + 0x1b674);\n  uStackY_ec = 2;\n  auStackY_138._72_4_ = 0;\n  iStackY_e8 = 0;\n  prStackY_e4 = *(re_match_context_t **)auStackY_138._12_4_;\n  piVar38 = (int *)*puVar21;\n  prVar5 = mctx_01;\n  prVar15 = prVar25;\n  prVar27 = context;\n  prStackY_e0 = prVar34;\n  pprStackY_dc = (re_dfastate_t **)top_str;\n  prStackY_d8 = input;\n  prStackY_d4 = (re_dfa_t *)top_node;\n  pprStackY_d0 = pprVar36;\n  prStackY_cc = unaff_s5;\n  prStackY_c8 = mctx;\n  prStackY_c4 = unaff_s7;\n  prStackY_c0 = unaff_s8;\n  pcStackY_bc = pcVar18;\n  if (cVar44 == '\0') {\n    prVar34 = (re_dfa_t *)piVar38[0x12];\n    fs = (re_fail_stack_t *)0x0;\n    if ((uint)((int)prVar25 << 3) < 0xfc0) goto LAB_00020d5c;\nLAB_00021488:\n    auStackY_138._28_4_ = (int)prVar25 << 3;\n    auStackY_138._68_4_ = 0;\n    auStackY_138._64_4_ = 0;\n    auStackY_138._60_4_ = 0;\n    top_node = (Idx)(auStackY_138 + 0x3c);\n    auStackY_138._20_4_ = (**(code **)(auStackY_138._0_4_ + -0x7e1c))(auStackY_138._28_4_);\n    auStackY_138._16_4_ = 1;\n    if ((re_dfa_t *)auStackY_138._20_4_ != (re_dfa_t *)0x0) goto LAB_00020d6c;\n    puVar41 = auStackY_150;\n    if (fs == (re_fail_stack_t *)0x0) {\n      rVar11 = _REG_ESPACE;\n      goto LAB_00020f18;\n    }\nLAB_0002112c:\n    top_node = (Idx)(auStackY_138 + 0x3c);\n    free_fail_stack_return(fs);\n    puVar43 = puVar41;\n  }\n  else {\n    fs = (re_fail_stack_t *)(auStackY_138 + 0x48);\n    iStackY_e8 = (**(code **)(puVar40 + 0x1b614))(0x30);\n    puVar43 = auStackY_150;\n    if (iStackY_e8 != 0) {\n      prVar34 = (re_dfa_t *)piVar38[0x12];\n      if (0xfbf < (uint)((int)prVar25 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      auStackY_138._28_4_ = (int)prVar25 << 3;\n      auStackY_138._68_4_ = 0;\n      auStackY_138._64_4_ = 0;\n      auStackY_138._60_4_ = 0;\n      puVar41 = auStackY_150 + (int)prVar25 * -8;\n      auStackY_138._16_4_ = 0;\n      auStackY_138._20_4_ = auStackY_138 + (int)prVar25 * -8;\nLAB_00020d6c:\n      top_node = (Idx)(auStackY_138 + 0x3c);\n      prVar5 = context;\n      prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n      (**(code **)(auStackY_138._0_4_ + -0x7db8))(auStackY_138._20_4_);\n      auStackY_138._56_4_ = (re_dfa_t *)context->nodes;\n      auStackY_138._24_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x12ec);\n      auStackY_138._52_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x5d30);\n      auStackY_138._36_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x7b38);\nLAB_00020db0:\n      prVar35 = (re_dfa_t *)context->nodes_alloc;\n      auStackY_138._40_4_ = *(undefined4 *)(auStackY_138._0_4_ + -0x7ee8);\n      auStackY_138._32_4_ = *(undefined4 *)(auStackY_138._0_4_ + -0x7ee8);\n      pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);\n      puVar40 = (undefined *)auStackY_138._0_4_;\n      puVar42 = puVar41;\n      if ((int)auStackY_138._56_4_ <= (int)prVar35) {\n        do {\n          input = prVar34;\n          prVar34 = (re_dfa_t *)((int)input * 8);\n          prVar15 = (re_dfa_t *)0x8;\n          piVar10 = (int *)((int)prVar34->word_char + *piVar38 + -0x60);\n          prVar5 = (re_dfa_t *)(uint)*(byte *)(piVar10 + 1);\n          prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n          if (prVar5 == (re_dfa_t *)0x8) {\n            iVar8 = *piVar10;\n            prVar5 = (re_dfa_t *)(uint)(iVar8 + 1 < (int)prVar25);\n            if (prVar5 != (re_dfa_t *)0x0) {\n              (context->word_char + iVar8 * 2 + -0x16)[1] = 0xffffffff;\n              context->word_char[iVar8 * 2 + -0x16] = auStackY_138._56_4_;\n              prVar35 = (re_dfa_t *)context->nodes_alloc;\n            }\n          }\n          else {\n            prVar15 = (re_dfa_t *)&DAT_00000009;\n            if (prVar5 == (re_dfa_t *)&DAT_00000009) {\n              prVar15 = (re_dfa_t *)(uint)(*piVar10 + 1 < (int)prVar25);\n              prVar5 = (re_dfa_t *)(*piVar10 * 8 + 8);\n              if (prVar15 != (re_dfa_t *)0x0) {\n                piVar32 = (int *)((int)(((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8) +\n                                 (int)((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))->word_char + 0xffffffa0U);\n                pcVar18 = *(code **)(puVar40 + -0x7db8);\n                if (*piVar32 < (int)auStackY_138._56_4_) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)auStackY_138._20_4_;\n                  prVar5 = context;\n                }\n                else if (((piVar10[1] & 0x1000U) == 0) ||\n                        (pbVar3 = prVar5->word_char, prVar35 = context,\n                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1)) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)context->nodes_alloc;\n                  goto LAB_00020df8;\n                }\n                prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                auStackY_138._44_4_ = prVar34;\n                auStackY_138._48_4_ = auStackY_138._56_4_;\n                (*pcVar18)(prVar35);\n                prVar35 = (re_dfa_t *)context->nodes_alloc;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar34 = (re_dfa_t *)auStackY_138._44_4_;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n              }\n            }\n          }\nLAB_00020df8:\n          uVar33 = auStackY_138._24_4_;\n          if ((prVar27 == prVar35) && ((re_dfa_t *)mctx_01->word_char[0] == input)) {\n            pcVar18 = *(code **)(puVar40 + -0x7db0);\n            if (fs == (re_fail_stack_t *)0x0) {\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ == 0) goto LAB_00020f14;\n              (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              rVar11 = _REG_NOERROR;\n              goto LAB_00020f18;\n            }\n            prVar34 = (re_dfa_t *)0x0;\n            if (prVar25 == (re_dfa_t *)0x0) {\nLAB_000212c0:\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ != 0) {\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              }\n              goto LAB_00020f00;\n            }\n            prVar5 = (re_dfa_t *)0xffffffff;\n            prVar35 = context;\n            while (((int)prVar35->nodes < 0 || (prVar35->nodes_alloc != 0xffffffff))) {\n              prVar34 = (re_dfa_t *)((int)&prVar34->nodes + 1);\n              prVar35 = (re_dfa_t *)&prVar35->nodes_len;\n              if (prVar25 == prVar34) {\n                pcVar18 = *(code **)(puVar40 + -0x7db0);\n                goto LAB_000212c0;\n              }\n            }\n            *(Idx *)(puVar41 + 0x14) = top_node;\n            *(re_dfa_t **)(puVar41 + 0x10) = context;\n            prVar27 = prVar25;\n            input = (re_dfa_t *)(*(code *)uVar33)(fs,&fs->stack,auStackY_138 + 0x38);\n            prVar34 = (re_dfa_t *)((int)input << 3);\n            puVar40 = (undefined *)auStackY_138._0_4_;\n          }\n          prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n          prVar30 = (re_dfa_t *)mctx_01->completed_bkref_map;\n          prVar22 = (re_dfa_t *)prVar30->nodes;\n          prVar5 = (re_dfa_t *)\n                   ((int)(((re_dfa_t *)\n                          (((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))->\n                          word_char + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U);\n          prVar15 = (re_dfa_t *)(uint)*(byte *)&prVar5->nodes_alloc;\n          if ((*(byte *)&prVar5->nodes_alloc & 8) == 0) {\n            if ((prVar5->nodes_alloc & 0x800) == 0) {\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n              if (prVar15 != (re_dfa_t *)0x4) goto LAB_00020e44;\n              pprVar2 = &prVar5->nodes;\n              prVar5 = (re_dfa_t *)(context->word_char + (int)*pprVar2 * 2 + -0x16)[1];\n              bVar23 = context->word_char[(int)*pprVar2 * 2 + -0x16];\n              prVar27 = (re_dfa_t *)((int)prVar5 - bVar23);\n              if (fs == (re_fail_stack_t *)0x0) {\n                if (prVar27 == (re_dfa_t *)0x0) goto LAB_00021318;\n              }\n              else {\n                prVar22 = input;\n                if ((bVar23 == 0xffffffff) ||\n                   (prVar15 = (re_dfa_t *)(auStackY_138 + 0x38), prVar5 == (re_dfa_t *)0xffffffff))\n                goto LAB_00020f7c;\n                if (prVar27 == (re_dfa_t *)0x0) {\nLAB_00021318:\n                  prVar5 = input;\n                  auStackY_138._44_4_ = prVar34;\n                  auStackY_138._48_4_ = prVar30;\n                  iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n                  prVar34 = input;\n                  if (iVar8 == 0) goto LAB_000213ac;\n                  pprVar1 = (re_node_set **)(auStackY_138._48_4_ + 0x14);\n                  auStackY_138._8_4_ = auStackY_138._48_4_;\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n                  prVar34 = (re_dfa_t *)*(*pprVar1)[(int)input].elems;\n                  prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n                  prVar15 = prVar34;\n                  iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n                  puVar40 = (undefined *)auStackY_138._0_4_;\n                  if (iVar8 != 0) goto LAB_00020ecc;\n                  prVar5 = (re_dfa_t *)\n                           ((int)(auStackY_138._44_4_ + 0x60) +\n                           (int)(*(re_token_t **)auStackY_138._8_4_ + -0xc));\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  prVar30 = (re_dfa_t *)auStackY_138._8_4_;\n                  goto LAB_00020e44;\n                }\n                prVar5 = (re_dfa_t *)\n                         ((int)(auStackY_138._56_4_ + 0x60) + (mctx_01->nodes_alloc - 0x60));\n                auStackY_138._44_4_ = prVar30;\n                auStackY_138._48_4_ = prVar27;\n                iVar8 = (**(code **)(puVar40 + -0x7dd0))(mctx_01->nodes_alloc + bVar23);\n                prVar15 = prVar27;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar30 = (re_dfa_t *)auStackY_138._44_4_;\n                prVar22 = prVar35;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if (iVar8 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              auStackY_138._56_4_ =\n                   (int)(((re_dfa_t *)\n                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))->word_char\n                        + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U;\n              prVar34 = *(re_dfa_t **)(((re_node_set *)&prVar30->nexts)->alloc + (int)input * 4);\n              input = prVar35;\n            }\n            else {\n              prVar5 = (re_dfa_t *)&prVar30->syntax;\n              auStackY_138._48_4_ = prVar30;\n              auStackY_138._44_4_ = prVar34;\n              *(undefined4 *)(puVar41 + 0x10) = auStackY_138._56_4_;\n              prVar15 = input;\n              prVar27 = (re_dfa_t *)\n                        check_node_accept_bytes\n                                  (prVar22,(Idx)prVar5,(re_string_t *)input,(Idx)mctx_01,\n                                   *(re_dfa_t **)(puVar41 + 0x10));\n              prVar30 = (re_dfa_t *)auStackY_138._48_4_;\n              prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (prVar27 != (re_dfa_t *)0x0) goto LAB_00021258;\n              prVar5 = (re_dfa_t *)\n                       ((int)(auStackY_138._44_4_ + 0x60) +\n                       (int)(*(re_token_t **)auStackY_138._48_4_ + -0xc));\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_00020e44:\n              prVar15 = prVar27;\n              auStackY_138._44_4_ = prVar30;\n              auStackY_138._48_4_ = prVar15;\n              _Var14 = check_node_accept((re_match_context_t *)mctx_01,(re_token_t *)prVar5,\n                                         (Idx)prVar15);\n              prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (CONCAT31(extraout_var,_Var14) == 0) goto LAB_00020f6c;\n              auStackY_138._56_4_ = (int)(re_token_t **)auStackY_138._48_4_ + 1;\n              input = (re_dfa_t *)\n                      (((re_node_set *)(auStackY_138._44_4_ + 0xc))->alloc + (int)input * 4);\n              prVar34 = (re_dfa_t *)input->nodes;\n            }\n            if (fs != (re_fail_stack_t *)0x0) {\n              prVar22 = input;\n              if ((mctx_01->mb_cur_max < (int)auStackY_138._56_4_) ||\n                 (iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4), iVar8 == 0))\n              goto LAB_00020f7c;\n              prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n              prVar15 = prVar34;\n              iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (iVar8 == 0) goto LAB_00020f7c;\n            }\n            auStackY_138._64_4_ = 0;\n          }\n          else {\n            prVar34 = (re_dfa_t *)(prVar30->edests + (int)input);\n            iVar13 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n            iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n            prVar5 = input;\n            if (iVar8 == 0) {\nLAB_000213ac:\n              input = prVar34;\n              pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);\n              goto LAB_000213b0;\n            }\n            sVar28 = prVar34->nodes_alloc;\n            input = prVar34;\n            puVar40 = (undefined *)auStackY_138._0_4_;\n            if ((int)sVar28 < 1) goto LAB_00020f6c;\n            uVar33 = *(undefined4 *)(iVar13 + 8);\n            pIVar31 = (Idx *)prVar34->nodes_len;\n            sVar29 = 0;\n            prVar22 = (re_dfa_t *)0xffffffff;\n            prVar35 = (re_dfa_t *)(iVar13 + 0xc);\n            prVar30 = (re_dfa_t *)0xffffffff;\n            do {\n              prVar5 = prVar35;\n              input = (re_dfa_t *)*pIVar31;\n              prVar15 = input;\n              prVar35 = prVar5;\n              iVar8 = (*(code *)auStackY_138._52_4_)(uVar33);\n              prVar34 = prVar30;\n              if ((iVar8 != 0) && (prVar34 = input, prVar30 != prVar22)) {\n                prVar5 = (re_dfa_t *)(auStackY_138 + 0x44);\n                prVar15 = prVar30;\n                iVar8 = (*(code *)auStackY_138._52_4_)(auStackY_138._64_4_);\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if ((iVar8 != 0) || (prVar34 = prVar30, fs == (re_fail_stack_t *)0x0)) break;\n                prVar15 = (re_dfa_t *)fs->num;\n                prVar5 = (re_dfa_t *)((int)&prVar15->nodes + 1);\n                fs->num = (Idx)prVar5;\n                if (prVar5 == (re_dfa_t *)fs->alloc) {\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  prVar5 = (re_dfa_t *)((int)prVar5 * 0x30);\n                  auStackY_138._44_4_ = prVar15;\n                  prVar12 = (re_fail_stack_ent_t *)\n                            (**(code **)(auStackY_138._0_4_ + -0x7e18))(fs->stack);\n                  if (prVar12 != (re_fail_stack_ent_t *)0x0) {\n                    fs->stack = prVar12;\n                    fs->alloc = fs->alloc << 1;\n                    prVar15 = (re_dfa_t *)auStackY_138._44_4_;\n                    prVar34 = (re_dfa_t *)auStackY_138._48_4_;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  prVar12 = fs->stack;\n                  prVar34 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_000210a0:\n                  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7e1c);\n                  auStackY_138._48_4_ = prVar12 + (int)prVar15;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes = (re_token_t *)prVar34;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes_alloc = (size_t)input;\n                  pIVar31 = (Idx *)(*pcVar18)(auStackY_138._28_4_);\n                  *(Idx **)(auStackY_138._48_4_ + 8) = pIVar31;\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  if (pIVar31 != (Idx *)0x0) {\n                    prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                    (**(code **)(auStackY_138._0_4_ + -0x7db8))(pIVar31,context);\n                    prVar5 = (re_dfa_t *)top_node;\n                    prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                    rVar11 = re_node_set_init_copy\n                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node);\n                    prVar34 = prVar30;\n                    puVar40 = (undefined *)auStackY_138._0_4_;\n                    if (rVar11 == _REG_NOERROR) break;\n                  }\n                }\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._68_4_);\n                if (auStackY_138._16_4_ != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              sVar29 = sVar29 + 1;\n              pIVar31 = pIVar31 + 1;\n              prVar30 = prVar34;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n            } while (sVar28 != sVar29);\n          }\nLAB_00020ecc:\n          if ((int)prVar34 < 0) goto LAB_00020f60;\n          prVar35 = (re_dfa_t *)context->nodes_alloc;\n          pcVar18 = *(code **)(puVar40 + -0x7db0);\n          if ((int)prVar35 < (int)auStackY_138._56_4_) break;\n        } while( true );\n      }\n      prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n      (*pcVar18)(auStackY_138._68_4_);\n      if (auStackY_138._16_4_ == 0) {\n        rVar11 = _REG_NOERROR;\n        if (fs == (re_fail_stack_t *)0x0) goto LAB_00020f18;\n      }\n      else {\n        (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n        if (fs == (re_fail_stack_t *)0x0) {\n          rVar11 = _REG_NOERROR;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      free_fail_stack_return(fs);\nLAB_00020f14:\n      rVar11 = _REG_NOERROR;\n      goto LAB_00020f18;\n    }\n  }\n  rVar11 = _REG_ESPACE;\n  puVar42 = puVar43;\nLAB_00020f18:\n  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7ddc);\n  if (prStackY_e4 == *(re_match_context_t **)auStackY_138._12_4_) {\n    return rVar11;\n  }\n  pcVar19 = get_subexp_sub;\n  mctx_00 = prStackY_e4;\n  (*pcVar18)();\n  *(re_dfa_t **)(puVar42 + -0x18) = input;\n  *(Idx *)(puVar42 + -0x14) = top_node;\n  *(re_dfa_t **)(puVar42 + -0x1c) = context;\n  *(re_dfa_t **)(puVar42 + -0x10) = prVar25;\n  *(code **)(puVar42 + -0x28) = pcVar18 + 0x22b80;\n  *(re_dfa_t **)(puVar42 + -0x20) = mctx_01;\n  *(code **)(puVar42 + -4) = pcVar19;\n  *(int **)(puVar42 + -8) = piVar38;\n  *(re_fail_stack_t **)(puVar42 + -0xc) = fs;\n  iVar8 = *(int *)(puVar42 + 0x10);\n  sVar28 = prVar15->nodes_alloc;\n  prVar26 = prVar15->nodes;\n  *(undefined4 *)(puVar42 + -0x30) = 8;\n  *(int *)(puVar42 + -0x34) = iVar8;\n  *(re_dfa_t **)(puVar42 + -0x38) = prVar27;\n  rVar11 = check_arrival(mctx_00,(state_array_t *)&prVar15->nodes_len,(Idx)prVar26,sVar28,\n                         *(Idx *)(puVar42 + -0x38),*(Idx *)(puVar42 + -0x34),\n                         *(int *)(puVar42 + -0x30));\n  if (rVar11 != _REG_NOERROR) {\n    return rVar11;\n  }\n  iVar13 = mctx_00->nbkref_ents;\n  prVar39 = prVar5->nodes;\n  prVar37 = (re_token_t *)prVar15->nodes_alloc;\n  prVar24 = mctx_00->bkref_ents;\n  prVar26 = prVar37;\n  if (mctx_00->abkref_ents <= iVar13) {\n    prVar24 = (re_backref_cache_entry *)\n              (**(code **)(*(int *)(puVar42 + -0x28) + -0x7e18))\n                        (prVar24,mctx_00->abkref_ents * 0x28);\n    if (prVar24 == (re_backref_cache_entry *)0x0) {\n      (**(code **)(*(int *)(puVar42 + -0x28) + -0x7db0))(mctx_00->bkref_ents);\n      return _REG_ESPACE;\n    }\n    pcVar18 = *(code **)(*(int *)(puVar42 + -0x28) + -0x7e40);\n    mctx_00->bkref_ents = prVar24;\n    (*pcVar18)(prVar24 + mctx_00->nbkref_ents,0,mctx_00->abkref_ents * 0x14);\n    prVar26 = (re_token_t *)prVar15->nodes_alloc;\n    iVar13 = mctx_00->nbkref_ents;\n    prVar24 = mctx_00->bkref_ents;\n    mctx_00->abkref_ents = mctx_00->abkref_ents << 1;\n  }\n  if ((0 < iVar13) && (iVar8 == prVar24[iVar13 + -1].str_idx)) {\n    prVar24[iVar13 + -1].more = '\x01';\n  }\n  prVar24 = prVar24 + iVar13;\n  prVar24->node = (Idx)prVar27;\n  prVar24->str_idx = iVar8;\n  prVar24->subexp_from = (Idx)prVar39;\n  prVar24->subexp_to = (Idx)prVar37;\n  prVar24->eps_reachable_subexps_map = -(ushort)(prVar39 == prVar37);\n  mctx_00->nbkref_ents = iVar13 + 1;\n  prVar24->more = '\0';\n  if (mctx_00->max_mb_elem_len < (int)prVar37 - (int)prVar39) {\n    mctx_00->max_mb_elem_len = (int)prVar37 - (int)prVar39;\n  }\n  rVar11 = clean_state_log_if_needed(mctx_00,(int)prVar26 + (iVar8 - (int)prVar5->nodes));\n  return rVar11;\nLAB_00020f60:\n  pcVar18 = *(code **)(puVar40 + -0x7db0);\n  prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n  if (prVar34 == (re_dfa_t *)&SUB_fffffffe) {\nLAB_000213b0:\n    (*pcVar18)(auStackY_138._68_4_);\n    if (auStackY_138._16_4_ != 0) {\nLAB_000214d4:\n      (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n    }\n    if (fs != (re_fail_stack_t *)0x0) goto LAB_0002112c;\n    rVar11 = _REG_ESPACE;\n    goto LAB_00020f18;\n  }\nLAB_00020f6c:\n  prVar22 = input;\n  if (fs == (re_fail_stack_t *)0x0) {\n    (**(code **)(puVar40 + -0x7db0))(auStackY_138._68_4_);\n    if (auStackY_138._16_4_ == 0) {\n      rVar11 = _REG_NOMATCH;\n    }\n    else {\n      (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n      rVar11 = _REG_NOMATCH;\n    }\n    goto LAB_00020f18;\n  }\nLAB_00020f7c:\n  uVar33 = auStackY_138._24_4_;\n  prVar15 = (re_dfa_t *)(auStackY_138 + 0x38);\n  prVar5 = (re_dfa_t *)&fs->stack;\n  *(Idx *)(puVar41 + 0x14) = top_node;\n  *(re_dfa_t **)(puVar41 + 0x10) = context;\n  prVar34 = (re_dfa_t *)(*(code *)uVar33)(fs,prVar5,prVar15,prVar25);\n  input = prVar22;\n  goto LAB_00020db0;\n}\n\n" comment (function_definition "reg_errcode_t\ncheck_arrival(re_match_context_t *mctx,state_array_t *path,Idx top_node,Idx top_str,Idx last_node,\n             Idx last_str,int type)\n\n{\n  re_node_set **pprVar1;\n  re_token_t **pprVar2;\n  bitset_word_t *pbVar3;\n  undefined *puVar4;\n  undefined3 extraout_var;\n  re_dfa_t *prVar5;\n  re_dfastate_t **pprVar6;\n  code *pcVar7;\n  int iVar8;\n  re_dfa_t *context;\n  re_dfastate_t *prVar9;\n  int *piVar10;\n  _Bool _Var14;\n  reg_errcode_t rVar11;\n  re_fail_stack_ent_t *prVar12;\n  int iVar13;\n  re_dfa_t *prVar15;\n  re_dfastate_t **pprVar16;\n  Idx IVar17;\n  code *pcVar18;\n  code *pcVar19;\n  code *pcVar20;\n  undefined4 *puVar21;\n  re_node_set *set;\n  re_dfa_t *prVar22;\n  bitset_word_t bVar23;\n  re_match_context_t *mctx_00;\n  re_backref_cache_entry *prVar24;\n  re_dfa_t *mctx_01;\n  re_dfa_t *prVar25;\n  re_token_t *prVar26;\n  re_dfa_t *prVar27;\n  size_t sVar28;\n  size_t sVar29;\n  re_dfa_t *prVar30;\n  Idx *pIVar31;\n  int *piVar32;\n  undefined4 uVar33;\n  re_dfa_t *prVar34;\n  re_dfa_t *prVar35;\n  re_dfa_t *input;\n  re_dfastate_t **pprVar36;\n  re_dfa_t *unaff_s5;\n  re_fail_stack_t *fs;\n  re_token_t *prVar37;\n  int *piVar38;\n  re_token_t *prVar39;\n  re_dfastate_t *unaff_s7;\n  undefined *puVar40;\n  undefined1 *puVar41;\n  undefined1 *puVar42;\n  undefined1 *puVar43;\n  re_dfa_t *unaff_s8;\n  undefined1 auStackY_150 [24];\n  undefined1 auStackY_138 [76];\n  undefined4 uStackY_ec;\n  int iStackY_e8;\n  re_match_context_t *prStackY_e4;\n  re_dfa_t *prStackY_e0;\n  re_dfastate_t **pprStackY_dc;\n  re_dfa_t *prStackY_d8;\n  re_dfa_t *prStackY_d4;\n  re_dfastate_t **pprStackY_d0;\n  re_dfa_t *prStackY_cc;\n  re_match_context_t *prStackY_c8;\n  re_dfastate_t *prStackY_c4;\n  re_dfa_t *prStackY_c0;\n  code *pcStackY_bc;\n  re_dfa_t *in_stack_ffffff58;\n  char cVar44;\n  re_dfa_t *prStack_94;\n  int iStack_8c;\n  code *pcStack_6c;\n  reg_errcode_t err;\n  reg_errcode_t err_1;\n  re_node_set next_nodes;\n  re_node_set union_set;\n  \n  puVar40 = PTR___stack_chk_guard_0003c314;\n  cVar44 = (char)in_stack_ffffff58;\n  prVar15 = mctx->dfa;\n  input = (re_dfa_t *)path->alloc;\n  puVar21 = *(undefined4 **)PTR___stack_chk_guard_0003c314;\n  mctx_01 = (re_dfa_t *)(top_node * 8);\n  prVar25 = (re_dfa_t *)(last_str + mctx->max_mb_elem_len);\n  err = _REG_NOERROR;\n  prVar5 = *(re_dfa_t **)((int)mctx_01->word_char + (int)(prVar15->nodes + -0xc));\n  context = (re_dfa_t *)top_str;\n  if ((int)prVar25 < (int)input) {\nLAB_000205e8:\n    puVar4 = PTR_LAB_0003c1e8;\n    pprVar16 = mctx->state_log;\n    prVar25 = (re_dfa_t *)mctx->eflags;\n    prVar34 = (re_dfa_t *)path->next_idx;\n    pprVar36 = path->array;\n    IVar17 = (mctx->input).cur_idx;\n    if (prVar34 == (re_dfa_t *)0x0) {\n      mctx->state_log = pprVar36;\n      mctx_01 = (re_dfa_t *)(top_str + -1);\n      (mctx->input).cur_idx = top_str;\n      input = (re_dfa_t *)re_string_context_at(&mctx->input,(Idx)mctx_01,(int)prVar25);\nLAB_00020b7c:\n      next_nodes.alloc = 1;\n      next_nodes.nelem = 1;\n      next_nodes.elems = (Idx *)(*(code *)PTR_malloc_0003c2b4)(4);\n      cVar44 = (char)in_stack_ffffff58;\n      if (next_nodes.elems == (Idx *)0x0) goto LAB_00020c64;\n      mctx_01 = (re_dfa_t *)&next_nodes;\n      *next_nodes.elems = top_node;\n      err = _REG_NOERROR;\n      prVar25 = prVar5;\n      context = (re_dfa_t *)type;\n      err = check_arrival_expand_ecl(prVar15,(re_node_set *)mctx_01,(Idx)prVar5,type);\n      cVar44 = (char)in_stack_ffffff58;\n      prVar34 = (re_dfa_t *)top_str;\n      if (err == _REG_NOERROR) {\nLAB_00020ab8:\n        prStack_94 = (re_dfa_t *)&next_nodes;\n        if (next_nodes.nelem != 0) {\n          mctx_01 = prStack_94;\n          prVar25 = prVar34;\n          context = prVar5;\n          in_stack_ffffff58 = (re_dfa_t *)type;\n          err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar34,(Idx)prVar5,type);\n          cVar44 = (char)in_stack_ffffff58;\n          if (err != _REG_NOERROR) goto LAB_00020920;\n        }\n        mctx_01 = prVar15;\n        context = input;\n        unaff_s7 = re_acquire_state_context(&err,prVar15,(re_node_set *)prStack_94,(uint)input);\n        cVar44 = (char)in_stack_ffffff58;\n        prVar25 = prStack_94;\n        if ((unaff_s7 != (re_dfastate_t *)0x0) || (err == _REG_NOERROR)) {\n          mctx->state_log[(int)prVar34] = unaff_s7;\n          prVar27 = prVar34;\n          goto LAB_00020670;\n        }\n      }\nLAB_00020920:\n      (*(code *)PTR_free_0003c320)(next_nodes.elems);\n      rVar11 = err;\n    }\n    else {\n      mctx->state_log = pprVar36;\n      mctx_01 = (re_dfa_t *)((int)&prVar34[-1].subexp_map + 3);\n      (mctx->input).cur_idx = (Idx)prVar34;\n      input = (re_dfa_t *)re_string_context_at(&mctx->input,(Idx)mctx_01,(int)prVar25);\n      if (prVar34 == (re_dfa_t *)top_str) goto LAB_00020b7c;\n      pprVar36 = pprVar36 + (int)prVar34;\n      unaff_s7 = *pprVar36;\n      prVar27 = prVar34;\n      if ((unaff_s7 == (re_dfastate_t *)0x0) || ((unaff_s7->field_0x34 & 2) == 0)) {\n        next_nodes.alloc = 0;\n        next_nodes.nelem = 0;\n        next_nodes.elems = (Idx *)0x0;\nLAB_00020670:\n        cVar44 = (char)in_stack_ffffff58;\n        pcStack_6c = (code *)(puVar4 + -0x34b0);\n        prStack_94 = (re_dfa_t *)&next_nodes;\n        if (((int)prVar27 < last_str) && (-1 < mctx->max_mb_elem_len)) {\n          pprVar6 = mctx->state_log;\n          iStack_8c = 0;\n          pcVar18 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar19 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar20 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          prVar34 = prVar27;\n          unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1);\n          do {\n            prVar27 = unaff_s8;\n            next_nodes.nelem = 0;\n            top_node = (int)&prVar27[-1].subexp_map + 3;\n            if (pprVar6[(int)prVar27] == (re_dfastate_t *)0x0) {\n              rVar11 = err;\n              if (unaff_s7 != (re_dfastate_t *)0x0) goto LAB_000206f8;\n              iVar8 = mctx->eflags;\n            }\n            else {\n              mctx_01 = (re_dfa_t *)&pprVar6[(int)prVar27]->nodes;\n              err = re_node_set_merge((re_node_set *)prStack_94,(re_node_set *)mctx_01);\n              cVar44 = (char)in_stack_ffffff58;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              rVar11 = _REG_NOERROR;\n              if (unaff_s7 != (re_dfastate_t *)0x0) {\nLAB_000206f8:\n                err = rVar11;\n                unaff_s5 = (re_dfa_t *)&union_set;\n                input = mctx->dfa;\n                union_set.alloc = 0;\n                err_1 = _REG_NOERROR;\n                union_set.nelem = 0;\n                union_set.elems = (Idx *)0x0;\n                if (0 < (unaff_s7->non_eps_nodes).nelem) {\n                  pprVar36 = (re_dfastate_t **)0x0;\n                  pcVar7 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    prVar35 = (re_dfa_t *)(unaff_s7->non_eps_nodes).elems[(int)pprVar36];\n                    top_str = (int)prVar35 * 8;\n                    prVar26 = (re_token_t *)\n                              ((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60));\n                    if ((*(uint *)&prVar26->field_0x4 & 0x800) != 0) {\n                      prVar25 = prVar35;\n                      context = (re_dfa_t *)mctx;\n                      in_stack_ffffff58 = (re_dfa_t *)top_node;\n                      iVar8 = check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node);\n                      if (iVar8 < 2) {\n                        unaff_s8 = prVar27;\n                        if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60;\n                      prVar34 = (re_dfa_t *)((int)prVar35 * 4);\n                      top_str = iVar8 * 4;\n                      unaff_s8 = *(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      union_set.nelem = 0;\n                      if (mctx->state_log[iVar8] == (re_dfastate_t *)0x0) {\nLAB_000209e0:\n                        mctx_01 = unaff_s8;\n                        iVar13 = (*pcVar20)(unaff_s5);\n                        cVar44 = (char)in_stack_ffffff58;\n                        if (iVar13 == 0) goto LAB_00020904;\n                        context = (re_dfa_t *)mctx->state_log;\n                        unaff_s8 = (re_dfa_t *)((int)context + top_str);\n                        mctx_01 = input;\n                        prVar25 = unaff_s5;\n                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);\n                        pprVar6 = mctx->state_log;\n                        unaff_s8->nodes = prVar26;\n                        top_str = (Idx)(pprVar6 + iVar8);\n                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;\n                      }\n                      else {\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(union_set.elems);\n                      cVar44 = (char)in_stack_ffffff58;\n                      err = err_1;\n                      unaff_s8 = prVar27;\n                      if (err_1 == _REG_NOERROR) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    prVar25 = (re_dfa_t *)top_node;\n                    iVar8 = (*pcVar19)(mctx,prVar26);\n                    unaff_s8 = prVar27;\n                    if (iVar8 != 0) {\nLAB_00020784:\n                      prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      mctx_01 = (re_dfa_t *)prVar34->nodes;\n                      iVar8 = (*pcVar20)(prStack_94);\n                      cVar44 = (char)in_stack_ffffff58;\n                      if (iVar8 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);\n                        err = _REG_ESPACE;\n                        goto LAB_00020920;\n                      }\n                    }\n                    pprVar36 = (re_dfastate_t **)((int)pprVar36 + 1);\n                  } while ((int)pprVar36 < (unaff_s7->non_eps_nodes).nelem);\n                }\n                (*(code *)PTR_free_0003c320)(union_set.elems);\n                err = _REG_NOERROR;\n              }\nLAB_000207d0:\n              cVar44 = (char)in_stack_ffffff58;\n              if (next_nodes.nelem != 0) {\n                mctx_01 = prStack_94;\n                prVar25 = prVar5;\n                context = (re_dfa_t *)type;\n                err = (*pcVar18)(prVar15);\n                prVar34 = prVar27;\n                unaff_s8 = prVar27;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n                mctx_01 = prStack_94;\n                prVar25 = prVar27;\n                context = prVar5;\n                in_stack_ffffff58 = (re_dfa_t *)type;\n                err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar27,(Idx)prVar5,\n                                         type);\n                cVar44 = (char)in_stack_ffffff58;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n              }\n              iVar8 = mctx->eflags;\n            }\n            context = (re_dfa_t *)(*pcStack_6c)(mctx,top_node,iVar8);\n            mctx_01 = prVar15;\n            prVar25 = prStack_94;\n            unaff_s7 = re_acquire_state_context\n                                 (&err,prVar15,(re_node_set *)prStack_94,(uint)context);\n            cVar44 = (char)in_stack_ffffff58;\n            if (unaff_s7 == (re_dfastate_t *)0x0) {\n              prVar34 = prVar27;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              pprVar6 = mctx->state_log;\n              iStack_8c = iStack_8c + 1;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)0x0;\n            }\n            else {\n              pprVar6 = mctx->state_log;\n              iStack_8c = 0;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)unaff_s7;\n            }\n            unaff_s8 = prVar27;\n          } while (((int)prVar27 < last_str) &&\n                  (unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1), prVar34 = prVar27,\n                  iStack_8c <= mctx->max_mb_elem_len));\n        }\n        (*(code *)PTR_free_0003c320)(next_nodes.elems);\n        prVar9 = mctx->state_log[last_str];\n        prVar34 = prVar27;\n        if (prVar9 == (re_dfastate_t *)0x0) {\n          path->next_idx = (Idx)prVar27;\n          mctx->state_log = pprVar16;\n          (mctx->input).cur_idx = IVar17;\n          rVar11 = _REG_NOMATCH;\n        }\n        else {\n          mctx_01 = (re_dfa_t *)&(prVar9->nodes).elems;\n          path->next_idx = (Idx)prVar27;\n          (mctx->input).cur_idx = IVar17;\n          set = (re_node_set *)(prVar9->nodes).nelem;\n          mctx->state_log = pprVar16;\n          IVar17 = re_node_set_contains(set,(Idx)mctx_01,(re_node_set *)last_node);\n          rVar11 = (uint)(IVar17 == 0);\n          prVar25 = (re_dfa_t *)last_node;\n        }\n      }\n      else {\n        mctx_01 = (re_dfa_t *)&unaff_s7->nodes;\n        rVar11 = re_node_set_init_copy(&next_nodes,(re_node_set *)mctx_01);\n        cVar44 = (char)in_stack_ffffff58;\n        err = rVar11;\n        if (rVar11 == _REG_NOERROR) {\n          if ((unaff_s7->field_0x34 & 2) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }\n  }\n  else {\n    prVar34 = (re_dfa_t *)((int)&prVar25->nodes + 1);\n    pprVar36 = (re_dfastate_t **)\n               ((int)(((re_dfa_t *)(((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8) +\n               (int)((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(input->word_char + -0x18))->word_char + -0x18))->\n                     word_char + -0x18))->word_char + 0xffffffa0U);\n    if (((int)prVar34 <= 0x7fffffff - (int)input) &&\n       (unaff_s5 = (re_dfa_t *)path, pprVar36 < (re_dfastate_t **)0x40000000)) {\n      mctx_01 = (re_dfa_t *)((int)pprVar36 * 4);\n      pprVar16 = (re_dfastate_t **)(*(code *)PTR_realloc_0003c2b8)(path->array);\n      puVar4 = PTR_memset_0003c290;\n      cVar44 = (char)in_stack_ffffff58;\n      if (pprVar16 != (re_dfastate_t **)0x0) {\n        path->array = pprVar16;\n        path->alloc = (Idx)pprVar36;\n        (*(code *)puVar4)(pprVar16 + (int)input,0,(int)prVar34 * 4);\n        goto LAB_000205e8;\n      }\n    }\nLAB_00020c64:\n    rVar11 = _REG_ESPACE;\n  }\n  if (puVar21 == *(undefined4 **)puVar40) {\n    return rVar11;\n  }\n  pcVar18 = set_regs;\n  puVar40 = PTR___stack_chk_fail_0003c2f4;\n  (*(code *)PTR___stack_chk_fail_0003c2f4)();\n  auStackY_138._0_4_ = puVar40 + 0x23430;\n  puVar41 = auStackY_150;\n  puVar42 = auStackY_150;\n  auStackY_138._12_4_ = *(undefined4 *)(puVar40 + 0x1b674);\n  uStackY_ec = 2;\n  auStackY_138._72_4_ = 0;\n  iStackY_e8 = 0;\n  prStackY_e4 = *(re_match_context_t **)auStackY_138._12_4_;\n  piVar38 = (int *)*puVar21;\n  prVar5 = mctx_01;\n  prVar15 = prVar25;\n  prVar27 = context;\n  prStackY_e0 = prVar34;\n  pprStackY_dc = (re_dfastate_t **)top_str;\n  prStackY_d8 = input;\n  prStackY_d4 = (re_dfa_t *)top_node;\n  pprStackY_d0 = pprVar36;\n  prStackY_cc = unaff_s5;\n  prStackY_c8 = mctx;\n  prStackY_c4 = unaff_s7;\n  prStackY_c0 = unaff_s8;\n  pcStackY_bc = pcVar18;\n  if (cVar44 == '\0') {\n    prVar34 = (re_dfa_t *)piVar38[0x12];\n    fs = (re_fail_stack_t *)0x0;\n    if ((uint)((int)prVar25 << 3) < 0xfc0) goto LAB_00020d5c;\nLAB_00021488:\n    auStackY_138._28_4_ = (int)prVar25 << 3;\n    auStackY_138._68_4_ = 0;\n    auStackY_138._64_4_ = 0;\n    auStackY_138._60_4_ = 0;\n    top_node = (Idx)(auStackY_138 + 0x3c);\n    auStackY_138._20_4_ = (**(code **)(auStackY_138._0_4_ + -0x7e1c))(auStackY_138._28_4_);\n    auStackY_138._16_4_ = 1;\n    if ((re_dfa_t *)auStackY_138._20_4_ != (re_dfa_t *)0x0) goto LAB_00020d6c;\n    puVar41 = auStackY_150;\n    if (fs == (re_fail_stack_t *)0x0) {\n      rVar11 = _REG_ESPACE;\n      goto LAB_00020f18;\n    }\nLAB_0002112c:\n    top_node = (Idx)(auStackY_138 + 0x3c);\n    free_fail_stack_return(fs);\n    puVar43 = puVar41;\n  }\n  else {\n    fs = (re_fail_stack_t *)(auStackY_138 + 0x48);\n    iStackY_e8 = (**(code **)(puVar40 + 0x1b614))(0x30);\n    puVar43 = auStackY_150;\n    if (iStackY_e8 != 0) {\n      prVar34 = (re_dfa_t *)piVar38[0x12];\n      if (0xfbf < (uint)((int)prVar25 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      auStackY_138._28_4_ = (int)prVar25 << 3;\n      auStackY_138._68_4_ = 0;\n      auStackY_138._64_4_ = 0;\n      auStackY_138._60_4_ = 0;\n      puVar41 = auStackY_150 + (int)prVar25 * -8;\n      auStackY_138._16_4_ = 0;\n      auStackY_138._20_4_ = auStackY_138 + (int)prVar25 * -8;\nLAB_00020d6c:\n      top_node = (Idx)(auStackY_138 + 0x3c);\n      prVar5 = context;\n      prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n      (**(code **)(auStackY_138._0_4_ + -0x7db8))(auStackY_138._20_4_);\n      auStackY_138._56_4_ = (re_dfa_t *)context->nodes;\n      auStackY_138._24_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x12ec);\n      auStackY_138._52_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x5d30);\n      auStackY_138._36_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x7b38);\nLAB_00020db0:\n      prVar35 = (re_dfa_t *)context->nodes_alloc;\n      auStackY_138._40_4_ = *(undefined4 *)(auStackY_138._0_4_ + -0x7ee8);\n      auStackY_138._32_4_ = *(undefined4 *)(auStackY_138._0_4_ + -0x7ee8);\n      pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);\n      puVar40 = (undefined *)auStackY_138._0_4_;\n      puVar42 = puVar41;\n      if ((int)auStackY_138._56_4_ <= (int)prVar35) {\n        do {\n          input = prVar34;\n          prVar34 = (re_dfa_t *)((int)input * 8);\n          prVar15 = (re_dfa_t *)0x8;\n          piVar10 = (int *)((int)prVar34->word_char + *piVar38 + -0x60);\n          prVar5 = (re_dfa_t *)(uint)*(byte *)(piVar10 + 1);\n          prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n          if (prVar5 == (re_dfa_t *)0x8) {\n            iVar8 = *piVar10;\n            prVar5 = (re_dfa_t *)(uint)(iVar8 + 1 < (int)prVar25);\n            if (prVar5 != (re_dfa_t *)0x0) {\n              (context->word_char + iVar8 * 2 + -0x16)[1] = 0xffffffff;\n              context->word_char[iVar8 * 2 + -0x16] = auStackY_138._56_4_;\n              prVar35 = (re_dfa_t *)context->nodes_alloc;\n            }\n          }\n          else {\n            prVar15 = (re_dfa_t *)&DAT_00000009;\n            if (prVar5 == (re_dfa_t *)&DAT_00000009) {\n              prVar15 = (re_dfa_t *)(uint)(*piVar10 + 1 < (int)prVar25);\n              prVar5 = (re_dfa_t *)(*piVar10 * 8 + 8);\n              if (prVar15 != (re_dfa_t *)0x0) {\n                piVar32 = (int *)((int)(((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8) +\n                                 (int)((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))->word_char + 0xffffffa0U);\n                pcVar18 = *(code **)(puVar40 + -0x7db8);\n                if (*piVar32 < (int)auStackY_138._56_4_) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)auStackY_138._20_4_;\n                  prVar5 = context;\n                }\n                else if (((piVar10[1] & 0x1000U) == 0) ||\n                        (pbVar3 = prVar5->word_char, prVar35 = context,\n                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1)) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)context->nodes_alloc;\n                  goto LAB_00020df8;\n                }\n                prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                auStackY_138._44_4_ = prVar34;\n                auStackY_138._48_4_ = auStackY_138._56_4_;\n                (*pcVar18)(prVar35);\n                prVar35 = (re_dfa_t *)context->nodes_alloc;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar34 = (re_dfa_t *)auStackY_138._44_4_;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n              }\n            }\n          }\nLAB_00020df8:\n          uVar33 = auStackY_138._24_4_;\n          if ((prVar27 == prVar35) && ((re_dfa_t *)mctx_01->word_char[0] == input)) {\n            pcVar18 = *(code **)(puVar40 + -0x7db0);\n            if (fs == (re_fail_stack_t *)0x0) {\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ == 0) goto LAB_00020f14;\n              (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              rVar11 = _REG_NOERROR;\n              goto LAB_00020f18;\n            }\n            prVar34 = (re_dfa_t *)0x0;\n            if (prVar25 == (re_dfa_t *)0x0) {\nLAB_000212c0:\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ != 0) {\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              }\n              goto LAB_00020f00;\n            }\n            prVar5 = (re_dfa_t *)0xffffffff;\n            prVar35 = context;\n            while (((int)prVar35->nodes < 0 || (prVar35->nodes_alloc != 0xffffffff))) {\n              prVar34 = (re_dfa_t *)((int)&prVar34->nodes + 1);\n              prVar35 = (re_dfa_t *)&prVar35->nodes_len;\n              if (prVar25 == prVar34) {\n                pcVar18 = *(code **)(puVar40 + -0x7db0);\n                goto LAB_000212c0;\n              }\n            }\n            *(Idx *)(puVar41 + 0x14) = top_node;\n            *(re_dfa_t **)(puVar41 + 0x10) = context;\n            prVar27 = prVar25;\n            input = (re_dfa_t *)(*(code *)uVar33)(fs,&fs->stack,auStackY_138 + 0x38);\n            prVar34 = (re_dfa_t *)((int)input << 3);\n            puVar40 = (undefined *)auStackY_138._0_4_;\n          }\n          prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n          prVar30 = (re_dfa_t *)mctx_01->completed_bkref_map;\n          prVar22 = (re_dfa_t *)prVar30->nodes;\n          prVar5 = (re_dfa_t *)\n                   ((int)(((re_dfa_t *)\n                          (((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))->\n                          word_char + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U);\n          prVar15 = (re_dfa_t *)(uint)*(byte *)&prVar5->nodes_alloc;\n          if ((*(byte *)&prVar5->nodes_alloc & 8) == 0) {\n            if ((prVar5->nodes_alloc & 0x800) == 0) {\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n              if (prVar15 != (re_dfa_t *)0x4) goto LAB_00020e44;\n              pprVar2 = &prVar5->nodes;\n              prVar5 = (re_dfa_t *)(context->word_char + (int)*pprVar2 * 2 + -0x16)[1];\n              bVar23 = context->word_char[(int)*pprVar2 * 2 + -0x16];\n              prVar27 = (re_dfa_t *)((int)prVar5 - bVar23);\n              if (fs == (re_fail_stack_t *)0x0) {\n                if (prVar27 == (re_dfa_t *)0x0) goto LAB_00021318;\n              }\n              else {\n                prVar22 = input;\n                if ((bVar23 == 0xffffffff) ||\n                   (prVar15 = (re_dfa_t *)(auStackY_138 + 0x38), prVar5 == (re_dfa_t *)0xffffffff))\n                goto LAB_00020f7c;\n                if (prVar27 == (re_dfa_t *)0x0) {\nLAB_00021318:\n                  prVar5 = input;\n                  auStackY_138._44_4_ = prVar34;\n                  auStackY_138._48_4_ = prVar30;\n                  iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n                  prVar34 = input;\n                  if (iVar8 == 0) goto LAB_000213ac;\n                  pprVar1 = (re_node_set **)(auStackY_138._48_4_ + 0x14);\n                  auStackY_138._8_4_ = auStackY_138._48_4_;\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n                  prVar34 = (re_dfa_t *)*(*pprVar1)[(int)input].elems;\n                  prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n                  prVar15 = prVar34;\n                  iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n                  puVar40 = (undefined *)auStackY_138._0_4_;\n                  if (iVar8 != 0) goto LAB_00020ecc;\n                  prVar5 = (re_dfa_t *)\n                           ((int)(auStackY_138._44_4_ + 0x60) +\n                           (int)(*(re_token_t **)auStackY_138._8_4_ + -0xc));\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  prVar30 = (re_dfa_t *)auStackY_138._8_4_;\n                  goto LAB_00020e44;\n                }\n                prVar5 = (re_dfa_t *)\n                         ((int)(auStackY_138._56_4_ + 0x60) + (mctx_01->nodes_alloc - 0x60));\n                auStackY_138._44_4_ = prVar30;\n                auStackY_138._48_4_ = prVar27;\n                iVar8 = (**(code **)(puVar40 + -0x7dd0))(mctx_01->nodes_alloc + bVar23);\n                prVar15 = prVar27;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar30 = (re_dfa_t *)auStackY_138._44_4_;\n                prVar22 = prVar35;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if (iVar8 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              auStackY_138._56_4_ =\n                   (int)(((re_dfa_t *)\n                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))->word_char\n                        + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U;\n              prVar34 = *(re_dfa_t **)(((re_node_set *)&prVar30->nexts)->alloc + (int)input * 4);\n              input = prVar35;\n            }\n            else {\n              prVar5 = (re_dfa_t *)&prVar30->syntax;\n              auStackY_138._48_4_ = prVar30;\n              auStackY_138._44_4_ = prVar34;\n              *(undefined4 *)(puVar41 + 0x10) = auStackY_138._56_4_;\n              prVar15 = input;\n              prVar27 = (re_dfa_t *)\n                        check_node_accept_bytes\n                                  (prVar22,(Idx)prVar5,(re_string_t *)input,(Idx)mctx_01,\n                                   *(re_dfa_t **)(puVar41 + 0x10));\n              prVar30 = (re_dfa_t *)auStackY_138._48_4_;\n              prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (prVar27 != (re_dfa_t *)0x0) goto LAB_00021258;\n              prVar5 = (re_dfa_t *)\n                       ((int)(auStackY_138._44_4_ + 0x60) +\n                       (int)(*(re_token_t **)auStackY_138._48_4_ + -0xc));\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_00020e44:\n              prVar15 = prVar27;\n              auStackY_138._44_4_ = prVar30;\n              auStackY_138._48_4_ = prVar15;\n              _Var14 = check_node_accept((re_match_context_t *)mctx_01,(re_token_t *)prVar5,\n                                         (Idx)prVar15);\n              prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (CONCAT31(extraout_var,_Var14) == 0) goto LAB_00020f6c;\n              auStackY_138._56_4_ = (int)(re_token_t **)auStackY_138._48_4_ + 1;\n              input = (re_dfa_t *)\n                      (((re_node_set *)(auStackY_138._44_4_ + 0xc))->alloc + (int)input * 4);\n              prVar34 = (re_dfa_t *)input->nodes;\n            }\n            if (fs != (re_fail_stack_t *)0x0) {\n              prVar22 = input;\n              if ((mctx_01->mb_cur_max < (int)auStackY_138._56_4_) ||\n                 (iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4), iVar8 == 0))\n              goto LAB_00020f7c;\n              prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n              prVar15 = prVar34;\n              iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (iVar8 == 0) goto LAB_00020f7c;\n            }\n            auStackY_138._64_4_ = 0;\n          }\n          else {\n            prVar34 = (re_dfa_t *)(prVar30->edests + (int)input);\n            iVar13 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n            iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n            prVar5 = input;\n            if (iVar8 == 0) {\nLAB_000213ac:\n              input = prVar34;\n              pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);\n              goto LAB_000213b0;\n            }\n            sVar28 = prVar34->nodes_alloc;\n            input = prVar34;\n            puVar40 = (undefined *)auStackY_138._0_4_;\n            if ((int)sVar28 < 1) goto LAB_00020f6c;\n            uVar33 = *(undefined4 *)(iVar13 + 8);\n            pIVar31 = (Idx *)prVar34->nodes_len;\n            sVar29 = 0;\n            prVar22 = (re_dfa_t *)0xffffffff;\n            prVar35 = (re_dfa_t *)(iVar13 + 0xc);\n            prVar30 = (re_dfa_t *)0xffffffff;\n            do {\n              prVar5 = prVar35;\n              input = (re_dfa_t *)*pIVar31;\n              prVar15 = input;\n              prVar35 = prVar5;\n              iVar8 = (*(code *)auStackY_138._52_4_)(uVar33);\n              prVar34 = prVar30;\n              if ((iVar8 != 0) && (prVar34 = input, prVar30 != prVar22)) {\n                prVar5 = (re_dfa_t *)(auStackY_138 + 0x44);\n                prVar15 = prVar30;\n                iVar8 = (*(code *)auStackY_138._52_4_)(auStackY_138._64_4_);\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if ((iVar8 != 0) || (prVar34 = prVar30, fs == (re_fail_stack_t *)0x0)) break;\n                prVar15 = (re_dfa_t *)fs->num;\n                prVar5 = (re_dfa_t *)((int)&prVar15->nodes + 1);\n                fs->num = (Idx)prVar5;\n                if (prVar5 == (re_dfa_t *)fs->alloc) {\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  prVar5 = (re_dfa_t *)((int)prVar5 * 0x30);\n                  auStackY_138._44_4_ = prVar15;\n                  prVar12 = (re_fail_stack_ent_t *)\n                            (**(code **)(auStackY_138._0_4_ + -0x7e18))(fs->stack);\n                  if (prVar12 != (re_fail_stack_ent_t *)0x0) {\n                    fs->stack = prVar12;\n                    fs->alloc = fs->alloc << 1;\n                    prVar15 = (re_dfa_t *)auStackY_138._44_4_;\n                    prVar34 = (re_dfa_t *)auStackY_138._48_4_;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  prVar12 = fs->stack;\n                  prVar34 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_000210a0:\n                  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7e1c);\n                  auStackY_138._48_4_ = prVar12 + (int)prVar15;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes = (re_token_t *)prVar34;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes_alloc = (size_t)input;\n                  pIVar31 = (Idx *)(*pcVar18)(auStackY_138._28_4_);\n                  *(Idx **)(auStackY_138._48_4_ + 8) = pIVar31;\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  if (pIVar31 != (Idx *)0x0) {\n                    prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                    (**(code **)(auStackY_138._0_4_ + -0x7db8))(pIVar31,context);\n                    prVar5 = (re_dfa_t *)top_node;\n                    prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                    rVar11 = re_node_set_init_copy\n                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node);\n                    prVar34 = prVar30;\n                    puVar40 = (undefined *)auStackY_138._0_4_;\n                    if (rVar11 == _REG_NOERROR) break;\n                  }\n                }\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._68_4_);\n                if (auStackY_138._16_4_ != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              sVar29 = sVar29 + 1;\n              pIVar31 = pIVar31 + 1;\n              prVar30 = prVar34;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n            } while (sVar28 != sVar29);\n          }\nLAB_00020ecc:\n          if ((int)prVar34 < 0) goto LAB_00020f60;\n          prVar35 = (re_dfa_t *)context->nodes_alloc;\n          pcVar18 = *(code **)(puVar40 + -0x7db0);\n          if ((int)prVar35 < (int)auStackY_138._56_4_) break;\n        } while( true );\n      }\n      prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n      (*pcVar18)(auStackY_138._68_4_);\n      if (auStackY_138._16_4_ == 0) {\n        rVar11 = _REG_NOERROR;\n        if (fs == (re_fail_stack_t *)0x0) goto LAB_00020f18;\n      }\n      else {\n        (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n        if (fs == (re_fail_stack_t *)0x0) {\n          rVar11 = _REG_NOERROR;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      free_fail_stack_return(fs);\nLAB_00020f14:\n      rVar11 = _REG_NOERROR;\n      goto LAB_00020f18;\n    }\n  }\n  rVar11 = _REG_ESPACE;\n  puVar42 = puVar43;\nLAB_00020f18:\n  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7ddc);\n  if (prStackY_e4 == *(re_match_context_t **)auStackY_138._12_4_) {\n    return rVar11;\n  }\n  pcVar19 = get_subexp_sub;\n  mctx_00 = prStackY_e4;\n  (*pcVar18)();\n  *(re_dfa_t **)(puVar42 + -0x18) = input;\n  *(Idx *)(puVar42 + -0x14) = top_node;\n  *(re_dfa_t **)(puVar42 + -0x1c) = context;\n  *(re_dfa_t **)(puVar42 + -0x10) = prVar25;\n  *(code **)(puVar42 + -0x28) = pcVar18 + 0x22b80;\n  *(re_dfa_t **)(puVar42 + -0x20) = mctx_01;\n  *(code **)(puVar42 + -4) = pcVar19;\n  *(int **)(puVar42 + -8) = piVar38;\n  *(re_fail_stack_t **)(puVar42 + -0xc) = fs;\n  iVar8 = *(int *)(puVar42 + 0x10);\n  sVar28 = prVar15->nodes_alloc;\n  prVar26 = prVar15->nodes;\n  *(undefined4 *)(puVar42 + -0x30) = 8;\n  *(int *)(puVar42 + -0x34) = iVar8;\n  *(re_dfa_t **)(puVar42 + -0x38) = prVar27;\n  rVar11 = check_arrival(mctx_00,(state_array_t *)&prVar15->nodes_len,(Idx)prVar26,sVar28,\n                         *(Idx *)(puVar42 + -0x38),*(Idx *)(puVar42 + -0x34),\n                         *(int *)(puVar42 + -0x30));\n  if (rVar11 != _REG_NOERROR) {\n    return rVar11;\n  }\n  iVar13 = mctx_00->nbkref_ents;\n  prVar39 = prVar5->nodes;\n  prVar37 = (re_token_t *)prVar15->nodes_alloc;\n  prVar24 = mctx_00->bkref_ents;\n  prVar26 = prVar37;\n  if (mctx_00->abkref_ents <= iVar13) {\n    prVar24 = (re_backref_cache_entry *)\n              (**(code **)(*(int *)(puVar42 + -0x28) + -0x7e18))\n                        (prVar24,mctx_00->abkref_ents * 0x28);\n    if (prVar24 == (re_backref_cache_entry *)0x0) {\n      (**(code **)(*(int *)(puVar42 + -0x28) + -0x7db0))(mctx_00->bkref_ents);\n      return _REG_ESPACE;\n    }\n    pcVar18 = *(code **)(*(int *)(puVar42 + -0x28) + -0x7e40);\n    mctx_00->bkref_ents = prVar24;\n    (*pcVar18)(prVar24 + mctx_00->nbkref_ents,0,mctx_00->abkref_ents * 0x14);\n    prVar26 = (re_token_t *)prVar15->nodes_alloc;\n    iVar13 = mctx_00->nbkref_ents;\n    prVar24 = mctx_00->bkref_ents;\n    mctx_00->abkref_ents = mctx_00->abkref_ents << 1;\n  }\n  if ((0 < iVar13) && (iVar8 == prVar24[iVar13 + -1].str_idx)) {\n    prVar24[iVar13 + -1].more = '\x01';\n  }\n  prVar24 = prVar24 + iVar13;\n  prVar24->node = (Idx)prVar27;\n  prVar24->str_idx = iVar8;\n  prVar24->subexp_from = (Idx)prVar39;\n  prVar24->subexp_to = (Idx)prVar37;\n  prVar24->eps_reachable_subexps_map = -(ushort)(prVar39 == prVar37);\n  mctx_00->nbkref_ents = iVar13 + 1;\n  prVar24->more = '\0';\n  if (mctx_00->max_mb_elem_len < (int)prVar37 - (int)prVar39) {\n    mctx_00->max_mb_elem_len = (int)prVar37 - (int)prVar39;\n  }\n  rVar11 = clean_state_log_if_needed(mctx_00,(int)prVar26 + (iVar8 - (int)prVar5->nodes));\n  return rVar11;\nLAB_00020f60:\n  pcVar18 = *(code **)(puVar40 + -0x7db0);\n  prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n  if (prVar34 == (re_dfa_t *)&SUB_fffffffe) {\nLAB_000213b0:\n    (*pcVar18)(auStackY_138._68_4_);\n    if (auStackY_138._16_4_ != 0) {\nLAB_000214d4:\n      (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n    }\n    if (fs != (re_fail_stack_t *)0x0) goto LAB_0002112c;\n    rVar11 = _REG_ESPACE;\n    goto LAB_00020f18;\n  }\nLAB_00020f6c:\n  prVar22 = input;\n  if (fs == (re_fail_stack_t *)0x0) {\n    (**(code **)(puVar40 + -0x7db0))(auStackY_138._68_4_);\n    if (auStackY_138._16_4_ == 0) {\n      rVar11 = _REG_NOMATCH;\n    }\n    else {\n      (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n      rVar11 = _REG_NOMATCH;\n    }\n    goto LAB_00020f18;\n  }\nLAB_00020f7c:\n  uVar33 = auStackY_138._24_4_;\n  prVar15 = (re_dfa_t *)(auStackY_138 + 0x38);\n  prVar5 = (re_dfa_t *)&fs->stack;\n  *(Idx *)(puVar41 + 0x14) = top_node;\n  *(re_dfa_t **)(puVar41 + 0x10) = context;\n  prVar34 = (re_dfa_t *)(*(code *)uVar33)(fs,prVar5,prVar15,prVar25);\n  input = prVar22;\n  goto LAB_00020db0;\n}" type_identifier (function_declarator "check_arrival(re_match_context_t *mctx,state_array_t *path,Idx top_node,Idx top_str,Idx last_node,\n             Idx last_str,int type)" identifier (parameter_list "(re_match_context_t *mctx,state_array_t *path,Idx top_node,Idx top_str,Idx last_node,\n             Idx last_str,int type)" ( (parameter_declaration "re_match_context_t *mctx" type_identifier (pointer_declarator "*mctx" * identifier)) , (parameter_declaration "state_array_t *path" type_identifier (pointer_declarator "*path" * identifier)) , (parameter_declaration "Idx top_node" type_identifier identifier) , (parameter_declaration "Idx top_str" type_identifier identifier) , (parameter_declaration "Idx last_node" type_identifier identifier) , (parameter_declaration "Idx last_str" type_identifier identifier) , (parameter_declaration "int type" primitive_type identifier) ))) (compound_statement "{\n  re_node_set **pprVar1;\n  re_token_t **pprVar2;\n  bitset_word_t *pbVar3;\n  undefined *puVar4;\n  undefined3 extraout_var;\n  re_dfa_t *prVar5;\n  re_dfastate_t **pprVar6;\n  code *pcVar7;\n  int iVar8;\n  re_dfa_t *context;\n  re_dfastate_t *prVar9;\n  int *piVar10;\n  _Bool _Var14;\n  reg_errcode_t rVar11;\n  re_fail_stack_ent_t *prVar12;\n  int iVar13;\n  re_dfa_t *prVar15;\n  re_dfastate_t **pprVar16;\n  Idx IVar17;\n  code *pcVar18;\n  code *pcVar19;\n  code *pcVar20;\n  undefined4 *puVar21;\n  re_node_set *set;\n  re_dfa_t *prVar22;\n  bitset_word_t bVar23;\n  re_match_context_t *mctx_00;\n  re_backref_cache_entry *prVar24;\n  re_dfa_t *mctx_01;\n  re_dfa_t *prVar25;\n  re_token_t *prVar26;\n  re_dfa_t *prVar27;\n  size_t sVar28;\n  size_t sVar29;\n  re_dfa_t *prVar30;\n  Idx *pIVar31;\n  int *piVar32;\n  undefined4 uVar33;\n  re_dfa_t *prVar34;\n  re_dfa_t *prVar35;\n  re_dfa_t *input;\n  re_dfastate_t **pprVar36;\n  re_dfa_t *unaff_s5;\n  re_fail_stack_t *fs;\n  re_token_t *prVar37;\n  int *piVar38;\n  re_token_t *prVar39;\n  re_dfastate_t *unaff_s7;\n  undefined *puVar40;\n  undefined1 *puVar41;\n  undefined1 *puVar42;\n  undefined1 *puVar43;\n  re_dfa_t *unaff_s8;\n  undefined1 auStackY_150 [24];\n  undefined1 auStackY_138 [76];\n  undefined4 uStackY_ec;\n  int iStackY_e8;\n  re_match_context_t *prStackY_e4;\n  re_dfa_t *prStackY_e0;\n  re_dfastate_t **pprStackY_dc;\n  re_dfa_t *prStackY_d8;\n  re_dfa_t *prStackY_d4;\n  re_dfastate_t **pprStackY_d0;\n  re_dfa_t *prStackY_cc;\n  re_match_context_t *prStackY_c8;\n  re_dfastate_t *prStackY_c4;\n  re_dfa_t *prStackY_c0;\n  code *pcStackY_bc;\n  re_dfa_t *in_stack_ffffff58;\n  char cVar44;\n  re_dfa_t *prStack_94;\n  int iStack_8c;\n  code *pcStack_6c;\n  reg_errcode_t err;\n  reg_errcode_t err_1;\n  re_node_set next_nodes;\n  re_node_set union_set;\n  \n  puVar40 = PTR___stack_chk_guard_0003c314;\n  cVar44 = (char)in_stack_ffffff58;\n  prVar15 = mctx->dfa;\n  input = (re_dfa_t *)path->alloc;\n  puVar21 = *(undefined4 **)PTR___stack_chk_guard_0003c314;\n  mctx_01 = (re_dfa_t *)(top_node * 8);\n  prVar25 = (re_dfa_t *)(last_str + mctx->max_mb_elem_len);\n  err = _REG_NOERROR;\n  prVar5 = *(re_dfa_t **)((int)mctx_01->word_char + (int)(prVar15->nodes + -0xc));\n  context = (re_dfa_t *)top_str;\n  if ((int)prVar25 < (int)input) {\nLAB_000205e8:\n    puVar4 = PTR_LAB_0003c1e8;\n    pprVar16 = mctx->state_log;\n    prVar25 = (re_dfa_t *)mctx->eflags;\n    prVar34 = (re_dfa_t *)path->next_idx;\n    pprVar36 = path->array;\n    IVar17 = (mctx->input).cur_idx;\n    if (prVar34 == (re_dfa_t *)0x0) {\n      mctx->state_log = pprVar36;\n      mctx_01 = (re_dfa_t *)(top_str + -1);\n      (mctx->input).cur_idx = top_str;\n      input = (re_dfa_t *)re_string_context_at(&mctx->input,(Idx)mctx_01,(int)prVar25);\nLAB_00020b7c:\n      next_nodes.alloc = 1;\n      next_nodes.nelem = 1;\n      next_nodes.elems = (Idx *)(*(code *)PTR_malloc_0003c2b4)(4);\n      cVar44 = (char)in_stack_ffffff58;\n      if (next_nodes.elems == (Idx *)0x0) goto LAB_00020c64;\n      mctx_01 = (re_dfa_t *)&next_nodes;\n      *next_nodes.elems = top_node;\n      err = _REG_NOERROR;\n      prVar25 = prVar5;\n      context = (re_dfa_t *)type;\n      err = check_arrival_expand_ecl(prVar15,(re_node_set *)mctx_01,(Idx)prVar5,type);\n      cVar44 = (char)in_stack_ffffff58;\n      prVar34 = (re_dfa_t *)top_str;\n      if (err == _REG_NOERROR) {\nLAB_00020ab8:\n        prStack_94 = (re_dfa_t *)&next_nodes;\n        if (next_nodes.nelem != 0) {\n          mctx_01 = prStack_94;\n          prVar25 = prVar34;\n          context = prVar5;\n          in_stack_ffffff58 = (re_dfa_t *)type;\n          err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar34,(Idx)prVar5,type);\n          cVar44 = (char)in_stack_ffffff58;\n          if (err != _REG_NOERROR) goto LAB_00020920;\n        }\n        mctx_01 = prVar15;\n        context = input;\n        unaff_s7 = re_acquire_state_context(&err,prVar15,(re_node_set *)prStack_94,(uint)input);\n        cVar44 = (char)in_stack_ffffff58;\n        prVar25 = prStack_94;\n        if ((unaff_s7 != (re_dfastate_t *)0x0) || (err == _REG_NOERROR)) {\n          mctx->state_log[(int)prVar34] = unaff_s7;\n          prVar27 = prVar34;\n          goto LAB_00020670;\n        }\n      }\nLAB_00020920:\n      (*(code *)PTR_free_0003c320)(next_nodes.elems);\n      rVar11 = err;\n    }\n    else {\n      mctx->state_log = pprVar36;\n      mctx_01 = (re_dfa_t *)((int)&prVar34[-1].subexp_map + 3);\n      (mctx->input).cur_idx = (Idx)prVar34;\n      input = (re_dfa_t *)re_string_context_at(&mctx->input,(Idx)mctx_01,(int)prVar25);\n      if (prVar34 == (re_dfa_t *)top_str) goto LAB_00020b7c;\n      pprVar36 = pprVar36 + (int)prVar34;\n      unaff_s7 = *pprVar36;\n      prVar27 = prVar34;\n      if ((unaff_s7 == (re_dfastate_t *)0x0) || ((unaff_s7->field_0x34 & 2) == 0)) {\n        next_nodes.alloc = 0;\n        next_nodes.nelem = 0;\n        next_nodes.elems = (Idx *)0x0;\nLAB_00020670:\n        cVar44 = (char)in_stack_ffffff58;\n        pcStack_6c = (code *)(puVar4 + -0x34b0);\n        prStack_94 = (re_dfa_t *)&next_nodes;\n        if (((int)prVar27 < last_str) && (-1 < mctx->max_mb_elem_len)) {\n          pprVar6 = mctx->state_log;\n          iStack_8c = 0;\n          pcVar18 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar19 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar20 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          prVar34 = prVar27;\n          unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1);\n          do {\n            prVar27 = unaff_s8;\n            next_nodes.nelem = 0;\n            top_node = (int)&prVar27[-1].subexp_map + 3;\n            if (pprVar6[(int)prVar27] == (re_dfastate_t *)0x0) {\n              rVar11 = err;\n              if (unaff_s7 != (re_dfastate_t *)0x0) goto LAB_000206f8;\n              iVar8 = mctx->eflags;\n            }\n            else {\n              mctx_01 = (re_dfa_t *)&pprVar6[(int)prVar27]->nodes;\n              err = re_node_set_merge((re_node_set *)prStack_94,(re_node_set *)mctx_01);\n              cVar44 = (char)in_stack_ffffff58;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              rVar11 = _REG_NOERROR;\n              if (unaff_s7 != (re_dfastate_t *)0x0) {\nLAB_000206f8:\n                err = rVar11;\n                unaff_s5 = (re_dfa_t *)&union_set;\n                input = mctx->dfa;\n                union_set.alloc = 0;\n                err_1 = _REG_NOERROR;\n                union_set.nelem = 0;\n                union_set.elems = (Idx *)0x0;\n                if (0 < (unaff_s7->non_eps_nodes).nelem) {\n                  pprVar36 = (re_dfastate_t **)0x0;\n                  pcVar7 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    prVar35 = (re_dfa_t *)(unaff_s7->non_eps_nodes).elems[(int)pprVar36];\n                    top_str = (int)prVar35 * 8;\n                    prVar26 = (re_token_t *)\n                              ((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60));\n                    if ((*(uint *)&prVar26->field_0x4 & 0x800) != 0) {\n                      prVar25 = prVar35;\n                      context = (re_dfa_t *)mctx;\n                      in_stack_ffffff58 = (re_dfa_t *)top_node;\n                      iVar8 = check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node);\n                      if (iVar8 < 2) {\n                        unaff_s8 = prVar27;\n                        if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60;\n                      prVar34 = (re_dfa_t *)((int)prVar35 * 4);\n                      top_str = iVar8 * 4;\n                      unaff_s8 = *(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      union_set.nelem = 0;\n                      if (mctx->state_log[iVar8] == (re_dfastate_t *)0x0) {\nLAB_000209e0:\n                        mctx_01 = unaff_s8;\n                        iVar13 = (*pcVar20)(unaff_s5);\n                        cVar44 = (char)in_stack_ffffff58;\n                        if (iVar13 == 0) goto LAB_00020904;\n                        context = (re_dfa_t *)mctx->state_log;\n                        unaff_s8 = (re_dfa_t *)((int)context + top_str);\n                        mctx_01 = input;\n                        prVar25 = unaff_s5;\n                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);\n                        pprVar6 = mctx->state_log;\n                        unaff_s8->nodes = prVar26;\n                        top_str = (Idx)(pprVar6 + iVar8);\n                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;\n                      }\n                      else {\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(union_set.elems);\n                      cVar44 = (char)in_stack_ffffff58;\n                      err = err_1;\n                      unaff_s8 = prVar27;\n                      if (err_1 == _REG_NOERROR) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    prVar25 = (re_dfa_t *)top_node;\n                    iVar8 = (*pcVar19)(mctx,prVar26);\n                    unaff_s8 = prVar27;\n                    if (iVar8 != 0) {\nLAB_00020784:\n                      prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      mctx_01 = (re_dfa_t *)prVar34->nodes;\n                      iVar8 = (*pcVar20)(prStack_94);\n                      cVar44 = (char)in_stack_ffffff58;\n                      if (iVar8 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);\n                        err = _REG_ESPACE;\n                        goto LAB_00020920;\n                      }\n                    }\n                    pprVar36 = (re_dfastate_t **)((int)pprVar36 + 1);\n                  } while ((int)pprVar36 < (unaff_s7->non_eps_nodes).nelem);\n                }\n                (*(code *)PTR_free_0003c320)(union_set.elems);\n                err = _REG_NOERROR;\n              }\nLAB_000207d0:\n              cVar44 = (char)in_stack_ffffff58;\n              if (next_nodes.nelem != 0) {\n                mctx_01 = prStack_94;\n                prVar25 = prVar5;\n                context = (re_dfa_t *)type;\n                err = (*pcVar18)(prVar15);\n                prVar34 = prVar27;\n                unaff_s8 = prVar27;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n                mctx_01 = prStack_94;\n                prVar25 = prVar27;\n                context = prVar5;\n                in_stack_ffffff58 = (re_dfa_t *)type;\n                err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar27,(Idx)prVar5,\n                                         type);\n                cVar44 = (char)in_stack_ffffff58;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n              }\n              iVar8 = mctx->eflags;\n            }\n            context = (re_dfa_t *)(*pcStack_6c)(mctx,top_node,iVar8);\n            mctx_01 = prVar15;\n            prVar25 = prStack_94;\n            unaff_s7 = re_acquire_state_context\n                                 (&err,prVar15,(re_node_set *)prStack_94,(uint)context);\n            cVar44 = (char)in_stack_ffffff58;\n            if (unaff_s7 == (re_dfastate_t *)0x0) {\n              prVar34 = prVar27;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              pprVar6 = mctx->state_log;\n              iStack_8c = iStack_8c + 1;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)0x0;\n            }\n            else {\n              pprVar6 = mctx->state_log;\n              iStack_8c = 0;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)unaff_s7;\n            }\n            unaff_s8 = prVar27;\n          } while (((int)prVar27 < last_str) &&\n                  (unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1), prVar34 = prVar27,\n                  iStack_8c <= mctx->max_mb_elem_len));\n        }\n        (*(code *)PTR_free_0003c320)(next_nodes.elems);\n        prVar9 = mctx->state_log[last_str];\n        prVar34 = prVar27;\n        if (prVar9 == (re_dfastate_t *)0x0) {\n          path->next_idx = (Idx)prVar27;\n          mctx->state_log = pprVar16;\n          (mctx->input).cur_idx = IVar17;\n          rVar11 = _REG_NOMATCH;\n        }\n        else {\n          mctx_01 = (re_dfa_t *)&(prVar9->nodes).elems;\n          path->next_idx = (Idx)prVar27;\n          (mctx->input).cur_idx = IVar17;\n          set = (re_node_set *)(prVar9->nodes).nelem;\n          mctx->state_log = pprVar16;\n          IVar17 = re_node_set_contains(set,(Idx)mctx_01,(re_node_set *)last_node);\n          rVar11 = (uint)(IVar17 == 0);\n          prVar25 = (re_dfa_t *)last_node;\n        }\n      }\n      else {\n        mctx_01 = (re_dfa_t *)&unaff_s7->nodes;\n        rVar11 = re_node_set_init_copy(&next_nodes,(re_node_set *)mctx_01);\n        cVar44 = (char)in_stack_ffffff58;\n        err = rVar11;\n        if (rVar11 == _REG_NOERROR) {\n          if ((unaff_s7->field_0x34 & 2) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }\n  }\n  else {\n    prVar34 = (re_dfa_t *)((int)&prVar25->nodes + 1);\n    pprVar36 = (re_dfastate_t **)\n               ((int)(((re_dfa_t *)(((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8) +\n               (int)((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(input->word_char + -0x18))->word_char + -0x18))->\n                     word_char + -0x18))->word_char + 0xffffffa0U);\n    if (((int)prVar34 <= 0x7fffffff - (int)input) &&\n       (unaff_s5 = (re_dfa_t *)path, pprVar36 < (re_dfastate_t **)0x40000000)) {\n      mctx_01 = (re_dfa_t *)((int)pprVar36 * 4);\n      pprVar16 = (re_dfastate_t **)(*(code *)PTR_realloc_0003c2b8)(path->array);\n      puVar4 = PTR_memset_0003c290;\n      cVar44 = (char)in_stack_ffffff58;\n      if (pprVar16 != (re_dfastate_t **)0x0) {\n        path->array = pprVar16;\n        path->alloc = (Idx)pprVar36;\n        (*(code *)puVar4)(pprVar16 + (int)input,0,(int)prVar34 * 4);\n        goto LAB_000205e8;\n      }\n    }\nLAB_00020c64:\n    rVar11 = _REG_ESPACE;\n  }\n  if (puVar21 == *(undefined4 **)puVar40) {\n    return rVar11;\n  }\n  pcVar18 = set_regs;\n  puVar40 = PTR___stack_chk_fail_0003c2f4;\n  (*(code *)PTR___stack_chk_fail_0003c2f4)();\n  auStackY_138._0_4_ = puVar40 + 0x23430;\n  puVar41 = auStackY_150;\n  puVar42 = auStackY_150;\n  auStackY_138._12_4_ = *(undefined4 *)(puVar40 + 0x1b674);\n  uStackY_ec = 2;\n  auStackY_138._72_4_ = 0;\n  iStackY_e8 = 0;\n  prStackY_e4 = *(re_match_context_t **)auStackY_138._12_4_;\n  piVar38 = (int *)*puVar21;\n  prVar5 = mctx_01;\n  prVar15 = prVar25;\n  prVar27 = context;\n  prStackY_e0 = prVar34;\n  pprStackY_dc = (re_dfastate_t **)top_str;\n  prStackY_d8 = input;\n  prStackY_d4 = (re_dfa_t *)top_node;\n  pprStackY_d0 = pprVar36;\n  prStackY_cc = unaff_s5;\n  prStackY_c8 = mctx;\n  prStackY_c4 = unaff_s7;\n  prStackY_c0 = unaff_s8;\n  pcStackY_bc = pcVar18;\n  if (cVar44 == '\0') {\n    prVar34 = (re_dfa_t *)piVar38[0x12];\n    fs = (re_fail_stack_t *)0x0;\n    if ((uint)((int)prVar25 << 3) < 0xfc0) goto LAB_00020d5c;\nLAB_00021488:\n    auStackY_138._28_4_ = (int)prVar25 << 3;\n    auStackY_138._68_4_ = 0;\n    auStackY_138._64_4_ = 0;\n    auStackY_138._60_4_ = 0;\n    top_node = (Idx)(auStackY_138 + 0x3c);\n    auStackY_138._20_4_ = (**(code **)(auStackY_138._0_4_ + -0x7e1c))(auStackY_138._28_4_);\n    auStackY_138._16_4_ = 1;\n    if ((re_dfa_t *)auStackY_138._20_4_ != (re_dfa_t *)0x0) goto LAB_00020d6c;\n    puVar41 = auStackY_150;\n    if (fs == (re_fail_stack_t *)0x0) {\n      rVar11 = _REG_ESPACE;\n      goto LAB_00020f18;\n    }\nLAB_0002112c:\n    top_node = (Idx)(auStackY_138 + 0x3c);\n    free_fail_stack_return(fs);\n    puVar43 = puVar41;\n  }\n  else {\n    fs = (re_fail_stack_t *)(auStackY_138 + 0x48);\n    iStackY_e8 = (**(code **)(puVar40 + 0x1b614))(0x30);\n    puVar43 = auStackY_150;\n    if (iStackY_e8 != 0) {\n      prVar34 = (re_dfa_t *)piVar38[0x12];\n      if (0xfbf < (uint)((int)prVar25 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      auStackY_138._28_4_ = (int)prVar25 << 3;\n      auStackY_138._68_4_ = 0;\n      auStackY_138._64_4_ = 0;\n      auStackY_138._60_4_ = 0;\n      puVar41 = auStackY_150 + (int)prVar25 * -8;\n      auStackY_138._16_4_ = 0;\n      auStackY_138._20_4_ = auStackY_138 + (int)prVar25 * -8;\nLAB_00020d6c:\n      top_node = (Idx)(auStackY_138 + 0x3c);\n      prVar5 = context;\n      prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n      (**(code **)(auStackY_138._0_4_ + -0x7db8))(auStackY_138._20_4_);\n      auStackY_138._56_4_ = (re_dfa_t *)context->nodes;\n      auStackY_138._24_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x12ec);\n      auStackY_138._52_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x5d30);\n      auStackY_138._36_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x7b38);\nLAB_00020db0:\n      prVar35 = (re_dfa_t *)context->nodes_alloc;\n      auStackY_138._40_4_ = *(undefined4 *)(auStackY_138._0_4_ + -0x7ee8);\n      auStackY_138._32_4_ = *(undefined4 *)(auStackY_138._0_4_ + -0x7ee8);\n      pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);\n      puVar40 = (undefined *)auStackY_138._0_4_;\n      puVar42 = puVar41;\n      if ((int)auStackY_138._56_4_ <= (int)prVar35) {\n        do {\n          input = prVar34;\n          prVar34 = (re_dfa_t *)((int)input * 8);\n          prVar15 = (re_dfa_t *)0x8;\n          piVar10 = (int *)((int)prVar34->word_char + *piVar38 + -0x60);\n          prVar5 = (re_dfa_t *)(uint)*(byte *)(piVar10 + 1);\n          prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n          if (prVar5 == (re_dfa_t *)0x8) {\n            iVar8 = *piVar10;\n            prVar5 = (re_dfa_t *)(uint)(iVar8 + 1 < (int)prVar25);\n            if (prVar5 != (re_dfa_t *)0x0) {\n              (context->word_char + iVar8 * 2 + -0x16)[1] = 0xffffffff;\n              context->word_char[iVar8 * 2 + -0x16] = auStackY_138._56_4_;\n              prVar35 = (re_dfa_t *)context->nodes_alloc;\n            }\n          }\n          else {\n            prVar15 = (re_dfa_t *)&DAT_00000009;\n            if (prVar5 == (re_dfa_t *)&DAT_00000009) {\n              prVar15 = (re_dfa_t *)(uint)(*piVar10 + 1 < (int)prVar25);\n              prVar5 = (re_dfa_t *)(*piVar10 * 8 + 8);\n              if (prVar15 != (re_dfa_t *)0x0) {\n                piVar32 = (int *)((int)(((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8) +\n                                 (int)((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))->word_char + 0xffffffa0U);\n                pcVar18 = *(code **)(puVar40 + -0x7db8);\n                if (*piVar32 < (int)auStackY_138._56_4_) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)auStackY_138._20_4_;\n                  prVar5 = context;\n                }\n                else if (((piVar10[1] & 0x1000U) == 0) ||\n                        (pbVar3 = prVar5->word_char, prVar35 = context,\n                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1)) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)context->nodes_alloc;\n                  goto LAB_00020df8;\n                }\n                prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                auStackY_138._44_4_ = prVar34;\n                auStackY_138._48_4_ = auStackY_138._56_4_;\n                (*pcVar18)(prVar35);\n                prVar35 = (re_dfa_t *)context->nodes_alloc;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar34 = (re_dfa_t *)auStackY_138._44_4_;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n              }\n            }\n          }\nLAB_00020df8:\n          uVar33 = auStackY_138._24_4_;\n          if ((prVar27 == prVar35) && ((re_dfa_t *)mctx_01->word_char[0] == input)) {\n            pcVar18 = *(code **)(puVar40 + -0x7db0);\n            if (fs == (re_fail_stack_t *)0x0) {\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ == 0) goto LAB_00020f14;\n              (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              rVar11 = _REG_NOERROR;\n              goto LAB_00020f18;\n            }\n            prVar34 = (re_dfa_t *)0x0;\n            if (prVar25 == (re_dfa_t *)0x0) {\nLAB_000212c0:\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ != 0) {\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              }\n              goto LAB_00020f00;\n            }\n            prVar5 = (re_dfa_t *)0xffffffff;\n            prVar35 = context;\n            while (((int)prVar35->nodes < 0 || (prVar35->nodes_alloc != 0xffffffff))) {\n              prVar34 = (re_dfa_t *)((int)&prVar34->nodes + 1);\n              prVar35 = (re_dfa_t *)&prVar35->nodes_len;\n              if (prVar25 == prVar34) {\n                pcVar18 = *(code **)(puVar40 + -0x7db0);\n                goto LAB_000212c0;\n              }\n            }\n            *(Idx *)(puVar41 + 0x14) = top_node;\n            *(re_dfa_t **)(puVar41 + 0x10) = context;\n            prVar27 = prVar25;\n            input = (re_dfa_t *)(*(code *)uVar33)(fs,&fs->stack,auStackY_138 + 0x38);\n            prVar34 = (re_dfa_t *)((int)input << 3);\n            puVar40 = (undefined *)auStackY_138._0_4_;\n          }\n          prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n          prVar30 = (re_dfa_t *)mctx_01->completed_bkref_map;\n          prVar22 = (re_dfa_t *)prVar30->nodes;\n          prVar5 = (re_dfa_t *)\n                   ((int)(((re_dfa_t *)\n                          (((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))->\n                          word_char + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U);\n          prVar15 = (re_dfa_t *)(uint)*(byte *)&prVar5->nodes_alloc;\n          if ((*(byte *)&prVar5->nodes_alloc & 8) == 0) {\n            if ((prVar5->nodes_alloc & 0x800) == 0) {\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n              if (prVar15 != (re_dfa_t *)0x4) goto LAB_00020e44;\n              pprVar2 = &prVar5->nodes;\n              prVar5 = (re_dfa_t *)(context->word_char + (int)*pprVar2 * 2 + -0x16)[1];\n              bVar23 = context->word_char[(int)*pprVar2 * 2 + -0x16];\n              prVar27 = (re_dfa_t *)((int)prVar5 - bVar23);\n              if (fs == (re_fail_stack_t *)0x0) {\n                if (prVar27 == (re_dfa_t *)0x0) goto LAB_00021318;\n              }\n              else {\n                prVar22 = input;\n                if ((bVar23 == 0xffffffff) ||\n                   (prVar15 = (re_dfa_t *)(auStackY_138 + 0x38), prVar5 == (re_dfa_t *)0xffffffff))\n                goto LAB_00020f7c;\n                if (prVar27 == (re_dfa_t *)0x0) {\nLAB_00021318:\n                  prVar5 = input;\n                  auStackY_138._44_4_ = prVar34;\n                  auStackY_138._48_4_ = prVar30;\n                  iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n                  prVar34 = input;\n                  if (iVar8 == 0) goto LAB_000213ac;\n                  pprVar1 = (re_node_set **)(auStackY_138._48_4_ + 0x14);\n                  auStackY_138._8_4_ = auStackY_138._48_4_;\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n                  prVar34 = (re_dfa_t *)*(*pprVar1)[(int)input].elems;\n                  prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n                  prVar15 = prVar34;\n                  iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n                  puVar40 = (undefined *)auStackY_138._0_4_;\n                  if (iVar8 != 0) goto LAB_00020ecc;\n                  prVar5 = (re_dfa_t *)\n                           ((int)(auStackY_138._44_4_ + 0x60) +\n                           (int)(*(re_token_t **)auStackY_138._8_4_ + -0xc));\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  prVar30 = (re_dfa_t *)auStackY_138._8_4_;\n                  goto LAB_00020e44;\n                }\n                prVar5 = (re_dfa_t *)\n                         ((int)(auStackY_138._56_4_ + 0x60) + (mctx_01->nodes_alloc - 0x60));\n                auStackY_138._44_4_ = prVar30;\n                auStackY_138._48_4_ = prVar27;\n                iVar8 = (**(code **)(puVar40 + -0x7dd0))(mctx_01->nodes_alloc + bVar23);\n                prVar15 = prVar27;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar30 = (re_dfa_t *)auStackY_138._44_4_;\n                prVar22 = prVar35;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if (iVar8 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              auStackY_138._56_4_ =\n                   (int)(((re_dfa_t *)\n                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))->word_char\n                        + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U;\n              prVar34 = *(re_dfa_t **)(((re_node_set *)&prVar30->nexts)->alloc + (int)input * 4);\n              input = prVar35;\n            }\n            else {\n              prVar5 = (re_dfa_t *)&prVar30->syntax;\n              auStackY_138._48_4_ = prVar30;\n              auStackY_138._44_4_ = prVar34;\n              *(undefined4 *)(puVar41 + 0x10) = auStackY_138._56_4_;\n              prVar15 = input;\n              prVar27 = (re_dfa_t *)\n                        check_node_accept_bytes\n                                  (prVar22,(Idx)prVar5,(re_string_t *)input,(Idx)mctx_01,\n                                   *(re_dfa_t **)(puVar41 + 0x10));\n              prVar30 = (re_dfa_t *)auStackY_138._48_4_;\n              prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (prVar27 != (re_dfa_t *)0x0) goto LAB_00021258;\n              prVar5 = (re_dfa_t *)\n                       ((int)(auStackY_138._44_4_ + 0x60) +\n                       (int)(*(re_token_t **)auStackY_138._48_4_ + -0xc));\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_00020e44:\n              prVar15 = prVar27;\n              auStackY_138._44_4_ = prVar30;\n              auStackY_138._48_4_ = prVar15;\n              _Var14 = check_node_accept((re_match_context_t *)mctx_01,(re_token_t *)prVar5,\n                                         (Idx)prVar15);\n              prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (CONCAT31(extraout_var,_Var14) == 0) goto LAB_00020f6c;\n              auStackY_138._56_4_ = (int)(re_token_t **)auStackY_138._48_4_ + 1;\n              input = (re_dfa_t *)\n                      (((re_node_set *)(auStackY_138._44_4_ + 0xc))->alloc + (int)input * 4);\n              prVar34 = (re_dfa_t *)input->nodes;\n            }\n            if (fs != (re_fail_stack_t *)0x0) {\n              prVar22 = input;\n              if ((mctx_01->mb_cur_max < (int)auStackY_138._56_4_) ||\n                 (iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4), iVar8 == 0))\n              goto LAB_00020f7c;\n              prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n              prVar15 = prVar34;\n              iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (iVar8 == 0) goto LAB_00020f7c;\n            }\n            auStackY_138._64_4_ = 0;\n          }\n          else {\n            prVar34 = (re_dfa_t *)(prVar30->edests + (int)input);\n            iVar13 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n            iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n            prVar5 = input;\n            if (iVar8 == 0) {\nLAB_000213ac:\n              input = prVar34;\n              pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);\n              goto LAB_000213b0;\n            }\n            sVar28 = prVar34->nodes_alloc;\n            input = prVar34;\n            puVar40 = (undefined *)auStackY_138._0_4_;\n            if ((int)sVar28 < 1) goto LAB_00020f6c;\n            uVar33 = *(undefined4 *)(iVar13 + 8);\n            pIVar31 = (Idx *)prVar34->nodes_len;\n            sVar29 = 0;\n            prVar22 = (re_dfa_t *)0xffffffff;\n            prVar35 = (re_dfa_t *)(iVar13 + 0xc);\n            prVar30 = (re_dfa_t *)0xffffffff;\n            do {\n              prVar5 = prVar35;\n              input = (re_dfa_t *)*pIVar31;\n              prVar15 = input;\n              prVar35 = prVar5;\n              iVar8 = (*(code *)auStackY_138._52_4_)(uVar33);\n              prVar34 = prVar30;\n              if ((iVar8 != 0) && (prVar34 = input, prVar30 != prVar22)) {\n                prVar5 = (re_dfa_t *)(auStackY_138 + 0x44);\n                prVar15 = prVar30;\n                iVar8 = (*(code *)auStackY_138._52_4_)(auStackY_138._64_4_);\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if ((iVar8 != 0) || (prVar34 = prVar30, fs == (re_fail_stack_t *)0x0)) break;\n                prVar15 = (re_dfa_t *)fs->num;\n                prVar5 = (re_dfa_t *)((int)&prVar15->nodes + 1);\n                fs->num = (Idx)prVar5;\n                if (prVar5 == (re_dfa_t *)fs->alloc) {\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  prVar5 = (re_dfa_t *)((int)prVar5 * 0x30);\n                  auStackY_138._44_4_ = prVar15;\n                  prVar12 = (re_fail_stack_ent_t *)\n                            (**(code **)(auStackY_138._0_4_ + -0x7e18))(fs->stack);\n                  if (prVar12 != (re_fail_stack_ent_t *)0x0) {\n                    fs->stack = prVar12;\n                    fs->alloc = fs->alloc << 1;\n                    prVar15 = (re_dfa_t *)auStackY_138._44_4_;\n                    prVar34 = (re_dfa_t *)auStackY_138._48_4_;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  prVar12 = fs->stack;\n                  prVar34 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_000210a0:\n                  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7e1c);\n                  auStackY_138._48_4_ = prVar12 + (int)prVar15;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes = (re_token_t *)prVar34;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes_alloc = (size_t)input;\n                  pIVar31 = (Idx *)(*pcVar18)(auStackY_138._28_4_);\n                  *(Idx **)(auStackY_138._48_4_ + 8) = pIVar31;\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  if (pIVar31 != (Idx *)0x0) {\n                    prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                    (**(code **)(auStackY_138._0_4_ + -0x7db8))(pIVar31,context);\n                    prVar5 = (re_dfa_t *)top_node;\n                    prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                    rVar11 = re_node_set_init_copy\n                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node);\n                    prVar34 = prVar30;\n                    puVar40 = (undefined *)auStackY_138._0_4_;\n                    if (rVar11 == _REG_NOERROR) break;\n                  }\n                }\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._68_4_);\n                if (auStackY_138._16_4_ != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              sVar29 = sVar29 + 1;\n              pIVar31 = pIVar31 + 1;\n              prVar30 = prVar34;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n            } while (sVar28 != sVar29);\n          }\nLAB_00020ecc:\n          if ((int)prVar34 < 0) goto LAB_00020f60;\n          prVar35 = (re_dfa_t *)context->nodes_alloc;\n          pcVar18 = *(code **)(puVar40 + -0x7db0);\n          if ((int)prVar35 < (int)auStackY_138._56_4_) break;\n        } while( true );\n      }\n      prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n      (*pcVar18)(auStackY_138._68_4_);\n      if (auStackY_138._16_4_ == 0) {\n        rVar11 = _REG_NOERROR;\n        if (fs == (re_fail_stack_t *)0x0) goto LAB_00020f18;\n      }\n      else {\n        (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n        if (fs == (re_fail_stack_t *)0x0) {\n          rVar11 = _REG_NOERROR;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      free_fail_stack_return(fs);\nLAB_00020f14:\n      rVar11 = _REG_NOERROR;\n      goto LAB_00020f18;\n    }\n  }\n  rVar11 = _REG_ESPACE;\n  puVar42 = puVar43;\nLAB_00020f18:\n  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7ddc);\n  if (prStackY_e4 == *(re_match_context_t **)auStackY_138._12_4_) {\n    return rVar11;\n  }\n  pcVar19 = get_subexp_sub;\n  mctx_00 = prStackY_e4;\n  (*pcVar18)();\n  *(re_dfa_t **)(puVar42 + -0x18) = input;\n  *(Idx *)(puVar42 + -0x14) = top_node;\n  *(re_dfa_t **)(puVar42 + -0x1c) = context;\n  *(re_dfa_t **)(puVar42 + -0x10) = prVar25;\n  *(code **)(puVar42 + -0x28) = pcVar18 + 0x22b80;\n  *(re_dfa_t **)(puVar42 + -0x20) = mctx_01;\n  *(code **)(puVar42 + -4) = pcVar19;\n  *(int **)(puVar42 + -8) = piVar38;\n  *(re_fail_stack_t **)(puVar42 + -0xc) = fs;\n  iVar8 = *(int *)(puVar42 + 0x10);\n  sVar28 = prVar15->nodes_alloc;\n  prVar26 = prVar15->nodes;\n  *(undefined4 *)(puVar42 + -0x30) = 8;\n  *(int *)(puVar42 + -0x34) = iVar8;\n  *(re_dfa_t **)(puVar42 + -0x38) = prVar27;\n  rVar11 = check_arrival(mctx_00,(state_array_t *)&prVar15->nodes_len,(Idx)prVar26,sVar28,\n                         *(Idx *)(puVar42 + -0x38),*(Idx *)(puVar42 + -0x34),\n                         *(int *)(puVar42 + -0x30));\n  if (rVar11 != _REG_NOERROR) {\n    return rVar11;\n  }\n  iVar13 = mctx_00->nbkref_ents;\n  prVar39 = prVar5->nodes;\n  prVar37 = (re_token_t *)prVar15->nodes_alloc;\n  prVar24 = mctx_00->bkref_ents;\n  prVar26 = prVar37;\n  if (mctx_00->abkref_ents <= iVar13) {\n    prVar24 = (re_backref_cache_entry *)\n              (**(code **)(*(int *)(puVar42 + -0x28) + -0x7e18))\n                        (prVar24,mctx_00->abkref_ents * 0x28);\n    if (prVar24 == (re_backref_cache_entry *)0x0) {\n      (**(code **)(*(int *)(puVar42 + -0x28) + -0x7db0))(mctx_00->bkref_ents);\n      return _REG_ESPACE;\n    }\n    pcVar18 = *(code **)(*(int *)(puVar42 + -0x28) + -0x7e40);\n    mctx_00->bkref_ents = prVar24;\n    (*pcVar18)(prVar24 + mctx_00->nbkref_ents,0,mctx_00->abkref_ents * 0x14);\n    prVar26 = (re_token_t *)prVar15->nodes_alloc;\n    iVar13 = mctx_00->nbkref_ents;\n    prVar24 = mctx_00->bkref_ents;\n    mctx_00->abkref_ents = mctx_00->abkref_ents << 1;\n  }\n  if ((0 < iVar13) && (iVar8 == prVar24[iVar13 + -1].str_idx)) {\n    prVar24[iVar13 + -1].more = '\x01';\n  }\n  prVar24 = prVar24 + iVar13;\n  prVar24->node = (Idx)prVar27;\n  prVar24->str_idx = iVar8;\n  prVar24->subexp_from = (Idx)prVar39;\n  prVar24->subexp_to = (Idx)prVar37;\n  prVar24->eps_reachable_subexps_map = -(ushort)(prVar39 == prVar37);\n  mctx_00->nbkref_ents = iVar13 + 1;\n  prVar24->more = '\0';\n  if (mctx_00->max_mb_elem_len < (int)prVar37 - (int)prVar39) {\n    mctx_00->max_mb_elem_len = (int)prVar37 - (int)prVar39;\n  }\n  rVar11 = clean_state_log_if_needed(mctx_00,(int)prVar26 + (iVar8 - (int)prVar5->nodes));\n  return rVar11;\nLAB_00020f60:\n  pcVar18 = *(code **)(puVar40 + -0x7db0);\n  prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n  if (prVar34 == (re_dfa_t *)&SUB_fffffffe) {\nLAB_000213b0:\n    (*pcVar18)(auStackY_138._68_4_);\n    if (auStackY_138._16_4_ != 0) {\nLAB_000214d4:\n      (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n    }\n    if (fs != (re_fail_stack_t *)0x0) goto LAB_0002112c;\n    rVar11 = _REG_ESPACE;\n    goto LAB_00020f18;\n  }\nLAB_00020f6c:\n  prVar22 = input;\n  if (fs == (re_fail_stack_t *)0x0) {\n    (**(code **)(puVar40 + -0x7db0))(auStackY_138._68_4_);\n    if (auStackY_138._16_4_ == 0) {\n      rVar11 = _REG_NOMATCH;\n    }\n    else {\n      (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n      rVar11 = _REG_NOMATCH;\n    }\n    goto LAB_00020f18;\n  }\nLAB_00020f7c:\n  uVar33 = auStackY_138._24_4_;\n  prVar15 = (re_dfa_t *)(auStackY_138 + 0x38);\n  prVar5 = (re_dfa_t *)&fs->stack;\n  *(Idx *)(puVar41 + 0x14) = top_node;\n  *(re_dfa_t **)(puVar41 + 0x10) = context;\n  prVar34 = (re_dfa_t *)(*(code *)uVar33)(fs,prVar5,prVar15,prVar25);\n  input = prVar22;\n  goto LAB_00020db0;\n}" { (declaration "re_node_set **pprVar1;" type_identifier (pointer_declarator "**pprVar1" * (pointer_declarator "*pprVar1" * identifier)) ;) (declaration "re_token_t **pprVar2;" type_identifier (pointer_declarator "**pprVar2" * (pointer_declarator "*pprVar2" * identifier)) ;) (declaration "bitset_word_t *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined3 extraout_var;" type_identifier identifier ;) (declaration "re_dfa_t *prVar5;" type_identifier (pointer_declarator "*prVar5" * identifier) ;) (declaration "re_dfastate_t **pprVar6;" type_identifier (pointer_declarator "**pprVar6" * (pointer_declarator "*pprVar6" * identifier)) ;) (declaration "code *pcVar7;" type_identifier (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "re_dfa_t *context;" type_identifier (pointer_declarator "*context" * identifier) ;) (declaration "re_dfastate_t *prVar9;" type_identifier (pointer_declarator "*prVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "_Bool _Var14;" type_identifier identifier ;) (declaration "reg_errcode_t rVar11;" type_identifier identifier ;) (declaration "re_fail_stack_ent_t *prVar12;" type_identifier (pointer_declarator "*prVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "re_dfa_t *prVar15;" type_identifier (pointer_declarator "*prVar15" * identifier) ;) (declaration "re_dfastate_t **pprVar16;" type_identifier (pointer_declarator "**pprVar16" * (pointer_declarator "*pprVar16" * identifier)) ;) (declaration "Idx IVar17;" type_identifier identifier ;) (declaration "code *pcVar18;" type_identifier (pointer_declarator "*pcVar18" * identifier) ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "undefined4 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "re_node_set *set;" type_identifier (pointer_declarator "*set" * identifier) ;) (declaration "re_dfa_t *prVar22;" type_identifier (pointer_declarator "*prVar22" * identifier) ;) (declaration "bitset_word_t bVar23;" type_identifier identifier ;) (declaration "re_match_context_t *mctx_00;" type_identifier (pointer_declarator "*mctx_00" * identifier) ;) (declaration "re_backref_cache_entry *prVar24;" type_identifier (pointer_declarator "*prVar24" * identifier) ;) (declaration "re_dfa_t *mctx_01;" type_identifier (pointer_declarator "*mctx_01" * identifier) ;) (declaration "re_dfa_t *prVar25;" type_identifier (pointer_declarator "*prVar25" * identifier) ;) (declaration "re_token_t *prVar26;" type_identifier (pointer_declarator "*prVar26" * identifier) ;) (declaration "re_dfa_t *prVar27;" type_identifier (pointer_declarator "*prVar27" * identifier) ;) (declaration "size_t sVar28;" primitive_type identifier ;) (declaration "size_t sVar29;" primitive_type identifier ;) (declaration "re_dfa_t *prVar30;" type_identifier (pointer_declarator "*prVar30" * identifier) ;) (declaration "Idx *pIVar31;" type_identifier (pointer_declarator "*pIVar31" * identifier) ;) (declaration "int *piVar32;" primitive_type (pointer_declarator "*piVar32" * identifier) ;) (declaration "undefined4 uVar33;" type_identifier identifier ;) (declaration "re_dfa_t *prVar34;" type_identifier (pointer_declarator "*prVar34" * identifier) ;) (declaration "re_dfa_t *prVar35;" type_identifier (pointer_declarator "*prVar35" * identifier) ;) (declaration "re_dfa_t *input;" type_identifier (pointer_declarator "*input" * identifier) ;) (declaration "re_dfastate_t **pprVar36;" type_identifier (pointer_declarator "**pprVar36" * (pointer_declarator "*pprVar36" * identifier)) ;) (declaration "re_dfa_t *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "re_fail_stack_t *fs;" type_identifier (pointer_declarator "*fs" * identifier) ;) (declaration "re_token_t *prVar37;" type_identifier (pointer_declarator "*prVar37" * identifier) ;) (declaration "int *piVar38;" primitive_type (pointer_declarator "*piVar38" * identifier) ;) (declaration "re_token_t *prVar39;" type_identifier (pointer_declarator "*prVar39" * identifier) ;) (declaration "re_dfastate_t *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "undefined *puVar40;" type_identifier (pointer_declarator "*puVar40" * identifier) ;) (declaration "undefined1 *puVar41;" type_identifier (pointer_declarator "*puVar41" * identifier) ;) (declaration "undefined1 *puVar42;" type_identifier (pointer_declarator "*puVar42" * identifier) ;) (declaration "undefined1 *puVar43;" type_identifier (pointer_declarator "*puVar43" * identifier) ;) (declaration "re_dfa_t *unaff_s8;" type_identifier (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "undefined1 auStackY_150 [24];" type_identifier (array_declarator "auStackY_150 [24]" identifier [ number_literal ]) ;) (declaration "undefined1 auStackY_138 [76];" type_identifier (array_declarator "auStackY_138 [76]" identifier [ number_literal ]) ;) (declaration "undefined4 uStackY_ec;" type_identifier identifier ;) (declaration "int iStackY_e8;" primitive_type identifier ;) (declaration "re_match_context_t *prStackY_e4;" type_identifier (pointer_declarator "*prStackY_e4" * identifier) ;) (declaration "re_dfa_t *prStackY_e0;" type_identifier (pointer_declarator "*prStackY_e0" * identifier) ;) (declaration "re_dfastate_t **pprStackY_dc;" type_identifier (pointer_declarator "**pprStackY_dc" * (pointer_declarator "*pprStackY_dc" * identifier)) ;) (declaration "re_dfa_t *prStackY_d8;" type_identifier (pointer_declarator "*prStackY_d8" * identifier) ;) (declaration "re_dfa_t *prStackY_d4;" type_identifier (pointer_declarator "*prStackY_d4" * identifier) ;) (declaration "re_dfastate_t **pprStackY_d0;" type_identifier (pointer_declarator "**pprStackY_d0" * (pointer_declarator "*pprStackY_d0" * identifier)) ;) (declaration "re_dfa_t *prStackY_cc;" type_identifier (pointer_declarator "*prStackY_cc" * identifier) ;) (declaration "re_match_context_t *prStackY_c8;" type_identifier (pointer_declarator "*prStackY_c8" * identifier) ;) (declaration "re_dfastate_t *prStackY_c4;" type_identifier (pointer_declarator "*prStackY_c4" * identifier) ;) (declaration "re_dfa_t *prStackY_c0;" type_identifier (pointer_declarator "*prStackY_c0" * identifier) ;) (declaration "code *pcStackY_bc;" type_identifier (pointer_declarator "*pcStackY_bc" * identifier) ;) (declaration "re_dfa_t *in_stack_ffffff58;" type_identifier (pointer_declarator "*in_stack_ffffff58" * identifier) ;) (declaration "char cVar44;" primitive_type identifier ;) (declaration "re_dfa_t *prStack_94;" type_identifier (pointer_declarator "*prStack_94" * identifier) ;) (declaration "int iStack_8c;" primitive_type identifier ;) (declaration "code *pcStack_6c;" type_identifier (pointer_declarator "*pcStack_6c" * identifier) ;) (declaration "reg_errcode_t err;" type_identifier identifier ;) (declaration "reg_errcode_t err_1;" type_identifier identifier ;) (declaration "re_node_set next_nodes;" type_identifier identifier ;) (declaration "re_node_set union_set;" type_identifier identifier ;) (expression_statement "puVar40 = PTR___stack_chk_guard_0003c314;" (assignment_expression "puVar40 = PTR___stack_chk_guard_0003c314" identifier = identifier) ;) (expression_statement "cVar44 = (char)in_stack_ffffff58;" (assignment_expression "cVar44 = (char)in_stack_ffffff58" identifier = (cast_expression "(char)in_stack_ffffff58" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "prVar15 = mctx->dfa;" (assignment_expression "prVar15 = mctx->dfa" identifier = (field_expression "mctx->dfa" identifier -> field_identifier)) ;) (expression_statement "input = (re_dfa_t *)path->alloc;" (assignment_expression "input = (re_dfa_t *)path->alloc" identifier = (cast_expression "(re_dfa_t *)path->alloc" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "path->alloc" identifier -> field_identifier))) ;) (expression_statement "puVar21 = *(undefined4 **)PTR___stack_chk_guard_0003c314;" (assignment_expression "puVar21 = *(undefined4 **)PTR___stack_chk_guard_0003c314" identifier = (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_0003c314" * (cast_expression "(undefined4 **)PTR___stack_chk_guard_0003c314" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "mctx_01 = (re_dfa_t *)(top_node * 8);" (assignment_expression "mctx_01 = (re_dfa_t *)(top_node * 8)" identifier = (cast_expression "(re_dfa_t *)(top_node * 8)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(top_node * 8)" ( (binary_expression "top_node * 8" identifier * number_literal) )))) ;) (expression_statement "prVar25 = (re_dfa_t *)(last_str + mctx->max_mb_elem_len);" (assignment_expression "prVar25 = (re_dfa_t *)(last_str + mctx->max_mb_elem_len)" identifier = (cast_expression "(re_dfa_t *)(last_str + mctx->max_mb_elem_len)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(last_str + mctx->max_mb_elem_len)" ( (binary_expression "last_str + mctx->max_mb_elem_len" identifier + (field_expression "mctx->max_mb_elem_len" identifier -> field_identifier)) )))) ;) (expression_statement "err = _REG_NOERROR;" (assignment_expression "err = _REG_NOERROR" identifier = identifier) ;) (expression_statement "prVar5 = *(re_dfa_t **)((int)mctx_01->word_char + (int)(prVar15->nodes + -0xc));" (assignment_expression "prVar5 = *(re_dfa_t **)((int)mctx_01->word_char + (int)(prVar15->nodes + -0xc))" identifier = (pointer_expression "*(re_dfa_t **)((int)mctx_01->word_char + (int)(prVar15->nodes + -0xc))" * (cast_expression "(re_dfa_t **)((int)mctx_01->word_char + (int)(prVar15->nodes + -0xc))" ( (type_descriptor "re_dfa_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)mctx_01->word_char + (int)(prVar15->nodes + -0xc))" ( (binary_expression "(int)mctx_01->word_char + (int)(prVar15->nodes + -0xc)" (cast_expression "(int)mctx_01->word_char" ( (type_descriptor "int" primitive_type) ) (field_expression "mctx_01->word_char" identifier -> field_identifier)) + (cast_expression "(int)(prVar15->nodes + -0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(prVar15->nodes + -0xc)" ( (binary_expression "prVar15->nodes + -0xc" (field_expression "prVar15->nodes" identifier -> field_identifier) + number_literal) )))) ))))) ;) (expression_statement "context = (re_dfa_t *)top_str;" (assignment_expression "context = (re_dfa_t *)top_str" identifier = (cast_expression "(re_dfa_t *)top_str" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((int)prVar25 < (int)input) {\nLAB_000205e8:\n    puVar4 = PTR_LAB_0003c1e8;\n    pprVar16 = mctx->state_log;\n    prVar25 = (re_dfa_t *)mctx->eflags;\n    prVar34 = (re_dfa_t *)path->next_idx;\n    pprVar36 = path->array;\n    IVar17 = (mctx->input).cur_idx;\n    if (prVar34 == (re_dfa_t *)0x0) {\n      mctx->state_log = pprVar36;\n      mctx_01 = (re_dfa_t *)(top_str + -1);\n      (mctx->input).cur_idx = top_str;\n      input = (re_dfa_t *)re_string_context_at(&mctx->input,(Idx)mctx_01,(int)prVar25);\nLAB_00020b7c:\n      next_nodes.alloc = 1;\n      next_nodes.nelem = 1;\n      next_nodes.elems = (Idx *)(*(code *)PTR_malloc_0003c2b4)(4);\n      cVar44 = (char)in_stack_ffffff58;\n      if (next_nodes.elems == (Idx *)0x0) goto LAB_00020c64;\n      mctx_01 = (re_dfa_t *)&next_nodes;\n      *next_nodes.elems = top_node;\n      err = _REG_NOERROR;\n      prVar25 = prVar5;\n      context = (re_dfa_t *)type;\n      err = check_arrival_expand_ecl(prVar15,(re_node_set *)mctx_01,(Idx)prVar5,type);\n      cVar44 = (char)in_stack_ffffff58;\n      prVar34 = (re_dfa_t *)top_str;\n      if (err == _REG_NOERROR) {\nLAB_00020ab8:\n        prStack_94 = (re_dfa_t *)&next_nodes;\n        if (next_nodes.nelem != 0) {\n          mctx_01 = prStack_94;\n          prVar25 = prVar34;\n          context = prVar5;\n          in_stack_ffffff58 = (re_dfa_t *)type;\n          err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar34,(Idx)prVar5,type);\n          cVar44 = (char)in_stack_ffffff58;\n          if (err != _REG_NOERROR) goto LAB_00020920;\n        }\n        mctx_01 = prVar15;\n        context = input;\n        unaff_s7 = re_acquire_state_context(&err,prVar15,(re_node_set *)prStack_94,(uint)input);\n        cVar44 = (char)in_stack_ffffff58;\n        prVar25 = prStack_94;\n        if ((unaff_s7 != (re_dfastate_t *)0x0) || (err == _REG_NOERROR)) {\n          mctx->state_log[(int)prVar34] = unaff_s7;\n          prVar27 = prVar34;\n          goto LAB_00020670;\n        }\n      }\nLAB_00020920:\n      (*(code *)PTR_free_0003c320)(next_nodes.elems);\n      rVar11 = err;\n    }\n    else {\n      mctx->state_log = pprVar36;\n      mctx_01 = (re_dfa_t *)((int)&prVar34[-1].subexp_map + 3);\n      (mctx->input).cur_idx = (Idx)prVar34;\n      input = (re_dfa_t *)re_string_context_at(&mctx->input,(Idx)mctx_01,(int)prVar25);\n      if (prVar34 == (re_dfa_t *)top_str) goto LAB_00020b7c;\n      pprVar36 = pprVar36 + (int)prVar34;\n      unaff_s7 = *pprVar36;\n      prVar27 = prVar34;\n      if ((unaff_s7 == (re_dfastate_t *)0x0) || ((unaff_s7->field_0x34 & 2) == 0)) {\n        next_nodes.alloc = 0;\n        next_nodes.nelem = 0;\n        next_nodes.elems = (Idx *)0x0;\nLAB_00020670:\n        cVar44 = (char)in_stack_ffffff58;\n        pcStack_6c = (code *)(puVar4 + -0x34b0);\n        prStack_94 = (re_dfa_t *)&next_nodes;\n        if (((int)prVar27 < last_str) && (-1 < mctx->max_mb_elem_len)) {\n          pprVar6 = mctx->state_log;\n          iStack_8c = 0;\n          pcVar18 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar19 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar20 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          prVar34 = prVar27;\n          unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1);\n          do {\n            prVar27 = unaff_s8;\n            next_nodes.nelem = 0;\n            top_node = (int)&prVar27[-1].subexp_map + 3;\n            if (pprVar6[(int)prVar27] == (re_dfastate_t *)0x0) {\n              rVar11 = err;\n              if (unaff_s7 != (re_dfastate_t *)0x0) goto LAB_000206f8;\n              iVar8 = mctx->eflags;\n            }\n            else {\n              mctx_01 = (re_dfa_t *)&pprVar6[(int)prVar27]->nodes;\n              err = re_node_set_merge((re_node_set *)prStack_94,(re_node_set *)mctx_01);\n              cVar44 = (char)in_stack_ffffff58;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              rVar11 = _REG_NOERROR;\n              if (unaff_s7 != (re_dfastate_t *)0x0) {\nLAB_000206f8:\n                err = rVar11;\n                unaff_s5 = (re_dfa_t *)&union_set;\n                input = mctx->dfa;\n                union_set.alloc = 0;\n                err_1 = _REG_NOERROR;\n                union_set.nelem = 0;\n                union_set.elems = (Idx *)0x0;\n                if (0 < (unaff_s7->non_eps_nodes).nelem) {\n                  pprVar36 = (re_dfastate_t **)0x0;\n                  pcVar7 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    prVar35 = (re_dfa_t *)(unaff_s7->non_eps_nodes).elems[(int)pprVar36];\n                    top_str = (int)prVar35 * 8;\n                    prVar26 = (re_token_t *)\n                              ((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60));\n                    if ((*(uint *)&prVar26->field_0x4 & 0x800) != 0) {\n                      prVar25 = prVar35;\n                      context = (re_dfa_t *)mctx;\n                      in_stack_ffffff58 = (re_dfa_t *)top_node;\n                      iVar8 = check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node);\n                      if (iVar8 < 2) {\n                        unaff_s8 = prVar27;\n                        if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60;\n                      prVar34 = (re_dfa_t *)((int)prVar35 * 4);\n                      top_str = iVar8 * 4;\n                      unaff_s8 = *(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      union_set.nelem = 0;\n                      if (mctx->state_log[iVar8] == (re_dfastate_t *)0x0) {\nLAB_000209e0:\n                        mctx_01 = unaff_s8;\n                        iVar13 = (*pcVar20)(unaff_s5);\n                        cVar44 = (char)in_stack_ffffff58;\n                        if (iVar13 == 0) goto LAB_00020904;\n                        context = (re_dfa_t *)mctx->state_log;\n                        unaff_s8 = (re_dfa_t *)((int)context + top_str);\n                        mctx_01 = input;\n                        prVar25 = unaff_s5;\n                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);\n                        pprVar6 = mctx->state_log;\n                        unaff_s8->nodes = prVar26;\n                        top_str = (Idx)(pprVar6 + iVar8);\n                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;\n                      }\n                      else {\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(union_set.elems);\n                      cVar44 = (char)in_stack_ffffff58;\n                      err = err_1;\n                      unaff_s8 = prVar27;\n                      if (err_1 == _REG_NOERROR) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    prVar25 = (re_dfa_t *)top_node;\n                    iVar8 = (*pcVar19)(mctx,prVar26);\n                    unaff_s8 = prVar27;\n                    if (iVar8 != 0) {\nLAB_00020784:\n                      prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      mctx_01 = (re_dfa_t *)prVar34->nodes;\n                      iVar8 = (*pcVar20)(prStack_94);\n                      cVar44 = (char)in_stack_ffffff58;\n                      if (iVar8 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);\n                        err = _REG_ESPACE;\n                        goto LAB_00020920;\n                      }\n                    }\n                    pprVar36 = (re_dfastate_t **)((int)pprVar36 + 1);\n                  } while ((int)pprVar36 < (unaff_s7->non_eps_nodes).nelem);\n                }\n                (*(code *)PTR_free_0003c320)(union_set.elems);\n                err = _REG_NOERROR;\n              }\nLAB_000207d0:\n              cVar44 = (char)in_stack_ffffff58;\n              if (next_nodes.nelem != 0) {\n                mctx_01 = prStack_94;\n                prVar25 = prVar5;\n                context = (re_dfa_t *)type;\n                err = (*pcVar18)(prVar15);\n                prVar34 = prVar27;\n                unaff_s8 = prVar27;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n                mctx_01 = prStack_94;\n                prVar25 = prVar27;\n                context = prVar5;\n                in_stack_ffffff58 = (re_dfa_t *)type;\n                err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar27,(Idx)prVar5,\n                                         type);\n                cVar44 = (char)in_stack_ffffff58;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n              }\n              iVar8 = mctx->eflags;\n            }\n            context = (re_dfa_t *)(*pcStack_6c)(mctx,top_node,iVar8);\n            mctx_01 = prVar15;\n            prVar25 = prStack_94;\n            unaff_s7 = re_acquire_state_context\n                                 (&err,prVar15,(re_node_set *)prStack_94,(uint)context);\n            cVar44 = (char)in_stack_ffffff58;\n            if (unaff_s7 == (re_dfastate_t *)0x0) {\n              prVar34 = prVar27;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              pprVar6 = mctx->state_log;\n              iStack_8c = iStack_8c + 1;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)0x0;\n            }\n            else {\n              pprVar6 = mctx->state_log;\n              iStack_8c = 0;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)unaff_s7;\n            }\n            unaff_s8 = prVar27;\n          } while (((int)prVar27 < last_str) &&\n                  (unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1), prVar34 = prVar27,\n                  iStack_8c <= mctx->max_mb_elem_len));\n        }\n        (*(code *)PTR_free_0003c320)(next_nodes.elems);\n        prVar9 = mctx->state_log[last_str];\n        prVar34 = prVar27;\n        if (prVar9 == (re_dfastate_t *)0x0) {\n          path->next_idx = (Idx)prVar27;\n          mctx->state_log = pprVar16;\n          (mctx->input).cur_idx = IVar17;\n          rVar11 = _REG_NOMATCH;\n        }\n        else {\n          mctx_01 = (re_dfa_t *)&(prVar9->nodes).elems;\n          path->next_idx = (Idx)prVar27;\n          (mctx->input).cur_idx = IVar17;\n          set = (re_node_set *)(prVar9->nodes).nelem;\n          mctx->state_log = pprVar16;\n          IVar17 = re_node_set_contains(set,(Idx)mctx_01,(re_node_set *)last_node);\n          rVar11 = (uint)(IVar17 == 0);\n          prVar25 = (re_dfa_t *)last_node;\n        }\n      }\n      else {\n        mctx_01 = (re_dfa_t *)&unaff_s7->nodes;\n        rVar11 = re_node_set_init_copy(&next_nodes,(re_node_set *)mctx_01);\n        cVar44 = (char)in_stack_ffffff58;\n        err = rVar11;\n        if (rVar11 == _REG_NOERROR) {\n          if ((unaff_s7->field_0x34 & 2) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }\n  }\n  else {\n    prVar34 = (re_dfa_t *)((int)&prVar25->nodes + 1);\n    pprVar36 = (re_dfastate_t **)\n               ((int)(((re_dfa_t *)(((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8) +\n               (int)((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(input->word_char + -0x18))->word_char + -0x18))->\n                     word_char + -0x18))->word_char + 0xffffffa0U);\n    if (((int)prVar34 <= 0x7fffffff - (int)input) &&\n       (unaff_s5 = (re_dfa_t *)path, pprVar36 < (re_dfastate_t **)0x40000000)) {\n      mctx_01 = (re_dfa_t *)((int)pprVar36 * 4);\n      pprVar16 = (re_dfastate_t **)(*(code *)PTR_realloc_0003c2b8)(path->array);\n      puVar4 = PTR_memset_0003c290;\n      cVar44 = (char)in_stack_ffffff58;\n      if (pprVar16 != (re_dfastate_t **)0x0) {\n        path->array = pprVar16;\n        path->alloc = (Idx)pprVar36;\n        (*(code *)puVar4)(pprVar16 + (int)input,0,(int)prVar34 * 4);\n        goto LAB_000205e8;\n      }\n    }\nLAB_00020c64:\n    rVar11 = _REG_ESPACE;\n  }" if (parenthesized_expression "((int)prVar25 < (int)input)" ( (binary_expression "(int)prVar25 < (int)input" (cast_expression "(int)prVar25" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)input" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\nLAB_000205e8:\n    puVar4 = PTR_LAB_0003c1e8;\n    pprVar16 = mctx->state_log;\n    prVar25 = (re_dfa_t *)mctx->eflags;\n    prVar34 = (re_dfa_t *)path->next_idx;\n    pprVar36 = path->array;\n    IVar17 = (mctx->input).cur_idx;\n    if (prVar34 == (re_dfa_t *)0x0) {\n      mctx->state_log = pprVar36;\n      mctx_01 = (re_dfa_t *)(top_str + -1);\n      (mctx->input).cur_idx = top_str;\n      input = (re_dfa_t *)re_string_context_at(&mctx->input,(Idx)mctx_01,(int)prVar25);\nLAB_00020b7c:\n      next_nodes.alloc = 1;\n      next_nodes.nelem = 1;\n      next_nodes.elems = (Idx *)(*(code *)PTR_malloc_0003c2b4)(4);\n      cVar44 = (char)in_stack_ffffff58;\n      if (next_nodes.elems == (Idx *)0x0) goto LAB_00020c64;\n      mctx_01 = (re_dfa_t *)&next_nodes;\n      *next_nodes.elems = top_node;\n      err = _REG_NOERROR;\n      prVar25 = prVar5;\n      context = (re_dfa_t *)type;\n      err = check_arrival_expand_ecl(prVar15,(re_node_set *)mctx_01,(Idx)prVar5,type);\n      cVar44 = (char)in_stack_ffffff58;\n      prVar34 = (re_dfa_t *)top_str;\n      if (err == _REG_NOERROR) {\nLAB_00020ab8:\n        prStack_94 = (re_dfa_t *)&next_nodes;\n        if (next_nodes.nelem != 0) {\n          mctx_01 = prStack_94;\n          prVar25 = prVar34;\n          context = prVar5;\n          in_stack_ffffff58 = (re_dfa_t *)type;\n          err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar34,(Idx)prVar5,type);\n          cVar44 = (char)in_stack_ffffff58;\n          if (err != _REG_NOERROR) goto LAB_00020920;\n        }\n        mctx_01 = prVar15;\n        context = input;\n        unaff_s7 = re_acquire_state_context(&err,prVar15,(re_node_set *)prStack_94,(uint)input);\n        cVar44 = (char)in_stack_ffffff58;\n        prVar25 = prStack_94;\n        if ((unaff_s7 != (re_dfastate_t *)0x0) || (err == _REG_NOERROR)) {\n          mctx->state_log[(int)prVar34] = unaff_s7;\n          prVar27 = prVar34;\n          goto LAB_00020670;\n        }\n      }\nLAB_00020920:\n      (*(code *)PTR_free_0003c320)(next_nodes.elems);\n      rVar11 = err;\n    }\n    else {\n      mctx->state_log = pprVar36;\n      mctx_01 = (re_dfa_t *)((int)&prVar34[-1].subexp_map + 3);\n      (mctx->input).cur_idx = (Idx)prVar34;\n      input = (re_dfa_t *)re_string_context_at(&mctx->input,(Idx)mctx_01,(int)prVar25);\n      if (prVar34 == (re_dfa_t *)top_str) goto LAB_00020b7c;\n      pprVar36 = pprVar36 + (int)prVar34;\n      unaff_s7 = *pprVar36;\n      prVar27 = prVar34;\n      if ((unaff_s7 == (re_dfastate_t *)0x0) || ((unaff_s7->field_0x34 & 2) == 0)) {\n        next_nodes.alloc = 0;\n        next_nodes.nelem = 0;\n        next_nodes.elems = (Idx *)0x0;\nLAB_00020670:\n        cVar44 = (char)in_stack_ffffff58;\n        pcStack_6c = (code *)(puVar4 + -0x34b0);\n        prStack_94 = (re_dfa_t *)&next_nodes;\n        if (((int)prVar27 < last_str) && (-1 < mctx->max_mb_elem_len)) {\n          pprVar6 = mctx->state_log;\n          iStack_8c = 0;\n          pcVar18 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar19 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar20 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          prVar34 = prVar27;\n          unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1);\n          do {\n            prVar27 = unaff_s8;\n            next_nodes.nelem = 0;\n            top_node = (int)&prVar27[-1].subexp_map + 3;\n            if (pprVar6[(int)prVar27] == (re_dfastate_t *)0x0) {\n              rVar11 = err;\n              if (unaff_s7 != (re_dfastate_t *)0x0) goto LAB_000206f8;\n              iVar8 = mctx->eflags;\n            }\n            else {\n              mctx_01 = (re_dfa_t *)&pprVar6[(int)prVar27]->nodes;\n              err = re_node_set_merge((re_node_set *)prStack_94,(re_node_set *)mctx_01);\n              cVar44 = (char)in_stack_ffffff58;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              rVar11 = _REG_NOERROR;\n              if (unaff_s7 != (re_dfastate_t *)0x0) {\nLAB_000206f8:\n                err = rVar11;\n                unaff_s5 = (re_dfa_t *)&union_set;\n                input = mctx->dfa;\n                union_set.alloc = 0;\n                err_1 = _REG_NOERROR;\n                union_set.nelem = 0;\n                union_set.elems = (Idx *)0x0;\n                if (0 < (unaff_s7->non_eps_nodes).nelem) {\n                  pprVar36 = (re_dfastate_t **)0x0;\n                  pcVar7 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    prVar35 = (re_dfa_t *)(unaff_s7->non_eps_nodes).elems[(int)pprVar36];\n                    top_str = (int)prVar35 * 8;\n                    prVar26 = (re_token_t *)\n                              ((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60));\n                    if ((*(uint *)&prVar26->field_0x4 & 0x800) != 0) {\n                      prVar25 = prVar35;\n                      context = (re_dfa_t *)mctx;\n                      in_stack_ffffff58 = (re_dfa_t *)top_node;\n                      iVar8 = check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node);\n                      if (iVar8 < 2) {\n                        unaff_s8 = prVar27;\n                        if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60;\n                      prVar34 = (re_dfa_t *)((int)prVar35 * 4);\n                      top_str = iVar8 * 4;\n                      unaff_s8 = *(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      union_set.nelem = 0;\n                      if (mctx->state_log[iVar8] == (re_dfastate_t *)0x0) {\nLAB_000209e0:\n                        mctx_01 = unaff_s8;\n                        iVar13 = (*pcVar20)(unaff_s5);\n                        cVar44 = (char)in_stack_ffffff58;\n                        if (iVar13 == 0) goto LAB_00020904;\n                        context = (re_dfa_t *)mctx->state_log;\n                        unaff_s8 = (re_dfa_t *)((int)context + top_str);\n                        mctx_01 = input;\n                        prVar25 = unaff_s5;\n                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);\n                        pprVar6 = mctx->state_log;\n                        unaff_s8->nodes = prVar26;\n                        top_str = (Idx)(pprVar6 + iVar8);\n                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;\n                      }\n                      else {\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(union_set.elems);\n                      cVar44 = (char)in_stack_ffffff58;\n                      err = err_1;\n                      unaff_s8 = prVar27;\n                      if (err_1 == _REG_NOERROR) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    prVar25 = (re_dfa_t *)top_node;\n                    iVar8 = (*pcVar19)(mctx,prVar26);\n                    unaff_s8 = prVar27;\n                    if (iVar8 != 0) {\nLAB_00020784:\n                      prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      mctx_01 = (re_dfa_t *)prVar34->nodes;\n                      iVar8 = (*pcVar20)(prStack_94);\n                      cVar44 = (char)in_stack_ffffff58;\n                      if (iVar8 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);\n                        err = _REG_ESPACE;\n                        goto LAB_00020920;\n                      }\n                    }\n                    pprVar36 = (re_dfastate_t **)((int)pprVar36 + 1);\n                  } while ((int)pprVar36 < (unaff_s7->non_eps_nodes).nelem);\n                }\n                (*(code *)PTR_free_0003c320)(union_set.elems);\n                err = _REG_NOERROR;\n              }\nLAB_000207d0:\n              cVar44 = (char)in_stack_ffffff58;\n              if (next_nodes.nelem != 0) {\n                mctx_01 = prStack_94;\n                prVar25 = prVar5;\n                context = (re_dfa_t *)type;\n                err = (*pcVar18)(prVar15);\n                prVar34 = prVar27;\n                unaff_s8 = prVar27;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n                mctx_01 = prStack_94;\n                prVar25 = prVar27;\n                context = prVar5;\n                in_stack_ffffff58 = (re_dfa_t *)type;\n                err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar27,(Idx)prVar5,\n                                         type);\n                cVar44 = (char)in_stack_ffffff58;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n              }\n              iVar8 = mctx->eflags;\n            }\n            context = (re_dfa_t *)(*pcStack_6c)(mctx,top_node,iVar8);\n            mctx_01 = prVar15;\n            prVar25 = prStack_94;\n            unaff_s7 = re_acquire_state_context\n                                 (&err,prVar15,(re_node_set *)prStack_94,(uint)context);\n            cVar44 = (char)in_stack_ffffff58;\n            if (unaff_s7 == (re_dfastate_t *)0x0) {\n              prVar34 = prVar27;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              pprVar6 = mctx->state_log;\n              iStack_8c = iStack_8c + 1;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)0x0;\n            }\n            else {\n              pprVar6 = mctx->state_log;\n              iStack_8c = 0;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)unaff_s7;\n            }\n            unaff_s8 = prVar27;\n          } while (((int)prVar27 < last_str) &&\n                  (unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1), prVar34 = prVar27,\n                  iStack_8c <= mctx->max_mb_elem_len));\n        }\n        (*(code *)PTR_free_0003c320)(next_nodes.elems);\n        prVar9 = mctx->state_log[last_str];\n        prVar34 = prVar27;\n        if (prVar9 == (re_dfastate_t *)0x0) {\n          path->next_idx = (Idx)prVar27;\n          mctx->state_log = pprVar16;\n          (mctx->input).cur_idx = IVar17;\n          rVar11 = _REG_NOMATCH;\n        }\n        else {\n          mctx_01 = (re_dfa_t *)&(prVar9->nodes).elems;\n          path->next_idx = (Idx)prVar27;\n          (mctx->input).cur_idx = IVar17;\n          set = (re_node_set *)(prVar9->nodes).nelem;\n          mctx->state_log = pprVar16;\n          IVar17 = re_node_set_contains(set,(Idx)mctx_01,(re_node_set *)last_node);\n          rVar11 = (uint)(IVar17 == 0);\n          prVar25 = (re_dfa_t *)last_node;\n        }\n      }\n      else {\n        mctx_01 = (re_dfa_t *)&unaff_s7->nodes;\n        rVar11 = re_node_set_init_copy(&next_nodes,(re_node_set *)mctx_01);\n        cVar44 = (char)in_stack_ffffff58;\n        err = rVar11;\n        if (rVar11 == _REG_NOERROR) {\n          if ((unaff_s7->field_0x34 & 2) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }\n  }" { (labeled_statement "LAB_000205e8:\n    puVar4 = PTR_LAB_0003c1e8;" statement_identifier : (expression_statement "puVar4 = PTR_LAB_0003c1e8;" (assignment_expression "puVar4 = PTR_LAB_0003c1e8" identifier = identifier) ;)) (expression_statement "pprVar16 = mctx->state_log;" (assignment_expression "pprVar16 = mctx->state_log" identifier = (field_expression "mctx->state_log" identifier -> field_identifier)) ;) (expression_statement "prVar25 = (re_dfa_t *)mctx->eflags;" (assignment_expression "prVar25 = (re_dfa_t *)mctx->eflags" identifier = (cast_expression "(re_dfa_t *)mctx->eflags" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "mctx->eflags" identifier -> field_identifier))) ;) (expression_statement "prVar34 = (re_dfa_t *)path->next_idx;" (assignment_expression "prVar34 = (re_dfa_t *)path->next_idx" identifier = (cast_expression "(re_dfa_t *)path->next_idx" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "path->next_idx" identifier -> field_identifier))) ;) (expression_statement "pprVar36 = path->array;" (assignment_expression "pprVar36 = path->array" identifier = (field_expression "path->array" identifier -> field_identifier)) ;) (expression_statement "IVar17 = (mctx->input).cur_idx;" (assignment_expression "IVar17 = (mctx->input).cur_idx" identifier = (field_expression "(mctx->input).cur_idx" (parenthesized_expression "(mctx->input)" ( (field_expression "mctx->input" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (prVar34 == (re_dfa_t *)0x0) {\n      mctx->state_log = pprVar36;\n      mctx_01 = (re_dfa_t *)(top_str + -1);\n      (mctx->input).cur_idx = top_str;\n      input = (re_dfa_t *)re_string_context_at(&mctx->input,(Idx)mctx_01,(int)prVar25);\nLAB_00020b7c:\n      next_nodes.alloc = 1;\n      next_nodes.nelem = 1;\n      next_nodes.elems = (Idx *)(*(code *)PTR_malloc_0003c2b4)(4);\n      cVar44 = (char)in_stack_ffffff58;\n      if (next_nodes.elems == (Idx *)0x0) goto LAB_00020c64;\n      mctx_01 = (re_dfa_t *)&next_nodes;\n      *next_nodes.elems = top_node;\n      err = _REG_NOERROR;\n      prVar25 = prVar5;\n      context = (re_dfa_t *)type;\n      err = check_arrival_expand_ecl(prVar15,(re_node_set *)mctx_01,(Idx)prVar5,type);\n      cVar44 = (char)in_stack_ffffff58;\n      prVar34 = (re_dfa_t *)top_str;\n      if (err == _REG_NOERROR) {\nLAB_00020ab8:\n        prStack_94 = (re_dfa_t *)&next_nodes;\n        if (next_nodes.nelem != 0) {\n          mctx_01 = prStack_94;\n          prVar25 = prVar34;\n          context = prVar5;\n          in_stack_ffffff58 = (re_dfa_t *)type;\n          err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar34,(Idx)prVar5,type);\n          cVar44 = (char)in_stack_ffffff58;\n          if (err != _REG_NOERROR) goto LAB_00020920;\n        }\n        mctx_01 = prVar15;\n        context = input;\n        unaff_s7 = re_acquire_state_context(&err,prVar15,(re_node_set *)prStack_94,(uint)input);\n        cVar44 = (char)in_stack_ffffff58;\n        prVar25 = prStack_94;\n        if ((unaff_s7 != (re_dfastate_t *)0x0) || (err == _REG_NOERROR)) {\n          mctx->state_log[(int)prVar34] = unaff_s7;\n          prVar27 = prVar34;\n          goto LAB_00020670;\n        }\n      }\nLAB_00020920:\n      (*(code *)PTR_free_0003c320)(next_nodes.elems);\n      rVar11 = err;\n    }\n    else {\n      mctx->state_log = pprVar36;\n      mctx_01 = (re_dfa_t *)((int)&prVar34[-1].subexp_map + 3);\n      (mctx->input).cur_idx = (Idx)prVar34;\n      input = (re_dfa_t *)re_string_context_at(&mctx->input,(Idx)mctx_01,(int)prVar25);\n      if (prVar34 == (re_dfa_t *)top_str) goto LAB_00020b7c;\n      pprVar36 = pprVar36 + (int)prVar34;\n      unaff_s7 = *pprVar36;\n      prVar27 = prVar34;\n      if ((unaff_s7 == (re_dfastate_t *)0x0) || ((unaff_s7->field_0x34 & 2) == 0)) {\n        next_nodes.alloc = 0;\n        next_nodes.nelem = 0;\n        next_nodes.elems = (Idx *)0x0;\nLAB_00020670:\n        cVar44 = (char)in_stack_ffffff58;\n        pcStack_6c = (code *)(puVar4 + -0x34b0);\n        prStack_94 = (re_dfa_t *)&next_nodes;\n        if (((int)prVar27 < last_str) && (-1 < mctx->max_mb_elem_len)) {\n          pprVar6 = mctx->state_log;\n          iStack_8c = 0;\n          pcVar18 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar19 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar20 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          prVar34 = prVar27;\n          unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1);\n          do {\n            prVar27 = unaff_s8;\n            next_nodes.nelem = 0;\n            top_node = (int)&prVar27[-1].subexp_map + 3;\n            if (pprVar6[(int)prVar27] == (re_dfastate_t *)0x0) {\n              rVar11 = err;\n              if (unaff_s7 != (re_dfastate_t *)0x0) goto LAB_000206f8;\n              iVar8 = mctx->eflags;\n            }\n            else {\n              mctx_01 = (re_dfa_t *)&pprVar6[(int)prVar27]->nodes;\n              err = re_node_set_merge((re_node_set *)prStack_94,(re_node_set *)mctx_01);\n              cVar44 = (char)in_stack_ffffff58;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              rVar11 = _REG_NOERROR;\n              if (unaff_s7 != (re_dfastate_t *)0x0) {\nLAB_000206f8:\n                err = rVar11;\n                unaff_s5 = (re_dfa_t *)&union_set;\n                input = mctx->dfa;\n                union_set.alloc = 0;\n                err_1 = _REG_NOERROR;\n                union_set.nelem = 0;\n                union_set.elems = (Idx *)0x0;\n                if (0 < (unaff_s7->non_eps_nodes).nelem) {\n                  pprVar36 = (re_dfastate_t **)0x0;\n                  pcVar7 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    prVar35 = (re_dfa_t *)(unaff_s7->non_eps_nodes).elems[(int)pprVar36];\n                    top_str = (int)prVar35 * 8;\n                    prVar26 = (re_token_t *)\n                              ((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60));\n                    if ((*(uint *)&prVar26->field_0x4 & 0x800) != 0) {\n                      prVar25 = prVar35;\n                      context = (re_dfa_t *)mctx;\n                      in_stack_ffffff58 = (re_dfa_t *)top_node;\n                      iVar8 = check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node);\n                      if (iVar8 < 2) {\n                        unaff_s8 = prVar27;\n                        if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60;\n                      prVar34 = (re_dfa_t *)((int)prVar35 * 4);\n                      top_str = iVar8 * 4;\n                      unaff_s8 = *(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      union_set.nelem = 0;\n                      if (mctx->state_log[iVar8] == (re_dfastate_t *)0x0) {\nLAB_000209e0:\n                        mctx_01 = unaff_s8;\n                        iVar13 = (*pcVar20)(unaff_s5);\n                        cVar44 = (char)in_stack_ffffff58;\n                        if (iVar13 == 0) goto LAB_00020904;\n                        context = (re_dfa_t *)mctx->state_log;\n                        unaff_s8 = (re_dfa_t *)((int)context + top_str);\n                        mctx_01 = input;\n                        prVar25 = unaff_s5;\n                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);\n                        pprVar6 = mctx->state_log;\n                        unaff_s8->nodes = prVar26;\n                        top_str = (Idx)(pprVar6 + iVar8);\n                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;\n                      }\n                      else {\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(union_set.elems);\n                      cVar44 = (char)in_stack_ffffff58;\n                      err = err_1;\n                      unaff_s8 = prVar27;\n                      if (err_1 == _REG_NOERROR) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    prVar25 = (re_dfa_t *)top_node;\n                    iVar8 = (*pcVar19)(mctx,prVar26);\n                    unaff_s8 = prVar27;\n                    if (iVar8 != 0) {\nLAB_00020784:\n                      prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      mctx_01 = (re_dfa_t *)prVar34->nodes;\n                      iVar8 = (*pcVar20)(prStack_94);\n                      cVar44 = (char)in_stack_ffffff58;\n                      if (iVar8 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);\n                        err = _REG_ESPACE;\n                        goto LAB_00020920;\n                      }\n                    }\n                    pprVar36 = (re_dfastate_t **)((int)pprVar36 + 1);\n                  } while ((int)pprVar36 < (unaff_s7->non_eps_nodes).nelem);\n                }\n                (*(code *)PTR_free_0003c320)(union_set.elems);\n                err = _REG_NOERROR;\n              }\nLAB_000207d0:\n              cVar44 = (char)in_stack_ffffff58;\n              if (next_nodes.nelem != 0) {\n                mctx_01 = prStack_94;\n                prVar25 = prVar5;\n                context = (re_dfa_t *)type;\n                err = (*pcVar18)(prVar15);\n                prVar34 = prVar27;\n                unaff_s8 = prVar27;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n                mctx_01 = prStack_94;\n                prVar25 = prVar27;\n                context = prVar5;\n                in_stack_ffffff58 = (re_dfa_t *)type;\n                err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar27,(Idx)prVar5,\n                                         type);\n                cVar44 = (char)in_stack_ffffff58;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n              }\n              iVar8 = mctx->eflags;\n            }\n            context = (re_dfa_t *)(*pcStack_6c)(mctx,top_node,iVar8);\n            mctx_01 = prVar15;\n            prVar25 = prStack_94;\n            unaff_s7 = re_acquire_state_context\n                                 (&err,prVar15,(re_node_set *)prStack_94,(uint)context);\n            cVar44 = (char)in_stack_ffffff58;\n            if (unaff_s7 == (re_dfastate_t *)0x0) {\n              prVar34 = prVar27;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              pprVar6 = mctx->state_log;\n              iStack_8c = iStack_8c + 1;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)0x0;\n            }\n            else {\n              pprVar6 = mctx->state_log;\n              iStack_8c = 0;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)unaff_s7;\n            }\n            unaff_s8 = prVar27;\n          } while (((int)prVar27 < last_str) &&\n                  (unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1), prVar34 = prVar27,\n                  iStack_8c <= mctx->max_mb_elem_len));\n        }\n        (*(code *)PTR_free_0003c320)(next_nodes.elems);\n        prVar9 = mctx->state_log[last_str];\n        prVar34 = prVar27;\n        if (prVar9 == (re_dfastate_t *)0x0) {\n          path->next_idx = (Idx)prVar27;\n          mctx->state_log = pprVar16;\n          (mctx->input).cur_idx = IVar17;\n          rVar11 = _REG_NOMATCH;\n        }\n        else {\n          mctx_01 = (re_dfa_t *)&(prVar9->nodes).elems;\n          path->next_idx = (Idx)prVar27;\n          (mctx->input).cur_idx = IVar17;\n          set = (re_node_set *)(prVar9->nodes).nelem;\n          mctx->state_log = pprVar16;\n          IVar17 = re_node_set_contains(set,(Idx)mctx_01,(re_node_set *)last_node);\n          rVar11 = (uint)(IVar17 == 0);\n          prVar25 = (re_dfa_t *)last_node;\n        }\n      }\n      else {\n        mctx_01 = (re_dfa_t *)&unaff_s7->nodes;\n        rVar11 = re_node_set_init_copy(&next_nodes,(re_node_set *)mctx_01);\n        cVar44 = (char)in_stack_ffffff58;\n        err = rVar11;\n        if (rVar11 == _REG_NOERROR) {\n          if ((unaff_s7->field_0x34 & 2) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }" if (parenthesized_expression "(prVar34 == (re_dfa_t *)0x0)" ( (binary_expression "prVar34 == (re_dfa_t *)0x0" identifier == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      mctx->state_log = pprVar36;\n      mctx_01 = (re_dfa_t *)(top_str + -1);\n      (mctx->input).cur_idx = top_str;\n      input = (re_dfa_t *)re_string_context_at(&mctx->input,(Idx)mctx_01,(int)prVar25);\nLAB_00020b7c:\n      next_nodes.alloc = 1;\n      next_nodes.nelem = 1;\n      next_nodes.elems = (Idx *)(*(code *)PTR_malloc_0003c2b4)(4);\n      cVar44 = (char)in_stack_ffffff58;\n      if (next_nodes.elems == (Idx *)0x0) goto LAB_00020c64;\n      mctx_01 = (re_dfa_t *)&next_nodes;\n      *next_nodes.elems = top_node;\n      err = _REG_NOERROR;\n      prVar25 = prVar5;\n      context = (re_dfa_t *)type;\n      err = check_arrival_expand_ecl(prVar15,(re_node_set *)mctx_01,(Idx)prVar5,type);\n      cVar44 = (char)in_stack_ffffff58;\n      prVar34 = (re_dfa_t *)top_str;\n      if (err == _REG_NOERROR) {\nLAB_00020ab8:\n        prStack_94 = (re_dfa_t *)&next_nodes;\n        if (next_nodes.nelem != 0) {\n          mctx_01 = prStack_94;\n          prVar25 = prVar34;\n          context = prVar5;\n          in_stack_ffffff58 = (re_dfa_t *)type;\n          err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar34,(Idx)prVar5,type);\n          cVar44 = (char)in_stack_ffffff58;\n          if (err != _REG_NOERROR) goto LAB_00020920;\n        }\n        mctx_01 = prVar15;\n        context = input;\n        unaff_s7 = re_acquire_state_context(&err,prVar15,(re_node_set *)prStack_94,(uint)input);\n        cVar44 = (char)in_stack_ffffff58;\n        prVar25 = prStack_94;\n        if ((unaff_s7 != (re_dfastate_t *)0x0) || (err == _REG_NOERROR)) {\n          mctx->state_log[(int)prVar34] = unaff_s7;\n          prVar27 = prVar34;\n          goto LAB_00020670;\n        }\n      }\nLAB_00020920:\n      (*(code *)PTR_free_0003c320)(next_nodes.elems);\n      rVar11 = err;\n    }" { (expression_statement "mctx->state_log = pprVar36;" (assignment_expression "mctx->state_log = pprVar36" (field_expression "mctx->state_log" identifier -> field_identifier) = identifier) ;) (expression_statement "mctx_01 = (re_dfa_t *)(top_str + -1);" (assignment_expression "mctx_01 = (re_dfa_t *)(top_str + -1)" identifier = (cast_expression "(re_dfa_t *)(top_str + -1)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(top_str + -1)" ( (binary_expression "top_str + -1" identifier + number_literal) )))) ;) (expression_statement "(mctx->input).cur_idx = top_str;" (assignment_expression "(mctx->input).cur_idx = top_str" (field_expression "(mctx->input).cur_idx" (parenthesized_expression "(mctx->input)" ( (field_expression "mctx->input" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "input = (re_dfa_t *)re_string_context_at(&mctx->input,(Idx)mctx_01,(int)prVar25);" (assignment_expression "input = (re_dfa_t *)re_string_context_at(&mctx->input,(Idx)mctx_01,(int)prVar25)" identifier = (cast_expression "(re_dfa_t *)re_string_context_at(&mctx->input,(Idx)mctx_01,(int)prVar25)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "re_string_context_at(&mctx->input,(Idx)mctx_01,(int)prVar25)" identifier (argument_list "(&mctx->input,(Idx)mctx_01,(int)prVar25)" ( (pointer_expression "&mctx->input" & (field_expression "mctx->input" identifier -> field_identifier)) , (cast_expression "(Idx)mctx_01" ( (type_descriptor "Idx" type_identifier) ) identifier) , (cast_expression "(int)prVar25" ( (type_descriptor "int" primitive_type) ) identifier) ))))) ;) (labeled_statement "LAB_00020b7c:\n      next_nodes.alloc = 1;" statement_identifier : (expression_statement "next_nodes.alloc = 1;" (assignment_expression "next_nodes.alloc = 1" (field_expression "next_nodes.alloc" identifier . field_identifier) = number_literal) ;)) (expression_statement "next_nodes.nelem = 1;" (assignment_expression "next_nodes.nelem = 1" (field_expression "next_nodes.nelem" identifier . field_identifier) = number_literal) ;) (expression_statement "next_nodes.elems = (Idx *)(*(code *)PTR_malloc_0003c2b4)(4);" (assignment_expression "next_nodes.elems = (Idx *)(*(code *)PTR_malloc_0003c2b4)(4)" (field_expression "next_nodes.elems" identifier . field_identifier) = (cast_expression "(Idx *)(*(code *)PTR_malloc_0003c2b4)(4)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0003c2b4)(4)" (parenthesized_expression "(*(code *)PTR_malloc_0003c2b4)" ( (pointer_expression "*(code *)PTR_malloc_0003c2b4" * (cast_expression "(code *)PTR_malloc_0003c2b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "cVar44 = (char)in_stack_ffffff58;" (assignment_expression "cVar44 = (char)in_stack_ffffff58" identifier = (cast_expression "(char)in_stack_ffffff58" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (next_nodes.elems == (Idx *)0x0) goto LAB_00020c64;" if (parenthesized_expression "(next_nodes.elems == (Idx *)0x0)" ( (binary_expression "next_nodes.elems == (Idx *)0x0" (field_expression "next_nodes.elems" identifier . field_identifier) == (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00020c64;" goto statement_identifier ;)) (expression_statement "mctx_01 = (re_dfa_t *)&next_nodes;" (assignment_expression "mctx_01 = (re_dfa_t *)&next_nodes" identifier = (cast_expression "(re_dfa_t *)&next_nodes" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&next_nodes" & identifier))) ;) (expression_statement "*next_nodes.elems = top_node;" (assignment_expression "*next_nodes.elems = top_node" (pointer_expression "*next_nodes.elems" * (field_expression "next_nodes.elems" identifier . field_identifier)) = identifier) ;) (expression_statement "err = _REG_NOERROR;" (assignment_expression "err = _REG_NOERROR" identifier = identifier) ;) (expression_statement "prVar25 = prVar5;" (assignment_expression "prVar25 = prVar5" identifier = identifier) ;) (expression_statement "context = (re_dfa_t *)type;" (assignment_expression "context = (re_dfa_t *)type" identifier = (cast_expression "(re_dfa_t *)type" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "err = check_arrival_expand_ecl(prVar15,(re_node_set *)mctx_01,(Idx)prVar5,type);" (assignment_expression "err = check_arrival_expand_ecl(prVar15,(re_node_set *)mctx_01,(Idx)prVar5,type)" identifier = (call_expression "check_arrival_expand_ecl(prVar15,(re_node_set *)mctx_01,(Idx)prVar5,type)" identifier (argument_list "(prVar15,(re_node_set *)mctx_01,(Idx)prVar5,type)" ( identifier , (cast_expression "(re_node_set *)mctx_01" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Idx)prVar5" ( (type_descriptor "Idx" type_identifier) ) identifier) , identifier )))) ;) (expression_statement "cVar44 = (char)in_stack_ffffff58;" (assignment_expression "cVar44 = (char)in_stack_ffffff58" identifier = (cast_expression "(char)in_stack_ffffff58" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "prVar34 = (re_dfa_t *)top_str;" (assignment_expression "prVar34 = (re_dfa_t *)top_str" identifier = (cast_expression "(re_dfa_t *)top_str" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (err == _REG_NOERROR) {\nLAB_00020ab8:\n        prStack_94 = (re_dfa_t *)&next_nodes;\n        if (next_nodes.nelem != 0) {\n          mctx_01 = prStack_94;\n          prVar25 = prVar34;\n          context = prVar5;\n          in_stack_ffffff58 = (re_dfa_t *)type;\n          err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar34,(Idx)prVar5,type);\n          cVar44 = (char)in_stack_ffffff58;\n          if (err != _REG_NOERROR) goto LAB_00020920;\n        }\n        mctx_01 = prVar15;\n        context = input;\n        unaff_s7 = re_acquire_state_context(&err,prVar15,(re_node_set *)prStack_94,(uint)input);\n        cVar44 = (char)in_stack_ffffff58;\n        prVar25 = prStack_94;\n        if ((unaff_s7 != (re_dfastate_t *)0x0) || (err == _REG_NOERROR)) {\n          mctx->state_log[(int)prVar34] = unaff_s7;\n          prVar27 = prVar34;\n          goto LAB_00020670;\n        }\n      }" if (parenthesized_expression "(err == _REG_NOERROR)" ( (binary_expression "err == _REG_NOERROR" identifier == identifier) )) (compound_statement "{\nLAB_00020ab8:\n        prStack_94 = (re_dfa_t *)&next_nodes;\n        if (next_nodes.nelem != 0) {\n          mctx_01 = prStack_94;\n          prVar25 = prVar34;\n          context = prVar5;\n          in_stack_ffffff58 = (re_dfa_t *)type;\n          err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar34,(Idx)prVar5,type);\n          cVar44 = (char)in_stack_ffffff58;\n          if (err != _REG_NOERROR) goto LAB_00020920;\n        }\n        mctx_01 = prVar15;\n        context = input;\n        unaff_s7 = re_acquire_state_context(&err,prVar15,(re_node_set *)prStack_94,(uint)input);\n        cVar44 = (char)in_stack_ffffff58;\n        prVar25 = prStack_94;\n        if ((unaff_s7 != (re_dfastate_t *)0x0) || (err == _REG_NOERROR)) {\n          mctx->state_log[(int)prVar34] = unaff_s7;\n          prVar27 = prVar34;\n          goto LAB_00020670;\n        }\n      }" { (labeled_statement "LAB_00020ab8:\n        prStack_94 = (re_dfa_t *)&next_nodes;" statement_identifier : (expression_statement "prStack_94 = (re_dfa_t *)&next_nodes;" (assignment_expression "prStack_94 = (re_dfa_t *)&next_nodes" identifier = (cast_expression "(re_dfa_t *)&next_nodes" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&next_nodes" & identifier))) ;)) (if_statement "if (next_nodes.nelem != 0) {\n          mctx_01 = prStack_94;\n          prVar25 = prVar34;\n          context = prVar5;\n          in_stack_ffffff58 = (re_dfa_t *)type;\n          err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar34,(Idx)prVar5,type);\n          cVar44 = (char)in_stack_ffffff58;\n          if (err != _REG_NOERROR) goto LAB_00020920;\n        }" if (parenthesized_expression "(next_nodes.nelem != 0)" ( (binary_expression "next_nodes.nelem != 0" (field_expression "next_nodes.nelem" identifier . field_identifier) != number_literal) )) (compound_statement "{\n          mctx_01 = prStack_94;\n          prVar25 = prVar34;\n          context = prVar5;\n          in_stack_ffffff58 = (re_dfa_t *)type;\n          err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar34,(Idx)prVar5,type);\n          cVar44 = (char)in_stack_ffffff58;\n          if (err != _REG_NOERROR) goto LAB_00020920;\n        }" { (expression_statement "mctx_01 = prStack_94;" (assignment_expression "mctx_01 = prStack_94" identifier = identifier) ;) (expression_statement "prVar25 = prVar34;" (assignment_expression "prVar25 = prVar34" identifier = identifier) ;) (expression_statement "context = prVar5;" (assignment_expression "context = prVar5" identifier = identifier) ;) (expression_statement "in_stack_ffffff58 = (re_dfa_t *)type;" (assignment_expression "in_stack_ffffff58 = (re_dfa_t *)type" identifier = (cast_expression "(re_dfa_t *)type" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar34,(Idx)prVar5,type);" (assignment_expression "err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar34,(Idx)prVar5,type)" identifier = (call_expression "expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar34,(Idx)prVar5,type)" identifier (argument_list "(mctx,(re_node_set *)prStack_94,(Idx)prVar34,(Idx)prVar5,type)" ( identifier , (cast_expression "(re_node_set *)prStack_94" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Idx)prVar34" ( (type_descriptor "Idx" type_identifier) ) identifier) , (cast_expression "(Idx)prVar5" ( (type_descriptor "Idx" type_identifier) ) identifier) , identifier )))) ;) (expression_statement "cVar44 = (char)in_stack_ffffff58;" (assignment_expression "cVar44 = (char)in_stack_ffffff58" identifier = (cast_expression "(char)in_stack_ffffff58" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (err != _REG_NOERROR) goto LAB_00020920;" if (parenthesized_expression "(err != _REG_NOERROR)" ( (binary_expression "err != _REG_NOERROR" identifier != identifier) )) (goto_statement "goto LAB_00020920;" goto statement_identifier ;)) })) (expression_statement "mctx_01 = prVar15;" (assignment_expression "mctx_01 = prVar15" identifier = identifier) ;) (expression_statement "context = input;" (assignment_expression "context = input" identifier = identifier) ;) (expression_statement "unaff_s7 = re_acquire_state_context(&err,prVar15,(re_node_set *)prStack_94,(uint)input);" (assignment_expression "unaff_s7 = re_acquire_state_context(&err,prVar15,(re_node_set *)prStack_94,(uint)input)" identifier = (call_expression "re_acquire_state_context(&err,prVar15,(re_node_set *)prStack_94,(uint)input)" identifier (argument_list "(&err,prVar15,(re_node_set *)prStack_94,(uint)input)" ( (pointer_expression "&err" & identifier) , identifier , (cast_expression "(re_node_set *)prStack_94" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(uint)input" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "cVar44 = (char)in_stack_ffffff58;" (assignment_expression "cVar44 = (char)in_stack_ffffff58" identifier = (cast_expression "(char)in_stack_ffffff58" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "prVar25 = prStack_94;" (assignment_expression "prVar25 = prStack_94" identifier = identifier) ;) (if_statement "if ((unaff_s7 != (re_dfastate_t *)0x0) || (err == _REG_NOERROR)) {\n          mctx->state_log[(int)prVar34] = unaff_s7;\n          prVar27 = prVar34;\n          goto LAB_00020670;\n        }" if (parenthesized_expression "((unaff_s7 != (re_dfastate_t *)0x0) || (err == _REG_NOERROR))" ( (binary_expression "(unaff_s7 != (re_dfastate_t *)0x0) || (err == _REG_NOERROR)" (parenthesized_expression "(unaff_s7 != (re_dfastate_t *)0x0)" ( (binary_expression "unaff_s7 != (re_dfastate_t *)0x0" identifier != (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(err == _REG_NOERROR)" ( (binary_expression "err == _REG_NOERROR" identifier == identifier) ))) )) (compound_statement "{\n          mctx->state_log[(int)prVar34] = unaff_s7;\n          prVar27 = prVar34;\n          goto LAB_00020670;\n        }" { (expression_statement "mctx->state_log[(int)prVar34] = unaff_s7;" (assignment_expression "mctx->state_log[(int)prVar34] = unaff_s7" (subscript_expression "mctx->state_log[(int)prVar34]" (field_expression "mctx->state_log" identifier -> field_identifier) [ (cast_expression "(int)prVar34" ( (type_descriptor "int" primitive_type) ) identifier) ]) = identifier) ;) (expression_statement "prVar27 = prVar34;" (assignment_expression "prVar27 = prVar34" identifier = identifier) ;) (goto_statement "goto LAB_00020670;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00020920:\n      (*(code *)PTR_free_0003c320)(next_nodes.elems);" statement_identifier : (expression_statement "(*(code *)PTR_free_0003c320)(next_nodes.elems);" (call_expression "(*(code *)PTR_free_0003c320)(next_nodes.elems)" (parenthesized_expression "(*(code *)PTR_free_0003c320)" ( (pointer_expression "*(code *)PTR_free_0003c320" * (cast_expression "(code *)PTR_free_0003c320" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(next_nodes.elems)" ( (field_expression "next_nodes.elems" identifier . field_identifier) ))) ;)) (expression_statement "rVar11 = err;" (assignment_expression "rVar11 = err" identifier = identifier) ;) }) (else_clause "else {\n      mctx->state_log = pprVar36;\n      mctx_01 = (re_dfa_t *)((int)&prVar34[-1].subexp_map + 3);\n      (mctx->input).cur_idx = (Idx)prVar34;\n      input = (re_dfa_t *)re_string_context_at(&mctx->input,(Idx)mctx_01,(int)prVar25);\n      if (prVar34 == (re_dfa_t *)top_str) goto LAB_00020b7c;\n      pprVar36 = pprVar36 + (int)prVar34;\n      unaff_s7 = *pprVar36;\n      prVar27 = prVar34;\n      if ((unaff_s7 == (re_dfastate_t *)0x0) || ((unaff_s7->field_0x34 & 2) == 0)) {\n        next_nodes.alloc = 0;\n        next_nodes.nelem = 0;\n        next_nodes.elems = (Idx *)0x0;\nLAB_00020670:\n        cVar44 = (char)in_stack_ffffff58;\n        pcStack_6c = (code *)(puVar4 + -0x34b0);\n        prStack_94 = (re_dfa_t *)&next_nodes;\n        if (((int)prVar27 < last_str) && (-1 < mctx->max_mb_elem_len)) {\n          pprVar6 = mctx->state_log;\n          iStack_8c = 0;\n          pcVar18 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar19 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar20 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          prVar34 = prVar27;\n          unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1);\n          do {\n            prVar27 = unaff_s8;\n            next_nodes.nelem = 0;\n            top_node = (int)&prVar27[-1].subexp_map + 3;\n            if (pprVar6[(int)prVar27] == (re_dfastate_t *)0x0) {\n              rVar11 = err;\n              if (unaff_s7 != (re_dfastate_t *)0x0) goto LAB_000206f8;\n              iVar8 = mctx->eflags;\n            }\n            else {\n              mctx_01 = (re_dfa_t *)&pprVar6[(int)prVar27]->nodes;\n              err = re_node_set_merge((re_node_set *)prStack_94,(re_node_set *)mctx_01);\n              cVar44 = (char)in_stack_ffffff58;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              rVar11 = _REG_NOERROR;\n              if (unaff_s7 != (re_dfastate_t *)0x0) {\nLAB_000206f8:\n                err = rVar11;\n                unaff_s5 = (re_dfa_t *)&union_set;\n                input = mctx->dfa;\n                union_set.alloc = 0;\n                err_1 = _REG_NOERROR;\n                union_set.nelem = 0;\n                union_set.elems = (Idx *)0x0;\n                if (0 < (unaff_s7->non_eps_nodes).nelem) {\n                  pprVar36 = (re_dfastate_t **)0x0;\n                  pcVar7 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    prVar35 = (re_dfa_t *)(unaff_s7->non_eps_nodes).elems[(int)pprVar36];\n                    top_str = (int)prVar35 * 8;\n                    prVar26 = (re_token_t *)\n                              ((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60));\n                    if ((*(uint *)&prVar26->field_0x4 & 0x800) != 0) {\n                      prVar25 = prVar35;\n                      context = (re_dfa_t *)mctx;\n                      in_stack_ffffff58 = (re_dfa_t *)top_node;\n                      iVar8 = check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node);\n                      if (iVar8 < 2) {\n                        unaff_s8 = prVar27;\n                        if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60;\n                      prVar34 = (re_dfa_t *)((int)prVar35 * 4);\n                      top_str = iVar8 * 4;\n                      unaff_s8 = *(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      union_set.nelem = 0;\n                      if (mctx->state_log[iVar8] == (re_dfastate_t *)0x0) {\nLAB_000209e0:\n                        mctx_01 = unaff_s8;\n                        iVar13 = (*pcVar20)(unaff_s5);\n                        cVar44 = (char)in_stack_ffffff58;\n                        if (iVar13 == 0) goto LAB_00020904;\n                        context = (re_dfa_t *)mctx->state_log;\n                        unaff_s8 = (re_dfa_t *)((int)context + top_str);\n                        mctx_01 = input;\n                        prVar25 = unaff_s5;\n                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);\n                        pprVar6 = mctx->state_log;\n                        unaff_s8->nodes = prVar26;\n                        top_str = (Idx)(pprVar6 + iVar8);\n                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;\n                      }\n                      else {\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(union_set.elems);\n                      cVar44 = (char)in_stack_ffffff58;\n                      err = err_1;\n                      unaff_s8 = prVar27;\n                      if (err_1 == _REG_NOERROR) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    prVar25 = (re_dfa_t *)top_node;\n                    iVar8 = (*pcVar19)(mctx,prVar26);\n                    unaff_s8 = prVar27;\n                    if (iVar8 != 0) {\nLAB_00020784:\n                      prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      mctx_01 = (re_dfa_t *)prVar34->nodes;\n                      iVar8 = (*pcVar20)(prStack_94);\n                      cVar44 = (char)in_stack_ffffff58;\n                      if (iVar8 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);\n                        err = _REG_ESPACE;\n                        goto LAB_00020920;\n                      }\n                    }\n                    pprVar36 = (re_dfastate_t **)((int)pprVar36 + 1);\n                  } while ((int)pprVar36 < (unaff_s7->non_eps_nodes).nelem);\n                }\n                (*(code *)PTR_free_0003c320)(union_set.elems);\n                err = _REG_NOERROR;\n              }\nLAB_000207d0:\n              cVar44 = (char)in_stack_ffffff58;\n              if (next_nodes.nelem != 0) {\n                mctx_01 = prStack_94;\n                prVar25 = prVar5;\n                context = (re_dfa_t *)type;\n                err = (*pcVar18)(prVar15);\n                prVar34 = prVar27;\n                unaff_s8 = prVar27;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n                mctx_01 = prStack_94;\n                prVar25 = prVar27;\n                context = prVar5;\n                in_stack_ffffff58 = (re_dfa_t *)type;\n                err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar27,(Idx)prVar5,\n                                         type);\n                cVar44 = (char)in_stack_ffffff58;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n              }\n              iVar8 = mctx->eflags;\n            }\n            context = (re_dfa_t *)(*pcStack_6c)(mctx,top_node,iVar8);\n            mctx_01 = prVar15;\n            prVar25 = prStack_94;\n            unaff_s7 = re_acquire_state_context\n                                 (&err,prVar15,(re_node_set *)prStack_94,(uint)context);\n            cVar44 = (char)in_stack_ffffff58;\n            if (unaff_s7 == (re_dfastate_t *)0x0) {\n              prVar34 = prVar27;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              pprVar6 = mctx->state_log;\n              iStack_8c = iStack_8c + 1;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)0x0;\n            }\n            else {\n              pprVar6 = mctx->state_log;\n              iStack_8c = 0;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)unaff_s7;\n            }\n            unaff_s8 = prVar27;\n          } while (((int)prVar27 < last_str) &&\n                  (unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1), prVar34 = prVar27,\n                  iStack_8c <= mctx->max_mb_elem_len));\n        }\n        (*(code *)PTR_free_0003c320)(next_nodes.elems);\n        prVar9 = mctx->state_log[last_str];\n        prVar34 = prVar27;\n        if (prVar9 == (re_dfastate_t *)0x0) {\n          path->next_idx = (Idx)prVar27;\n          mctx->state_log = pprVar16;\n          (mctx->input).cur_idx = IVar17;\n          rVar11 = _REG_NOMATCH;\n        }\n        else {\n          mctx_01 = (re_dfa_t *)&(prVar9->nodes).elems;\n          path->next_idx = (Idx)prVar27;\n          (mctx->input).cur_idx = IVar17;\n          set = (re_node_set *)(prVar9->nodes).nelem;\n          mctx->state_log = pprVar16;\n          IVar17 = re_node_set_contains(set,(Idx)mctx_01,(re_node_set *)last_node);\n          rVar11 = (uint)(IVar17 == 0);\n          prVar25 = (re_dfa_t *)last_node;\n        }\n      }\n      else {\n        mctx_01 = (re_dfa_t *)&unaff_s7->nodes;\n        rVar11 = re_node_set_init_copy(&next_nodes,(re_node_set *)mctx_01);\n        cVar44 = (char)in_stack_ffffff58;\n        err = rVar11;\n        if (rVar11 == _REG_NOERROR) {\n          if ((unaff_s7->field_0x34 & 2) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }" else (compound_statement "{\n      mctx->state_log = pprVar36;\n      mctx_01 = (re_dfa_t *)((int)&prVar34[-1].subexp_map + 3);\n      (mctx->input).cur_idx = (Idx)prVar34;\n      input = (re_dfa_t *)re_string_context_at(&mctx->input,(Idx)mctx_01,(int)prVar25);\n      if (prVar34 == (re_dfa_t *)top_str) goto LAB_00020b7c;\n      pprVar36 = pprVar36 + (int)prVar34;\n      unaff_s7 = *pprVar36;\n      prVar27 = prVar34;\n      if ((unaff_s7 == (re_dfastate_t *)0x0) || ((unaff_s7->field_0x34 & 2) == 0)) {\n        next_nodes.alloc = 0;\n        next_nodes.nelem = 0;\n        next_nodes.elems = (Idx *)0x0;\nLAB_00020670:\n        cVar44 = (char)in_stack_ffffff58;\n        pcStack_6c = (code *)(puVar4 + -0x34b0);\n        prStack_94 = (re_dfa_t *)&next_nodes;\n        if (((int)prVar27 < last_str) && (-1 < mctx->max_mb_elem_len)) {\n          pprVar6 = mctx->state_log;\n          iStack_8c = 0;\n          pcVar18 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar19 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar20 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          prVar34 = prVar27;\n          unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1);\n          do {\n            prVar27 = unaff_s8;\n            next_nodes.nelem = 0;\n            top_node = (int)&prVar27[-1].subexp_map + 3;\n            if (pprVar6[(int)prVar27] == (re_dfastate_t *)0x0) {\n              rVar11 = err;\n              if (unaff_s7 != (re_dfastate_t *)0x0) goto LAB_000206f8;\n              iVar8 = mctx->eflags;\n            }\n            else {\n              mctx_01 = (re_dfa_t *)&pprVar6[(int)prVar27]->nodes;\n              err = re_node_set_merge((re_node_set *)prStack_94,(re_node_set *)mctx_01);\n              cVar44 = (char)in_stack_ffffff58;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              rVar11 = _REG_NOERROR;\n              if (unaff_s7 != (re_dfastate_t *)0x0) {\nLAB_000206f8:\n                err = rVar11;\n                unaff_s5 = (re_dfa_t *)&union_set;\n                input = mctx->dfa;\n                union_set.alloc = 0;\n                err_1 = _REG_NOERROR;\n                union_set.nelem = 0;\n                union_set.elems = (Idx *)0x0;\n                if (0 < (unaff_s7->non_eps_nodes).nelem) {\n                  pprVar36 = (re_dfastate_t **)0x0;\n                  pcVar7 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    prVar35 = (re_dfa_t *)(unaff_s7->non_eps_nodes).elems[(int)pprVar36];\n                    top_str = (int)prVar35 * 8;\n                    prVar26 = (re_token_t *)\n                              ((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60));\n                    if ((*(uint *)&prVar26->field_0x4 & 0x800) != 0) {\n                      prVar25 = prVar35;\n                      context = (re_dfa_t *)mctx;\n                      in_stack_ffffff58 = (re_dfa_t *)top_node;\n                      iVar8 = check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node);\n                      if (iVar8 < 2) {\n                        unaff_s8 = prVar27;\n                        if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60;\n                      prVar34 = (re_dfa_t *)((int)prVar35 * 4);\n                      top_str = iVar8 * 4;\n                      unaff_s8 = *(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      union_set.nelem = 0;\n                      if (mctx->state_log[iVar8] == (re_dfastate_t *)0x0) {\nLAB_000209e0:\n                        mctx_01 = unaff_s8;\n                        iVar13 = (*pcVar20)(unaff_s5);\n                        cVar44 = (char)in_stack_ffffff58;\n                        if (iVar13 == 0) goto LAB_00020904;\n                        context = (re_dfa_t *)mctx->state_log;\n                        unaff_s8 = (re_dfa_t *)((int)context + top_str);\n                        mctx_01 = input;\n                        prVar25 = unaff_s5;\n                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);\n                        pprVar6 = mctx->state_log;\n                        unaff_s8->nodes = prVar26;\n                        top_str = (Idx)(pprVar6 + iVar8);\n                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;\n                      }\n                      else {\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(union_set.elems);\n                      cVar44 = (char)in_stack_ffffff58;\n                      err = err_1;\n                      unaff_s8 = prVar27;\n                      if (err_1 == _REG_NOERROR) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    prVar25 = (re_dfa_t *)top_node;\n                    iVar8 = (*pcVar19)(mctx,prVar26);\n                    unaff_s8 = prVar27;\n                    if (iVar8 != 0) {\nLAB_00020784:\n                      prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      mctx_01 = (re_dfa_t *)prVar34->nodes;\n                      iVar8 = (*pcVar20)(prStack_94);\n                      cVar44 = (char)in_stack_ffffff58;\n                      if (iVar8 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);\n                        err = _REG_ESPACE;\n                        goto LAB_00020920;\n                      }\n                    }\n                    pprVar36 = (re_dfastate_t **)((int)pprVar36 + 1);\n                  } while ((int)pprVar36 < (unaff_s7->non_eps_nodes).nelem);\n                }\n                (*(code *)PTR_free_0003c320)(union_set.elems);\n                err = _REG_NOERROR;\n              }\nLAB_000207d0:\n              cVar44 = (char)in_stack_ffffff58;\n              if (next_nodes.nelem != 0) {\n                mctx_01 = prStack_94;\n                prVar25 = prVar5;\n                context = (re_dfa_t *)type;\n                err = (*pcVar18)(prVar15);\n                prVar34 = prVar27;\n                unaff_s8 = prVar27;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n                mctx_01 = prStack_94;\n                prVar25 = prVar27;\n                context = prVar5;\n                in_stack_ffffff58 = (re_dfa_t *)type;\n                err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar27,(Idx)prVar5,\n                                         type);\n                cVar44 = (char)in_stack_ffffff58;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n              }\n              iVar8 = mctx->eflags;\n            }\n            context = (re_dfa_t *)(*pcStack_6c)(mctx,top_node,iVar8);\n            mctx_01 = prVar15;\n            prVar25 = prStack_94;\n            unaff_s7 = re_acquire_state_context\n                                 (&err,prVar15,(re_node_set *)prStack_94,(uint)context);\n            cVar44 = (char)in_stack_ffffff58;\n            if (unaff_s7 == (re_dfastate_t *)0x0) {\n              prVar34 = prVar27;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              pprVar6 = mctx->state_log;\n              iStack_8c = iStack_8c + 1;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)0x0;\n            }\n            else {\n              pprVar6 = mctx->state_log;\n              iStack_8c = 0;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)unaff_s7;\n            }\n            unaff_s8 = prVar27;\n          } while (((int)prVar27 < last_str) &&\n                  (unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1), prVar34 = prVar27,\n                  iStack_8c <= mctx->max_mb_elem_len));\n        }\n        (*(code *)PTR_free_0003c320)(next_nodes.elems);\n        prVar9 = mctx->state_log[last_str];\n        prVar34 = prVar27;\n        if (prVar9 == (re_dfastate_t *)0x0) {\n          path->next_idx = (Idx)prVar27;\n          mctx->state_log = pprVar16;\n          (mctx->input).cur_idx = IVar17;\n          rVar11 = _REG_NOMATCH;\n        }\n        else {\n          mctx_01 = (re_dfa_t *)&(prVar9->nodes).elems;\n          path->next_idx = (Idx)prVar27;\n          (mctx->input).cur_idx = IVar17;\n          set = (re_node_set *)(prVar9->nodes).nelem;\n          mctx->state_log = pprVar16;\n          IVar17 = re_node_set_contains(set,(Idx)mctx_01,(re_node_set *)last_node);\n          rVar11 = (uint)(IVar17 == 0);\n          prVar25 = (re_dfa_t *)last_node;\n        }\n      }\n      else {\n        mctx_01 = (re_dfa_t *)&unaff_s7->nodes;\n        rVar11 = re_node_set_init_copy(&next_nodes,(re_node_set *)mctx_01);\n        cVar44 = (char)in_stack_ffffff58;\n        err = rVar11;\n        if (rVar11 == _REG_NOERROR) {\n          if ((unaff_s7->field_0x34 & 2) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }" { (expression_statement "mctx->state_log = pprVar36;" (assignment_expression "mctx->state_log = pprVar36" (field_expression "mctx->state_log" identifier -> field_identifier) = identifier) ;) (expression_statement "mctx_01 = (re_dfa_t *)((int)&prVar34[-1].subexp_map + 3);" (assignment_expression "mctx_01 = (re_dfa_t *)((int)&prVar34[-1].subexp_map + 3)" identifier = (cast_expression "(re_dfa_t *)((int)&prVar34[-1].subexp_map + 3)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar34[-1].subexp_map + 3)" ( (binary_expression "(int)&prVar34[-1].subexp_map + 3" (cast_expression "(int)&prVar34[-1].subexp_map" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar34[-1].subexp_map" & (field_expression "prVar34[-1].subexp_map" (subscript_expression "prVar34[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "(mctx->input).cur_idx = (Idx)prVar34;" (assignment_expression "(mctx->input).cur_idx = (Idx)prVar34" (field_expression "(mctx->input).cur_idx" (parenthesized_expression "(mctx->input)" ( (field_expression "mctx->input" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(Idx)prVar34" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "input = (re_dfa_t *)re_string_context_at(&mctx->input,(Idx)mctx_01,(int)prVar25);" (assignment_expression "input = (re_dfa_t *)re_string_context_at(&mctx->input,(Idx)mctx_01,(int)prVar25)" identifier = (cast_expression "(re_dfa_t *)re_string_context_at(&mctx->input,(Idx)mctx_01,(int)prVar25)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "re_string_context_at(&mctx->input,(Idx)mctx_01,(int)prVar25)" identifier (argument_list "(&mctx->input,(Idx)mctx_01,(int)prVar25)" ( (pointer_expression "&mctx->input" & (field_expression "mctx->input" identifier -> field_identifier)) , (cast_expression "(Idx)mctx_01" ( (type_descriptor "Idx" type_identifier) ) identifier) , (cast_expression "(int)prVar25" ( (type_descriptor "int" primitive_type) ) identifier) ))))) ;) (if_statement "if (prVar34 == (re_dfa_t *)top_str) goto LAB_00020b7c;" if (parenthesized_expression "(prVar34 == (re_dfa_t *)top_str)" ( (binary_expression "prVar34 == (re_dfa_t *)top_str" identifier == (cast_expression "(re_dfa_t *)top_str" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (goto_statement "goto LAB_00020b7c;" goto statement_identifier ;)) (expression_statement "pprVar36 = pprVar36 + (int)prVar34;" (assignment_expression "pprVar36 = pprVar36 + (int)prVar34" identifier = (binary_expression "pprVar36 + (int)prVar34" identifier + (cast_expression "(int)prVar34" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "unaff_s7 = *pprVar36;" (assignment_expression "unaff_s7 = *pprVar36" identifier = (pointer_expression "*pprVar36" * identifier)) ;) (expression_statement "prVar27 = prVar34;" (assignment_expression "prVar27 = prVar34" identifier = identifier) ;) (if_statement "if ((unaff_s7 == (re_dfastate_t *)0x0) || ((unaff_s7->field_0x34 & 2) == 0)) {\n        next_nodes.alloc = 0;\n        next_nodes.nelem = 0;\n        next_nodes.elems = (Idx *)0x0;\nLAB_00020670:\n        cVar44 = (char)in_stack_ffffff58;\n        pcStack_6c = (code *)(puVar4 + -0x34b0);\n        prStack_94 = (re_dfa_t *)&next_nodes;\n        if (((int)prVar27 < last_str) && (-1 < mctx->max_mb_elem_len)) {\n          pprVar6 = mctx->state_log;\n          iStack_8c = 0;\n          pcVar18 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar19 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar20 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          prVar34 = prVar27;\n          unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1);\n          do {\n            prVar27 = unaff_s8;\n            next_nodes.nelem = 0;\n            top_node = (int)&prVar27[-1].subexp_map + 3;\n            if (pprVar6[(int)prVar27] == (re_dfastate_t *)0x0) {\n              rVar11 = err;\n              if (unaff_s7 != (re_dfastate_t *)0x0) goto LAB_000206f8;\n              iVar8 = mctx->eflags;\n            }\n            else {\n              mctx_01 = (re_dfa_t *)&pprVar6[(int)prVar27]->nodes;\n              err = re_node_set_merge((re_node_set *)prStack_94,(re_node_set *)mctx_01);\n              cVar44 = (char)in_stack_ffffff58;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              rVar11 = _REG_NOERROR;\n              if (unaff_s7 != (re_dfastate_t *)0x0) {\nLAB_000206f8:\n                err = rVar11;\n                unaff_s5 = (re_dfa_t *)&union_set;\n                input = mctx->dfa;\n                union_set.alloc = 0;\n                err_1 = _REG_NOERROR;\n                union_set.nelem = 0;\n                union_set.elems = (Idx *)0x0;\n                if (0 < (unaff_s7->non_eps_nodes).nelem) {\n                  pprVar36 = (re_dfastate_t **)0x0;\n                  pcVar7 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    prVar35 = (re_dfa_t *)(unaff_s7->non_eps_nodes).elems[(int)pprVar36];\n                    top_str = (int)prVar35 * 8;\n                    prVar26 = (re_token_t *)\n                              ((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60));\n                    if ((*(uint *)&prVar26->field_0x4 & 0x800) != 0) {\n                      prVar25 = prVar35;\n                      context = (re_dfa_t *)mctx;\n                      in_stack_ffffff58 = (re_dfa_t *)top_node;\n                      iVar8 = check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node);\n                      if (iVar8 < 2) {\n                        unaff_s8 = prVar27;\n                        if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60;\n                      prVar34 = (re_dfa_t *)((int)prVar35 * 4);\n                      top_str = iVar8 * 4;\n                      unaff_s8 = *(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      union_set.nelem = 0;\n                      if (mctx->state_log[iVar8] == (re_dfastate_t *)0x0) {\nLAB_000209e0:\n                        mctx_01 = unaff_s8;\n                        iVar13 = (*pcVar20)(unaff_s5);\n                        cVar44 = (char)in_stack_ffffff58;\n                        if (iVar13 == 0) goto LAB_00020904;\n                        context = (re_dfa_t *)mctx->state_log;\n                        unaff_s8 = (re_dfa_t *)((int)context + top_str);\n                        mctx_01 = input;\n                        prVar25 = unaff_s5;\n                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);\n                        pprVar6 = mctx->state_log;\n                        unaff_s8->nodes = prVar26;\n                        top_str = (Idx)(pprVar6 + iVar8);\n                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;\n                      }\n                      else {\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(union_set.elems);\n                      cVar44 = (char)in_stack_ffffff58;\n                      err = err_1;\n                      unaff_s8 = prVar27;\n                      if (err_1 == _REG_NOERROR) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    prVar25 = (re_dfa_t *)top_node;\n                    iVar8 = (*pcVar19)(mctx,prVar26);\n                    unaff_s8 = prVar27;\n                    if (iVar8 != 0) {\nLAB_00020784:\n                      prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      mctx_01 = (re_dfa_t *)prVar34->nodes;\n                      iVar8 = (*pcVar20)(prStack_94);\n                      cVar44 = (char)in_stack_ffffff58;\n                      if (iVar8 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);\n                        err = _REG_ESPACE;\n                        goto LAB_00020920;\n                      }\n                    }\n                    pprVar36 = (re_dfastate_t **)((int)pprVar36 + 1);\n                  } while ((int)pprVar36 < (unaff_s7->non_eps_nodes).nelem);\n                }\n                (*(code *)PTR_free_0003c320)(union_set.elems);\n                err = _REG_NOERROR;\n              }\nLAB_000207d0:\n              cVar44 = (char)in_stack_ffffff58;\n              if (next_nodes.nelem != 0) {\n                mctx_01 = prStack_94;\n                prVar25 = prVar5;\n                context = (re_dfa_t *)type;\n                err = (*pcVar18)(prVar15);\n                prVar34 = prVar27;\n                unaff_s8 = prVar27;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n                mctx_01 = prStack_94;\n                prVar25 = prVar27;\n                context = prVar5;\n                in_stack_ffffff58 = (re_dfa_t *)type;\n                err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar27,(Idx)prVar5,\n                                         type);\n                cVar44 = (char)in_stack_ffffff58;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n              }\n              iVar8 = mctx->eflags;\n            }\n            context = (re_dfa_t *)(*pcStack_6c)(mctx,top_node,iVar8);\n            mctx_01 = prVar15;\n            prVar25 = prStack_94;\n            unaff_s7 = re_acquire_state_context\n                                 (&err,prVar15,(re_node_set *)prStack_94,(uint)context);\n            cVar44 = (char)in_stack_ffffff58;\n            if (unaff_s7 == (re_dfastate_t *)0x0) {\n              prVar34 = prVar27;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              pprVar6 = mctx->state_log;\n              iStack_8c = iStack_8c + 1;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)0x0;\n            }\n            else {\n              pprVar6 = mctx->state_log;\n              iStack_8c = 0;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)unaff_s7;\n            }\n            unaff_s8 = prVar27;\n          } while (((int)prVar27 < last_str) &&\n                  (unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1), prVar34 = prVar27,\n                  iStack_8c <= mctx->max_mb_elem_len));\n        }\n        (*(code *)PTR_free_0003c320)(next_nodes.elems);\n        prVar9 = mctx->state_log[last_str];\n        prVar34 = prVar27;\n        if (prVar9 == (re_dfastate_t *)0x0) {\n          path->next_idx = (Idx)prVar27;\n          mctx->state_log = pprVar16;\n          (mctx->input).cur_idx = IVar17;\n          rVar11 = _REG_NOMATCH;\n        }\n        else {\n          mctx_01 = (re_dfa_t *)&(prVar9->nodes).elems;\n          path->next_idx = (Idx)prVar27;\n          (mctx->input).cur_idx = IVar17;\n          set = (re_node_set *)(prVar9->nodes).nelem;\n          mctx->state_log = pprVar16;\n          IVar17 = re_node_set_contains(set,(Idx)mctx_01,(re_node_set *)last_node);\n          rVar11 = (uint)(IVar17 == 0);\n          prVar25 = (re_dfa_t *)last_node;\n        }\n      }\n      else {\n        mctx_01 = (re_dfa_t *)&unaff_s7->nodes;\n        rVar11 = re_node_set_init_copy(&next_nodes,(re_node_set *)mctx_01);\n        cVar44 = (char)in_stack_ffffff58;\n        err = rVar11;\n        if (rVar11 == _REG_NOERROR) {\n          if ((unaff_s7->field_0x34 & 2) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }" if (parenthesized_expression "((unaff_s7 == (re_dfastate_t *)0x0) || ((unaff_s7->field_0x34 & 2) == 0))" ( (binary_expression "(unaff_s7 == (re_dfastate_t *)0x0) || ((unaff_s7->field_0x34 & 2) == 0)" (parenthesized_expression "(unaff_s7 == (re_dfastate_t *)0x0)" ( (binary_expression "unaff_s7 == (re_dfastate_t *)0x0" identifier == (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((unaff_s7->field_0x34 & 2) == 0)" ( (binary_expression "(unaff_s7->field_0x34 & 2) == 0" (parenthesized_expression "(unaff_s7->field_0x34 & 2)" ( (binary_expression "unaff_s7->field_0x34 & 2" (field_expression "unaff_s7->field_0x34" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        next_nodes.alloc = 0;\n        next_nodes.nelem = 0;\n        next_nodes.elems = (Idx *)0x0;\nLAB_00020670:\n        cVar44 = (char)in_stack_ffffff58;\n        pcStack_6c = (code *)(puVar4 + -0x34b0);\n        prStack_94 = (re_dfa_t *)&next_nodes;\n        if (((int)prVar27 < last_str) && (-1 < mctx->max_mb_elem_len)) {\n          pprVar6 = mctx->state_log;\n          iStack_8c = 0;\n          pcVar18 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar19 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar20 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          prVar34 = prVar27;\n          unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1);\n          do {\n            prVar27 = unaff_s8;\n            next_nodes.nelem = 0;\n            top_node = (int)&prVar27[-1].subexp_map + 3;\n            if (pprVar6[(int)prVar27] == (re_dfastate_t *)0x0) {\n              rVar11 = err;\n              if (unaff_s7 != (re_dfastate_t *)0x0) goto LAB_000206f8;\n              iVar8 = mctx->eflags;\n            }\n            else {\n              mctx_01 = (re_dfa_t *)&pprVar6[(int)prVar27]->nodes;\n              err = re_node_set_merge((re_node_set *)prStack_94,(re_node_set *)mctx_01);\n              cVar44 = (char)in_stack_ffffff58;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              rVar11 = _REG_NOERROR;\n              if (unaff_s7 != (re_dfastate_t *)0x0) {\nLAB_000206f8:\n                err = rVar11;\n                unaff_s5 = (re_dfa_t *)&union_set;\n                input = mctx->dfa;\n                union_set.alloc = 0;\n                err_1 = _REG_NOERROR;\n                union_set.nelem = 0;\n                union_set.elems = (Idx *)0x0;\n                if (0 < (unaff_s7->non_eps_nodes).nelem) {\n                  pprVar36 = (re_dfastate_t **)0x0;\n                  pcVar7 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    prVar35 = (re_dfa_t *)(unaff_s7->non_eps_nodes).elems[(int)pprVar36];\n                    top_str = (int)prVar35 * 8;\n                    prVar26 = (re_token_t *)\n                              ((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60));\n                    if ((*(uint *)&prVar26->field_0x4 & 0x800) != 0) {\n                      prVar25 = prVar35;\n                      context = (re_dfa_t *)mctx;\n                      in_stack_ffffff58 = (re_dfa_t *)top_node;\n                      iVar8 = check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node);\n                      if (iVar8 < 2) {\n                        unaff_s8 = prVar27;\n                        if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60;\n                      prVar34 = (re_dfa_t *)((int)prVar35 * 4);\n                      top_str = iVar8 * 4;\n                      unaff_s8 = *(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      union_set.nelem = 0;\n                      if (mctx->state_log[iVar8] == (re_dfastate_t *)0x0) {\nLAB_000209e0:\n                        mctx_01 = unaff_s8;\n                        iVar13 = (*pcVar20)(unaff_s5);\n                        cVar44 = (char)in_stack_ffffff58;\n                        if (iVar13 == 0) goto LAB_00020904;\n                        context = (re_dfa_t *)mctx->state_log;\n                        unaff_s8 = (re_dfa_t *)((int)context + top_str);\n                        mctx_01 = input;\n                        prVar25 = unaff_s5;\n                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);\n                        pprVar6 = mctx->state_log;\n                        unaff_s8->nodes = prVar26;\n                        top_str = (Idx)(pprVar6 + iVar8);\n                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;\n                      }\n                      else {\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(union_set.elems);\n                      cVar44 = (char)in_stack_ffffff58;\n                      err = err_1;\n                      unaff_s8 = prVar27;\n                      if (err_1 == _REG_NOERROR) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    prVar25 = (re_dfa_t *)top_node;\n                    iVar8 = (*pcVar19)(mctx,prVar26);\n                    unaff_s8 = prVar27;\n                    if (iVar8 != 0) {\nLAB_00020784:\n                      prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      mctx_01 = (re_dfa_t *)prVar34->nodes;\n                      iVar8 = (*pcVar20)(prStack_94);\n                      cVar44 = (char)in_stack_ffffff58;\n                      if (iVar8 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);\n                        err = _REG_ESPACE;\n                        goto LAB_00020920;\n                      }\n                    }\n                    pprVar36 = (re_dfastate_t **)((int)pprVar36 + 1);\n                  } while ((int)pprVar36 < (unaff_s7->non_eps_nodes).nelem);\n                }\n                (*(code *)PTR_free_0003c320)(union_set.elems);\n                err = _REG_NOERROR;\n              }\nLAB_000207d0:\n              cVar44 = (char)in_stack_ffffff58;\n              if (next_nodes.nelem != 0) {\n                mctx_01 = prStack_94;\n                prVar25 = prVar5;\n                context = (re_dfa_t *)type;\n                err = (*pcVar18)(prVar15);\n                prVar34 = prVar27;\n                unaff_s8 = prVar27;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n                mctx_01 = prStack_94;\n                prVar25 = prVar27;\n                context = prVar5;\n                in_stack_ffffff58 = (re_dfa_t *)type;\n                err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar27,(Idx)prVar5,\n                                         type);\n                cVar44 = (char)in_stack_ffffff58;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n              }\n              iVar8 = mctx->eflags;\n            }\n            context = (re_dfa_t *)(*pcStack_6c)(mctx,top_node,iVar8);\n            mctx_01 = prVar15;\n            prVar25 = prStack_94;\n            unaff_s7 = re_acquire_state_context\n                                 (&err,prVar15,(re_node_set *)prStack_94,(uint)context);\n            cVar44 = (char)in_stack_ffffff58;\n            if (unaff_s7 == (re_dfastate_t *)0x0) {\n              prVar34 = prVar27;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              pprVar6 = mctx->state_log;\n              iStack_8c = iStack_8c + 1;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)0x0;\n            }\n            else {\n              pprVar6 = mctx->state_log;\n              iStack_8c = 0;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)unaff_s7;\n            }\n            unaff_s8 = prVar27;\n          } while (((int)prVar27 < last_str) &&\n                  (unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1), prVar34 = prVar27,\n                  iStack_8c <= mctx->max_mb_elem_len));\n        }\n        (*(code *)PTR_free_0003c320)(next_nodes.elems);\n        prVar9 = mctx->state_log[last_str];\n        prVar34 = prVar27;\n        if (prVar9 == (re_dfastate_t *)0x0) {\n          path->next_idx = (Idx)prVar27;\n          mctx->state_log = pprVar16;\n          (mctx->input).cur_idx = IVar17;\n          rVar11 = _REG_NOMATCH;\n        }\n        else {\n          mctx_01 = (re_dfa_t *)&(prVar9->nodes).elems;\n          path->next_idx = (Idx)prVar27;\n          (mctx->input).cur_idx = IVar17;\n          set = (re_node_set *)(prVar9->nodes).nelem;\n          mctx->state_log = pprVar16;\n          IVar17 = re_node_set_contains(set,(Idx)mctx_01,(re_node_set *)last_node);\n          rVar11 = (uint)(IVar17 == 0);\n          prVar25 = (re_dfa_t *)last_node;\n        }\n      }" { (expression_statement "next_nodes.alloc = 0;" (assignment_expression "next_nodes.alloc = 0" (field_expression "next_nodes.alloc" identifier . field_identifier) = number_literal) ;) (expression_statement "next_nodes.nelem = 0;" (assignment_expression "next_nodes.nelem = 0" (field_expression "next_nodes.nelem" identifier . field_identifier) = number_literal) ;) (expression_statement "next_nodes.elems = (Idx *)0x0;" (assignment_expression "next_nodes.elems = (Idx *)0x0" (field_expression "next_nodes.elems" identifier . field_identifier) = (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00020670:\n        cVar44 = (char)in_stack_ffffff58;" statement_identifier : (expression_statement "cVar44 = (char)in_stack_ffffff58;" (assignment_expression "cVar44 = (char)in_stack_ffffff58" identifier = (cast_expression "(char)in_stack_ffffff58" ( (type_descriptor "char" primitive_type) ) identifier)) ;)) (expression_statement "pcStack_6c = (code *)(puVar4 + -0x34b0);" (assignment_expression "pcStack_6c = (code *)(puVar4 + -0x34b0)" identifier = (cast_expression "(code *)(puVar4 + -0x34b0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x34b0)" ( (binary_expression "puVar4 + -0x34b0" identifier + number_literal) )))) ;) (expression_statement "prStack_94 = (re_dfa_t *)&next_nodes;" (assignment_expression "prStack_94 = (re_dfa_t *)&next_nodes" identifier = (cast_expression "(re_dfa_t *)&next_nodes" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&next_nodes" & identifier))) ;) (if_statement "if (((int)prVar27 < last_str) && (-1 < mctx->max_mb_elem_len)) {\n          pprVar6 = mctx->state_log;\n          iStack_8c = 0;\n          pcVar18 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar19 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar20 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          prVar34 = prVar27;\n          unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1);\n          do {\n            prVar27 = unaff_s8;\n            next_nodes.nelem = 0;\n            top_node = (int)&prVar27[-1].subexp_map + 3;\n            if (pprVar6[(int)prVar27] == (re_dfastate_t *)0x0) {\n              rVar11 = err;\n              if (unaff_s7 != (re_dfastate_t *)0x0) goto LAB_000206f8;\n              iVar8 = mctx->eflags;\n            }\n            else {\n              mctx_01 = (re_dfa_t *)&pprVar6[(int)prVar27]->nodes;\n              err = re_node_set_merge((re_node_set *)prStack_94,(re_node_set *)mctx_01);\n              cVar44 = (char)in_stack_ffffff58;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              rVar11 = _REG_NOERROR;\n              if (unaff_s7 != (re_dfastate_t *)0x0) {\nLAB_000206f8:\n                err = rVar11;\n                unaff_s5 = (re_dfa_t *)&union_set;\n                input = mctx->dfa;\n                union_set.alloc = 0;\n                err_1 = _REG_NOERROR;\n                union_set.nelem = 0;\n                union_set.elems = (Idx *)0x0;\n                if (0 < (unaff_s7->non_eps_nodes).nelem) {\n                  pprVar36 = (re_dfastate_t **)0x0;\n                  pcVar7 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    prVar35 = (re_dfa_t *)(unaff_s7->non_eps_nodes).elems[(int)pprVar36];\n                    top_str = (int)prVar35 * 8;\n                    prVar26 = (re_token_t *)\n                              ((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60));\n                    if ((*(uint *)&prVar26->field_0x4 & 0x800) != 0) {\n                      prVar25 = prVar35;\n                      context = (re_dfa_t *)mctx;\n                      in_stack_ffffff58 = (re_dfa_t *)top_node;\n                      iVar8 = check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node);\n                      if (iVar8 < 2) {\n                        unaff_s8 = prVar27;\n                        if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60;\n                      prVar34 = (re_dfa_t *)((int)prVar35 * 4);\n                      top_str = iVar8 * 4;\n                      unaff_s8 = *(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      union_set.nelem = 0;\n                      if (mctx->state_log[iVar8] == (re_dfastate_t *)0x0) {\nLAB_000209e0:\n                        mctx_01 = unaff_s8;\n                        iVar13 = (*pcVar20)(unaff_s5);\n                        cVar44 = (char)in_stack_ffffff58;\n                        if (iVar13 == 0) goto LAB_00020904;\n                        context = (re_dfa_t *)mctx->state_log;\n                        unaff_s8 = (re_dfa_t *)((int)context + top_str);\n                        mctx_01 = input;\n                        prVar25 = unaff_s5;\n                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);\n                        pprVar6 = mctx->state_log;\n                        unaff_s8->nodes = prVar26;\n                        top_str = (Idx)(pprVar6 + iVar8);\n                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;\n                      }\n                      else {\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(union_set.elems);\n                      cVar44 = (char)in_stack_ffffff58;\n                      err = err_1;\n                      unaff_s8 = prVar27;\n                      if (err_1 == _REG_NOERROR) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    prVar25 = (re_dfa_t *)top_node;\n                    iVar8 = (*pcVar19)(mctx,prVar26);\n                    unaff_s8 = prVar27;\n                    if (iVar8 != 0) {\nLAB_00020784:\n                      prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      mctx_01 = (re_dfa_t *)prVar34->nodes;\n                      iVar8 = (*pcVar20)(prStack_94);\n                      cVar44 = (char)in_stack_ffffff58;\n                      if (iVar8 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);\n                        err = _REG_ESPACE;\n                        goto LAB_00020920;\n                      }\n                    }\n                    pprVar36 = (re_dfastate_t **)((int)pprVar36 + 1);\n                  } while ((int)pprVar36 < (unaff_s7->non_eps_nodes).nelem);\n                }\n                (*(code *)PTR_free_0003c320)(union_set.elems);\n                err = _REG_NOERROR;\n              }\nLAB_000207d0:\n              cVar44 = (char)in_stack_ffffff58;\n              if (next_nodes.nelem != 0) {\n                mctx_01 = prStack_94;\n                prVar25 = prVar5;\n                context = (re_dfa_t *)type;\n                err = (*pcVar18)(prVar15);\n                prVar34 = prVar27;\n                unaff_s8 = prVar27;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n                mctx_01 = prStack_94;\n                prVar25 = prVar27;\n                context = prVar5;\n                in_stack_ffffff58 = (re_dfa_t *)type;\n                err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar27,(Idx)prVar5,\n                                         type);\n                cVar44 = (char)in_stack_ffffff58;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n              }\n              iVar8 = mctx->eflags;\n            }\n            context = (re_dfa_t *)(*pcStack_6c)(mctx,top_node,iVar8);\n            mctx_01 = prVar15;\n            prVar25 = prStack_94;\n            unaff_s7 = re_acquire_state_context\n                                 (&err,prVar15,(re_node_set *)prStack_94,(uint)context);\n            cVar44 = (char)in_stack_ffffff58;\n            if (unaff_s7 == (re_dfastate_t *)0x0) {\n              prVar34 = prVar27;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              pprVar6 = mctx->state_log;\n              iStack_8c = iStack_8c + 1;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)0x0;\n            }\n            else {\n              pprVar6 = mctx->state_log;\n              iStack_8c = 0;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)unaff_s7;\n            }\n            unaff_s8 = prVar27;\n          } while (((int)prVar27 < last_str) &&\n                  (unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1), prVar34 = prVar27,\n                  iStack_8c <= mctx->max_mb_elem_len));\n        }" if (parenthesized_expression "(((int)prVar27 < last_str) && (-1 < mctx->max_mb_elem_len))" ( (binary_expression "((int)prVar27 < last_str) && (-1 < mctx->max_mb_elem_len)" (parenthesized_expression "((int)prVar27 < last_str)" ( (binary_expression "(int)prVar27 < last_str" (cast_expression "(int)prVar27" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) && (parenthesized_expression "(-1 < mctx->max_mb_elem_len)" ( (binary_expression "-1 < mctx->max_mb_elem_len" number_literal < (field_expression "mctx->max_mb_elem_len" identifier -> field_identifier)) ))) )) (compound_statement "{\n          pprVar6 = mctx->state_log;\n          iStack_8c = 0;\n          pcVar18 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar19 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar20 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          prVar34 = prVar27;\n          unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1);\n          do {\n            prVar27 = unaff_s8;\n            next_nodes.nelem = 0;\n            top_node = (int)&prVar27[-1].subexp_map + 3;\n            if (pprVar6[(int)prVar27] == (re_dfastate_t *)0x0) {\n              rVar11 = err;\n              if (unaff_s7 != (re_dfastate_t *)0x0) goto LAB_000206f8;\n              iVar8 = mctx->eflags;\n            }\n            else {\n              mctx_01 = (re_dfa_t *)&pprVar6[(int)prVar27]->nodes;\n              err = re_node_set_merge((re_node_set *)prStack_94,(re_node_set *)mctx_01);\n              cVar44 = (char)in_stack_ffffff58;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              rVar11 = _REG_NOERROR;\n              if (unaff_s7 != (re_dfastate_t *)0x0) {\nLAB_000206f8:\n                err = rVar11;\n                unaff_s5 = (re_dfa_t *)&union_set;\n                input = mctx->dfa;\n                union_set.alloc = 0;\n                err_1 = _REG_NOERROR;\n                union_set.nelem = 0;\n                union_set.elems = (Idx *)0x0;\n                if (0 < (unaff_s7->non_eps_nodes).nelem) {\n                  pprVar36 = (re_dfastate_t **)0x0;\n                  pcVar7 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    prVar35 = (re_dfa_t *)(unaff_s7->non_eps_nodes).elems[(int)pprVar36];\n                    top_str = (int)prVar35 * 8;\n                    prVar26 = (re_token_t *)\n                              ((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60));\n                    if ((*(uint *)&prVar26->field_0x4 & 0x800) != 0) {\n                      prVar25 = prVar35;\n                      context = (re_dfa_t *)mctx;\n                      in_stack_ffffff58 = (re_dfa_t *)top_node;\n                      iVar8 = check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node);\n                      if (iVar8 < 2) {\n                        unaff_s8 = prVar27;\n                        if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60;\n                      prVar34 = (re_dfa_t *)((int)prVar35 * 4);\n                      top_str = iVar8 * 4;\n                      unaff_s8 = *(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      union_set.nelem = 0;\n                      if (mctx->state_log[iVar8] == (re_dfastate_t *)0x0) {\nLAB_000209e0:\n                        mctx_01 = unaff_s8;\n                        iVar13 = (*pcVar20)(unaff_s5);\n                        cVar44 = (char)in_stack_ffffff58;\n                        if (iVar13 == 0) goto LAB_00020904;\n                        context = (re_dfa_t *)mctx->state_log;\n                        unaff_s8 = (re_dfa_t *)((int)context + top_str);\n                        mctx_01 = input;\n                        prVar25 = unaff_s5;\n                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);\n                        pprVar6 = mctx->state_log;\n                        unaff_s8->nodes = prVar26;\n                        top_str = (Idx)(pprVar6 + iVar8);\n                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;\n                      }\n                      else {\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(union_set.elems);\n                      cVar44 = (char)in_stack_ffffff58;\n                      err = err_1;\n                      unaff_s8 = prVar27;\n                      if (err_1 == _REG_NOERROR) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    prVar25 = (re_dfa_t *)top_node;\n                    iVar8 = (*pcVar19)(mctx,prVar26);\n                    unaff_s8 = prVar27;\n                    if (iVar8 != 0) {\nLAB_00020784:\n                      prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      mctx_01 = (re_dfa_t *)prVar34->nodes;\n                      iVar8 = (*pcVar20)(prStack_94);\n                      cVar44 = (char)in_stack_ffffff58;\n                      if (iVar8 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);\n                        err = _REG_ESPACE;\n                        goto LAB_00020920;\n                      }\n                    }\n                    pprVar36 = (re_dfastate_t **)((int)pprVar36 + 1);\n                  } while ((int)pprVar36 < (unaff_s7->non_eps_nodes).nelem);\n                }\n                (*(code *)PTR_free_0003c320)(union_set.elems);\n                err = _REG_NOERROR;\n              }\nLAB_000207d0:\n              cVar44 = (char)in_stack_ffffff58;\n              if (next_nodes.nelem != 0) {\n                mctx_01 = prStack_94;\n                prVar25 = prVar5;\n                context = (re_dfa_t *)type;\n                err = (*pcVar18)(prVar15);\n                prVar34 = prVar27;\n                unaff_s8 = prVar27;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n                mctx_01 = prStack_94;\n                prVar25 = prVar27;\n                context = prVar5;\n                in_stack_ffffff58 = (re_dfa_t *)type;\n                err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar27,(Idx)prVar5,\n                                         type);\n                cVar44 = (char)in_stack_ffffff58;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n              }\n              iVar8 = mctx->eflags;\n            }\n            context = (re_dfa_t *)(*pcStack_6c)(mctx,top_node,iVar8);\n            mctx_01 = prVar15;\n            prVar25 = prStack_94;\n            unaff_s7 = re_acquire_state_context\n                                 (&err,prVar15,(re_node_set *)prStack_94,(uint)context);\n            cVar44 = (char)in_stack_ffffff58;\n            if (unaff_s7 == (re_dfastate_t *)0x0) {\n              prVar34 = prVar27;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              pprVar6 = mctx->state_log;\n              iStack_8c = iStack_8c + 1;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)0x0;\n            }\n            else {\n              pprVar6 = mctx->state_log;\n              iStack_8c = 0;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)unaff_s7;\n            }\n            unaff_s8 = prVar27;\n          } while (((int)prVar27 < last_str) &&\n                  (unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1), prVar34 = prVar27,\n                  iStack_8c <= mctx->max_mb_elem_len));\n        }" { (expression_statement "pprVar6 = mctx->state_log;" (assignment_expression "pprVar6 = mctx->state_log" identifier = (field_expression "mctx->state_log" identifier -> field_identifier)) ;) (expression_statement "iStack_8c = 0;" (assignment_expression "iStack_8c = 0" identifier = number_literal) ;) (expression_statement "pcVar18 = (code *)(PTR_LAB_0003c1e8 + -0x5018);" (assignment_expression "pcVar18 = (code *)(PTR_LAB_0003c1e8 + -0x5018)" identifier = (cast_expression "(code *)(PTR_LAB_0003c1e8 + -0x5018)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0003c1e8 + -0x5018)" ( (binary_expression "PTR_LAB_0003c1e8 + -0x5018" identifier + number_literal) )))) ;) (expression_statement "pcVar19 = (code *)(PTR_LAB_0003c1e8 + -0x3368);" (assignment_expression "pcVar19 = (code *)(PTR_LAB_0003c1e8 + -0x3368)" identifier = (cast_expression "(code *)(PTR_LAB_0003c1e8 + -0x3368)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0003c1e8 + -0x3368)" ( (binary_expression "PTR_LAB_0003c1e8 + -0x3368" identifier + number_literal) )))) ;) (expression_statement "pcVar20 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);" (assignment_expression "pcVar20 = (code *)(PTR_LAB_0003c1e8 + -0x7b38)" identifier = (cast_expression "(code *)(PTR_LAB_0003c1e8 + -0x7b38)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0003c1e8 + -0x7b38)" ( (binary_expression "PTR_LAB_0003c1e8 + -0x7b38" identifier + number_literal) )))) ;) (expression_statement "prVar34 = prVar27;" (assignment_expression "prVar34 = prVar27" identifier = identifier) ;) (expression_statement "unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1);" (assignment_expression "unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1)" identifier = (cast_expression "(re_dfa_t *)((int)&prVar27->nodes + 1)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar27->nodes + 1)" ( (binary_expression "(int)&prVar27->nodes + 1" (cast_expression "(int)&prVar27->nodes" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar27->nodes" & (field_expression "prVar27->nodes" identifier -> field_identifier))) + number_literal) )))) ;) (do_statement "do {\n            prVar27 = unaff_s8;\n            next_nodes.nelem = 0;\n            top_node = (int)&prVar27[-1].subexp_map + 3;\n            if (pprVar6[(int)prVar27] == (re_dfastate_t *)0x0) {\n              rVar11 = err;\n              if (unaff_s7 != (re_dfastate_t *)0x0) goto LAB_000206f8;\n              iVar8 = mctx->eflags;\n            }\n            else {\n              mctx_01 = (re_dfa_t *)&pprVar6[(int)prVar27]->nodes;\n              err = re_node_set_merge((re_node_set *)prStack_94,(re_node_set *)mctx_01);\n              cVar44 = (char)in_stack_ffffff58;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              rVar11 = _REG_NOERROR;\n              if (unaff_s7 != (re_dfastate_t *)0x0) {\nLAB_000206f8:\n                err = rVar11;\n                unaff_s5 = (re_dfa_t *)&union_set;\n                input = mctx->dfa;\n                union_set.alloc = 0;\n                err_1 = _REG_NOERROR;\n                union_set.nelem = 0;\n                union_set.elems = (Idx *)0x0;\n                if (0 < (unaff_s7->non_eps_nodes).nelem) {\n                  pprVar36 = (re_dfastate_t **)0x0;\n                  pcVar7 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    prVar35 = (re_dfa_t *)(unaff_s7->non_eps_nodes).elems[(int)pprVar36];\n                    top_str = (int)prVar35 * 8;\n                    prVar26 = (re_token_t *)\n                              ((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60));\n                    if ((*(uint *)&prVar26->field_0x4 & 0x800) != 0) {\n                      prVar25 = prVar35;\n                      context = (re_dfa_t *)mctx;\n                      in_stack_ffffff58 = (re_dfa_t *)top_node;\n                      iVar8 = check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node);\n                      if (iVar8 < 2) {\n                        unaff_s8 = prVar27;\n                        if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60;\n                      prVar34 = (re_dfa_t *)((int)prVar35 * 4);\n                      top_str = iVar8 * 4;\n                      unaff_s8 = *(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      union_set.nelem = 0;\n                      if (mctx->state_log[iVar8] == (re_dfastate_t *)0x0) {\nLAB_000209e0:\n                        mctx_01 = unaff_s8;\n                        iVar13 = (*pcVar20)(unaff_s5);\n                        cVar44 = (char)in_stack_ffffff58;\n                        if (iVar13 == 0) goto LAB_00020904;\n                        context = (re_dfa_t *)mctx->state_log;\n                        unaff_s8 = (re_dfa_t *)((int)context + top_str);\n                        mctx_01 = input;\n                        prVar25 = unaff_s5;\n                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);\n                        pprVar6 = mctx->state_log;\n                        unaff_s8->nodes = prVar26;\n                        top_str = (Idx)(pprVar6 + iVar8);\n                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;\n                      }\n                      else {\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(union_set.elems);\n                      cVar44 = (char)in_stack_ffffff58;\n                      err = err_1;\n                      unaff_s8 = prVar27;\n                      if (err_1 == _REG_NOERROR) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    prVar25 = (re_dfa_t *)top_node;\n                    iVar8 = (*pcVar19)(mctx,prVar26);\n                    unaff_s8 = prVar27;\n                    if (iVar8 != 0) {\nLAB_00020784:\n                      prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      mctx_01 = (re_dfa_t *)prVar34->nodes;\n                      iVar8 = (*pcVar20)(prStack_94);\n                      cVar44 = (char)in_stack_ffffff58;\n                      if (iVar8 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);\n                        err = _REG_ESPACE;\n                        goto LAB_00020920;\n                      }\n                    }\n                    pprVar36 = (re_dfastate_t **)((int)pprVar36 + 1);\n                  } while ((int)pprVar36 < (unaff_s7->non_eps_nodes).nelem);\n                }\n                (*(code *)PTR_free_0003c320)(union_set.elems);\n                err = _REG_NOERROR;\n              }\nLAB_000207d0:\n              cVar44 = (char)in_stack_ffffff58;\n              if (next_nodes.nelem != 0) {\n                mctx_01 = prStack_94;\n                prVar25 = prVar5;\n                context = (re_dfa_t *)type;\n                err = (*pcVar18)(prVar15);\n                prVar34 = prVar27;\n                unaff_s8 = prVar27;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n                mctx_01 = prStack_94;\n                prVar25 = prVar27;\n                context = prVar5;\n                in_stack_ffffff58 = (re_dfa_t *)type;\n                err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar27,(Idx)prVar5,\n                                         type);\n                cVar44 = (char)in_stack_ffffff58;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n              }\n              iVar8 = mctx->eflags;\n            }\n            context = (re_dfa_t *)(*pcStack_6c)(mctx,top_node,iVar8);\n            mctx_01 = prVar15;\n            prVar25 = prStack_94;\n            unaff_s7 = re_acquire_state_context\n                                 (&err,prVar15,(re_node_set *)prStack_94,(uint)context);\n            cVar44 = (char)in_stack_ffffff58;\n            if (unaff_s7 == (re_dfastate_t *)0x0) {\n              prVar34 = prVar27;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              pprVar6 = mctx->state_log;\n              iStack_8c = iStack_8c + 1;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)0x0;\n            }\n            else {\n              pprVar6 = mctx->state_log;\n              iStack_8c = 0;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)unaff_s7;\n            }\n            unaff_s8 = prVar27;\n          } while (((int)prVar27 < last_str) &&\n                  (unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1), prVar34 = prVar27,\n                  iStack_8c <= mctx->max_mb_elem_len));" do (compound_statement "{\n            prVar27 = unaff_s8;\n            next_nodes.nelem = 0;\n            top_node = (int)&prVar27[-1].subexp_map + 3;\n            if (pprVar6[(int)prVar27] == (re_dfastate_t *)0x0) {\n              rVar11 = err;\n              if (unaff_s7 != (re_dfastate_t *)0x0) goto LAB_000206f8;\n              iVar8 = mctx->eflags;\n            }\n            else {\n              mctx_01 = (re_dfa_t *)&pprVar6[(int)prVar27]->nodes;\n              err = re_node_set_merge((re_node_set *)prStack_94,(re_node_set *)mctx_01);\n              cVar44 = (char)in_stack_ffffff58;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              rVar11 = _REG_NOERROR;\n              if (unaff_s7 != (re_dfastate_t *)0x0) {\nLAB_000206f8:\n                err = rVar11;\n                unaff_s5 = (re_dfa_t *)&union_set;\n                input = mctx->dfa;\n                union_set.alloc = 0;\n                err_1 = _REG_NOERROR;\n                union_set.nelem = 0;\n                union_set.elems = (Idx *)0x0;\n                if (0 < (unaff_s7->non_eps_nodes).nelem) {\n                  pprVar36 = (re_dfastate_t **)0x0;\n                  pcVar7 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    prVar35 = (re_dfa_t *)(unaff_s7->non_eps_nodes).elems[(int)pprVar36];\n                    top_str = (int)prVar35 * 8;\n                    prVar26 = (re_token_t *)\n                              ((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60));\n                    if ((*(uint *)&prVar26->field_0x4 & 0x800) != 0) {\n                      prVar25 = prVar35;\n                      context = (re_dfa_t *)mctx;\n                      in_stack_ffffff58 = (re_dfa_t *)top_node;\n                      iVar8 = check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node);\n                      if (iVar8 < 2) {\n                        unaff_s8 = prVar27;\n                        if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60;\n                      prVar34 = (re_dfa_t *)((int)prVar35 * 4);\n                      top_str = iVar8 * 4;\n                      unaff_s8 = *(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      union_set.nelem = 0;\n                      if (mctx->state_log[iVar8] == (re_dfastate_t *)0x0) {\nLAB_000209e0:\n                        mctx_01 = unaff_s8;\n                        iVar13 = (*pcVar20)(unaff_s5);\n                        cVar44 = (char)in_stack_ffffff58;\n                        if (iVar13 == 0) goto LAB_00020904;\n                        context = (re_dfa_t *)mctx->state_log;\n                        unaff_s8 = (re_dfa_t *)((int)context + top_str);\n                        mctx_01 = input;\n                        prVar25 = unaff_s5;\n                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);\n                        pprVar6 = mctx->state_log;\n                        unaff_s8->nodes = prVar26;\n                        top_str = (Idx)(pprVar6 + iVar8);\n                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;\n                      }\n                      else {\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(union_set.elems);\n                      cVar44 = (char)in_stack_ffffff58;\n                      err = err_1;\n                      unaff_s8 = prVar27;\n                      if (err_1 == _REG_NOERROR) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    prVar25 = (re_dfa_t *)top_node;\n                    iVar8 = (*pcVar19)(mctx,prVar26);\n                    unaff_s8 = prVar27;\n                    if (iVar8 != 0) {\nLAB_00020784:\n                      prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      mctx_01 = (re_dfa_t *)prVar34->nodes;\n                      iVar8 = (*pcVar20)(prStack_94);\n                      cVar44 = (char)in_stack_ffffff58;\n                      if (iVar8 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);\n                        err = _REG_ESPACE;\n                        goto LAB_00020920;\n                      }\n                    }\n                    pprVar36 = (re_dfastate_t **)((int)pprVar36 + 1);\n                  } while ((int)pprVar36 < (unaff_s7->non_eps_nodes).nelem);\n                }\n                (*(code *)PTR_free_0003c320)(union_set.elems);\n                err = _REG_NOERROR;\n              }\nLAB_000207d0:\n              cVar44 = (char)in_stack_ffffff58;\n              if (next_nodes.nelem != 0) {\n                mctx_01 = prStack_94;\n                prVar25 = prVar5;\n                context = (re_dfa_t *)type;\n                err = (*pcVar18)(prVar15);\n                prVar34 = prVar27;\n                unaff_s8 = prVar27;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n                mctx_01 = prStack_94;\n                prVar25 = prVar27;\n                context = prVar5;\n                in_stack_ffffff58 = (re_dfa_t *)type;\n                err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar27,(Idx)prVar5,\n                                         type);\n                cVar44 = (char)in_stack_ffffff58;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n              }\n              iVar8 = mctx->eflags;\n            }\n            context = (re_dfa_t *)(*pcStack_6c)(mctx,top_node,iVar8);\n            mctx_01 = prVar15;\n            prVar25 = prStack_94;\n            unaff_s7 = re_acquire_state_context\n                                 (&err,prVar15,(re_node_set *)prStack_94,(uint)context);\n            cVar44 = (char)in_stack_ffffff58;\n            if (unaff_s7 == (re_dfastate_t *)0x0) {\n              prVar34 = prVar27;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              pprVar6 = mctx->state_log;\n              iStack_8c = iStack_8c + 1;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)0x0;\n            }\n            else {\n              pprVar6 = mctx->state_log;\n              iStack_8c = 0;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)unaff_s7;\n            }\n            unaff_s8 = prVar27;\n          }" { (expression_statement "prVar27 = unaff_s8;" (assignment_expression "prVar27 = unaff_s8" identifier = identifier) ;) (expression_statement "next_nodes.nelem = 0;" (assignment_expression "next_nodes.nelem = 0" (field_expression "next_nodes.nelem" identifier . field_identifier) = number_literal) ;) (expression_statement "top_node = (int)&prVar27[-1].subexp_map + 3;" (assignment_expression "top_node = (int)&prVar27[-1].subexp_map + 3" identifier = (binary_expression "(int)&prVar27[-1].subexp_map + 3" (cast_expression "(int)&prVar27[-1].subexp_map" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar27[-1].subexp_map" & (field_expression "prVar27[-1].subexp_map" (subscript_expression "prVar27[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal)) ;) (if_statement "if (pprVar6[(int)prVar27] == (re_dfastate_t *)0x0) {\n              rVar11 = err;\n              if (unaff_s7 != (re_dfastate_t *)0x0) goto LAB_000206f8;\n              iVar8 = mctx->eflags;\n            }\n            else {\n              mctx_01 = (re_dfa_t *)&pprVar6[(int)prVar27]->nodes;\n              err = re_node_set_merge((re_node_set *)prStack_94,(re_node_set *)mctx_01);\n              cVar44 = (char)in_stack_ffffff58;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              rVar11 = _REG_NOERROR;\n              if (unaff_s7 != (re_dfastate_t *)0x0) {\nLAB_000206f8:\n                err = rVar11;\n                unaff_s5 = (re_dfa_t *)&union_set;\n                input = mctx->dfa;\n                union_set.alloc = 0;\n                err_1 = _REG_NOERROR;\n                union_set.nelem = 0;\n                union_set.elems = (Idx *)0x0;\n                if (0 < (unaff_s7->non_eps_nodes).nelem) {\n                  pprVar36 = (re_dfastate_t **)0x0;\n                  pcVar7 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    prVar35 = (re_dfa_t *)(unaff_s7->non_eps_nodes).elems[(int)pprVar36];\n                    top_str = (int)prVar35 * 8;\n                    prVar26 = (re_token_t *)\n                              ((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60));\n                    if ((*(uint *)&prVar26->field_0x4 & 0x800) != 0) {\n                      prVar25 = prVar35;\n                      context = (re_dfa_t *)mctx;\n                      in_stack_ffffff58 = (re_dfa_t *)top_node;\n                      iVar8 = check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node);\n                      if (iVar8 < 2) {\n                        unaff_s8 = prVar27;\n                        if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60;\n                      prVar34 = (re_dfa_t *)((int)prVar35 * 4);\n                      top_str = iVar8 * 4;\n                      unaff_s8 = *(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      union_set.nelem = 0;\n                      if (mctx->state_log[iVar8] == (re_dfastate_t *)0x0) {\nLAB_000209e0:\n                        mctx_01 = unaff_s8;\n                        iVar13 = (*pcVar20)(unaff_s5);\n                        cVar44 = (char)in_stack_ffffff58;\n                        if (iVar13 == 0) goto LAB_00020904;\n                        context = (re_dfa_t *)mctx->state_log;\n                        unaff_s8 = (re_dfa_t *)((int)context + top_str);\n                        mctx_01 = input;\n                        prVar25 = unaff_s5;\n                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);\n                        pprVar6 = mctx->state_log;\n                        unaff_s8->nodes = prVar26;\n                        top_str = (Idx)(pprVar6 + iVar8);\n                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;\n                      }\n                      else {\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(union_set.elems);\n                      cVar44 = (char)in_stack_ffffff58;\n                      err = err_1;\n                      unaff_s8 = prVar27;\n                      if (err_1 == _REG_NOERROR) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    prVar25 = (re_dfa_t *)top_node;\n                    iVar8 = (*pcVar19)(mctx,prVar26);\n                    unaff_s8 = prVar27;\n                    if (iVar8 != 0) {\nLAB_00020784:\n                      prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      mctx_01 = (re_dfa_t *)prVar34->nodes;\n                      iVar8 = (*pcVar20)(prStack_94);\n                      cVar44 = (char)in_stack_ffffff58;\n                      if (iVar8 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);\n                        err = _REG_ESPACE;\n                        goto LAB_00020920;\n                      }\n                    }\n                    pprVar36 = (re_dfastate_t **)((int)pprVar36 + 1);\n                  } while ((int)pprVar36 < (unaff_s7->non_eps_nodes).nelem);\n                }\n                (*(code *)PTR_free_0003c320)(union_set.elems);\n                err = _REG_NOERROR;\n              }\nLAB_000207d0:\n              cVar44 = (char)in_stack_ffffff58;\n              if (next_nodes.nelem != 0) {\n                mctx_01 = prStack_94;\n                prVar25 = prVar5;\n                context = (re_dfa_t *)type;\n                err = (*pcVar18)(prVar15);\n                prVar34 = prVar27;\n                unaff_s8 = prVar27;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n                mctx_01 = prStack_94;\n                prVar25 = prVar27;\n                context = prVar5;\n                in_stack_ffffff58 = (re_dfa_t *)type;\n                err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar27,(Idx)prVar5,\n                                         type);\n                cVar44 = (char)in_stack_ffffff58;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n              }\n              iVar8 = mctx->eflags;\n            }" if (parenthesized_expression "(pprVar6[(int)prVar27] == (re_dfastate_t *)0x0)" ( (binary_expression "pprVar6[(int)prVar27] == (re_dfastate_t *)0x0" (subscript_expression "pprVar6[(int)prVar27]" identifier [ (cast_expression "(int)prVar27" ( (type_descriptor "int" primitive_type) ) identifier) ]) == (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              rVar11 = err;\n              if (unaff_s7 != (re_dfastate_t *)0x0) goto LAB_000206f8;\n              iVar8 = mctx->eflags;\n            }" { (expression_statement "rVar11 = err;" (assignment_expression "rVar11 = err" identifier = identifier) ;) (if_statement "if (unaff_s7 != (re_dfastate_t *)0x0) goto LAB_000206f8;" if (parenthesized_expression "(unaff_s7 != (re_dfastate_t *)0x0)" ( (binary_expression "unaff_s7 != (re_dfastate_t *)0x0" identifier != (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000206f8;" goto statement_identifier ;)) (expression_statement "iVar8 = mctx->eflags;" (assignment_expression "iVar8 = mctx->eflags" identifier = (field_expression "mctx->eflags" identifier -> field_identifier)) ;) }) (else_clause "else {\n              mctx_01 = (re_dfa_t *)&pprVar6[(int)prVar27]->nodes;\n              err = re_node_set_merge((re_node_set *)prStack_94,(re_node_set *)mctx_01);\n              cVar44 = (char)in_stack_ffffff58;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              rVar11 = _REG_NOERROR;\n              if (unaff_s7 != (re_dfastate_t *)0x0) {\nLAB_000206f8:\n                err = rVar11;\n                unaff_s5 = (re_dfa_t *)&union_set;\n                input = mctx->dfa;\n                union_set.alloc = 0;\n                err_1 = _REG_NOERROR;\n                union_set.nelem = 0;\n                union_set.elems = (Idx *)0x0;\n                if (0 < (unaff_s7->non_eps_nodes).nelem) {\n                  pprVar36 = (re_dfastate_t **)0x0;\n                  pcVar7 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    prVar35 = (re_dfa_t *)(unaff_s7->non_eps_nodes).elems[(int)pprVar36];\n                    top_str = (int)prVar35 * 8;\n                    prVar26 = (re_token_t *)\n                              ((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60));\n                    if ((*(uint *)&prVar26->field_0x4 & 0x800) != 0) {\n                      prVar25 = prVar35;\n                      context = (re_dfa_t *)mctx;\n                      in_stack_ffffff58 = (re_dfa_t *)top_node;\n                      iVar8 = check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node);\n                      if (iVar8 < 2) {\n                        unaff_s8 = prVar27;\n                        if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60;\n                      prVar34 = (re_dfa_t *)((int)prVar35 * 4);\n                      top_str = iVar8 * 4;\n                      unaff_s8 = *(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      union_set.nelem = 0;\n                      if (mctx->state_log[iVar8] == (re_dfastate_t *)0x0) {\nLAB_000209e0:\n                        mctx_01 = unaff_s8;\n                        iVar13 = (*pcVar20)(unaff_s5);\n                        cVar44 = (char)in_stack_ffffff58;\n                        if (iVar13 == 0) goto LAB_00020904;\n                        context = (re_dfa_t *)mctx->state_log;\n                        unaff_s8 = (re_dfa_t *)((int)context + top_str);\n                        mctx_01 = input;\n                        prVar25 = unaff_s5;\n                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);\n                        pprVar6 = mctx->state_log;\n                        unaff_s8->nodes = prVar26;\n                        top_str = (Idx)(pprVar6 + iVar8);\n                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;\n                      }\n                      else {\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(union_set.elems);\n                      cVar44 = (char)in_stack_ffffff58;\n                      err = err_1;\n                      unaff_s8 = prVar27;\n                      if (err_1 == _REG_NOERROR) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    prVar25 = (re_dfa_t *)top_node;\n                    iVar8 = (*pcVar19)(mctx,prVar26);\n                    unaff_s8 = prVar27;\n                    if (iVar8 != 0) {\nLAB_00020784:\n                      prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      mctx_01 = (re_dfa_t *)prVar34->nodes;\n                      iVar8 = (*pcVar20)(prStack_94);\n                      cVar44 = (char)in_stack_ffffff58;\n                      if (iVar8 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);\n                        err = _REG_ESPACE;\n                        goto LAB_00020920;\n                      }\n                    }\n                    pprVar36 = (re_dfastate_t **)((int)pprVar36 + 1);\n                  } while ((int)pprVar36 < (unaff_s7->non_eps_nodes).nelem);\n                }\n                (*(code *)PTR_free_0003c320)(union_set.elems);\n                err = _REG_NOERROR;\n              }\nLAB_000207d0:\n              cVar44 = (char)in_stack_ffffff58;\n              if (next_nodes.nelem != 0) {\n                mctx_01 = prStack_94;\n                prVar25 = prVar5;\n                context = (re_dfa_t *)type;\n                err = (*pcVar18)(prVar15);\n                prVar34 = prVar27;\n                unaff_s8 = prVar27;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n                mctx_01 = prStack_94;\n                prVar25 = prVar27;\n                context = prVar5;\n                in_stack_ffffff58 = (re_dfa_t *)type;\n                err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar27,(Idx)prVar5,\n                                         type);\n                cVar44 = (char)in_stack_ffffff58;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n              }\n              iVar8 = mctx->eflags;\n            }" else (compound_statement "{\n              mctx_01 = (re_dfa_t *)&pprVar6[(int)prVar27]->nodes;\n              err = re_node_set_merge((re_node_set *)prStack_94,(re_node_set *)mctx_01);\n              cVar44 = (char)in_stack_ffffff58;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              rVar11 = _REG_NOERROR;\n              if (unaff_s7 != (re_dfastate_t *)0x0) {\nLAB_000206f8:\n                err = rVar11;\n                unaff_s5 = (re_dfa_t *)&union_set;\n                input = mctx->dfa;\n                union_set.alloc = 0;\n                err_1 = _REG_NOERROR;\n                union_set.nelem = 0;\n                union_set.elems = (Idx *)0x0;\n                if (0 < (unaff_s7->non_eps_nodes).nelem) {\n                  pprVar36 = (re_dfastate_t **)0x0;\n                  pcVar7 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    prVar35 = (re_dfa_t *)(unaff_s7->non_eps_nodes).elems[(int)pprVar36];\n                    top_str = (int)prVar35 * 8;\n                    prVar26 = (re_token_t *)\n                              ((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60));\n                    if ((*(uint *)&prVar26->field_0x4 & 0x800) != 0) {\n                      prVar25 = prVar35;\n                      context = (re_dfa_t *)mctx;\n                      in_stack_ffffff58 = (re_dfa_t *)top_node;\n                      iVar8 = check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node);\n                      if (iVar8 < 2) {\n                        unaff_s8 = prVar27;\n                        if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60;\n                      prVar34 = (re_dfa_t *)((int)prVar35 * 4);\n                      top_str = iVar8 * 4;\n                      unaff_s8 = *(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      union_set.nelem = 0;\n                      if (mctx->state_log[iVar8] == (re_dfastate_t *)0x0) {\nLAB_000209e0:\n                        mctx_01 = unaff_s8;\n                        iVar13 = (*pcVar20)(unaff_s5);\n                        cVar44 = (char)in_stack_ffffff58;\n                        if (iVar13 == 0) goto LAB_00020904;\n                        context = (re_dfa_t *)mctx->state_log;\n                        unaff_s8 = (re_dfa_t *)((int)context + top_str);\n                        mctx_01 = input;\n                        prVar25 = unaff_s5;\n                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);\n                        pprVar6 = mctx->state_log;\n                        unaff_s8->nodes = prVar26;\n                        top_str = (Idx)(pprVar6 + iVar8);\n                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;\n                      }\n                      else {\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(union_set.elems);\n                      cVar44 = (char)in_stack_ffffff58;\n                      err = err_1;\n                      unaff_s8 = prVar27;\n                      if (err_1 == _REG_NOERROR) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    prVar25 = (re_dfa_t *)top_node;\n                    iVar8 = (*pcVar19)(mctx,prVar26);\n                    unaff_s8 = prVar27;\n                    if (iVar8 != 0) {\nLAB_00020784:\n                      prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      mctx_01 = (re_dfa_t *)prVar34->nodes;\n                      iVar8 = (*pcVar20)(prStack_94);\n                      cVar44 = (char)in_stack_ffffff58;\n                      if (iVar8 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);\n                        err = _REG_ESPACE;\n                        goto LAB_00020920;\n                      }\n                    }\n                    pprVar36 = (re_dfastate_t **)((int)pprVar36 + 1);\n                  } while ((int)pprVar36 < (unaff_s7->non_eps_nodes).nelem);\n                }\n                (*(code *)PTR_free_0003c320)(union_set.elems);\n                err = _REG_NOERROR;\n              }\nLAB_000207d0:\n              cVar44 = (char)in_stack_ffffff58;\n              if (next_nodes.nelem != 0) {\n                mctx_01 = prStack_94;\n                prVar25 = prVar5;\n                context = (re_dfa_t *)type;\n                err = (*pcVar18)(prVar15);\n                prVar34 = prVar27;\n                unaff_s8 = prVar27;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n                mctx_01 = prStack_94;\n                prVar25 = prVar27;\n                context = prVar5;\n                in_stack_ffffff58 = (re_dfa_t *)type;\n                err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar27,(Idx)prVar5,\n                                         type);\n                cVar44 = (char)in_stack_ffffff58;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n              }\n              iVar8 = mctx->eflags;\n            }" { (expression_statement "mctx_01 = (re_dfa_t *)&pprVar6[(int)prVar27]->nodes;" (assignment_expression "mctx_01 = (re_dfa_t *)&pprVar6[(int)prVar27]->nodes" identifier = (cast_expression "(re_dfa_t *)&pprVar6[(int)prVar27]->nodes" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pprVar6[(int)prVar27]->nodes" & (field_expression "pprVar6[(int)prVar27]->nodes" (subscript_expression "pprVar6[(int)prVar27]" identifier [ (cast_expression "(int)prVar27" ( (type_descriptor "int" primitive_type) ) identifier) ]) -> field_identifier)))) ;) (expression_statement "err = re_node_set_merge((re_node_set *)prStack_94,(re_node_set *)mctx_01);" (assignment_expression "err = re_node_set_merge((re_node_set *)prStack_94,(re_node_set *)mctx_01)" identifier = (call_expression "re_node_set_merge((re_node_set *)prStack_94,(re_node_set *)mctx_01)" identifier (argument_list "((re_node_set *)prStack_94,(re_node_set *)mctx_01)" ( (cast_expression "(re_node_set *)prStack_94" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_node_set *)mctx_01" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "cVar44 = (char)in_stack_ffffff58;" (assignment_expression "cVar44 = (char)in_stack_ffffff58" identifier = (cast_expression "(char)in_stack_ffffff58" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "unaff_s8 = prVar27;" (assignment_expression "unaff_s8 = prVar27" identifier = identifier) ;) (if_statement "if (err != _REG_NOERROR) goto LAB_00020920;" if (parenthesized_expression "(err != _REG_NOERROR)" ( (binary_expression "err != _REG_NOERROR" identifier != identifier) )) (goto_statement "goto LAB_00020920;" goto statement_identifier ;)) (expression_statement "rVar11 = _REG_NOERROR;" (assignment_expression "rVar11 = _REG_NOERROR" identifier = identifier) ;) (if_statement "if (unaff_s7 != (re_dfastate_t *)0x0) {\nLAB_000206f8:\n                err = rVar11;\n                unaff_s5 = (re_dfa_t *)&union_set;\n                input = mctx->dfa;\n                union_set.alloc = 0;\n                err_1 = _REG_NOERROR;\n                union_set.nelem = 0;\n                union_set.elems = (Idx *)0x0;\n                if (0 < (unaff_s7->non_eps_nodes).nelem) {\n                  pprVar36 = (re_dfastate_t **)0x0;\n                  pcVar7 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    prVar35 = (re_dfa_t *)(unaff_s7->non_eps_nodes).elems[(int)pprVar36];\n                    top_str = (int)prVar35 * 8;\n                    prVar26 = (re_token_t *)\n                              ((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60));\n                    if ((*(uint *)&prVar26->field_0x4 & 0x800) != 0) {\n                      prVar25 = prVar35;\n                      context = (re_dfa_t *)mctx;\n                      in_stack_ffffff58 = (re_dfa_t *)top_node;\n                      iVar8 = check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node);\n                      if (iVar8 < 2) {\n                        unaff_s8 = prVar27;\n                        if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60;\n                      prVar34 = (re_dfa_t *)((int)prVar35 * 4);\n                      top_str = iVar8 * 4;\n                      unaff_s8 = *(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      union_set.nelem = 0;\n                      if (mctx->state_log[iVar8] == (re_dfastate_t *)0x0) {\nLAB_000209e0:\n                        mctx_01 = unaff_s8;\n                        iVar13 = (*pcVar20)(unaff_s5);\n                        cVar44 = (char)in_stack_ffffff58;\n                        if (iVar13 == 0) goto LAB_00020904;\n                        context = (re_dfa_t *)mctx->state_log;\n                        unaff_s8 = (re_dfa_t *)((int)context + top_str);\n                        mctx_01 = input;\n                        prVar25 = unaff_s5;\n                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);\n                        pprVar6 = mctx->state_log;\n                        unaff_s8->nodes = prVar26;\n                        top_str = (Idx)(pprVar6 + iVar8);\n                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;\n                      }\n                      else {\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(union_set.elems);\n                      cVar44 = (char)in_stack_ffffff58;\n                      err = err_1;\n                      unaff_s8 = prVar27;\n                      if (err_1 == _REG_NOERROR) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    prVar25 = (re_dfa_t *)top_node;\n                    iVar8 = (*pcVar19)(mctx,prVar26);\n                    unaff_s8 = prVar27;\n                    if (iVar8 != 0) {\nLAB_00020784:\n                      prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      mctx_01 = (re_dfa_t *)prVar34->nodes;\n                      iVar8 = (*pcVar20)(prStack_94);\n                      cVar44 = (char)in_stack_ffffff58;\n                      if (iVar8 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);\n                        err = _REG_ESPACE;\n                        goto LAB_00020920;\n                      }\n                    }\n                    pprVar36 = (re_dfastate_t **)((int)pprVar36 + 1);\n                  } while ((int)pprVar36 < (unaff_s7->non_eps_nodes).nelem);\n                }\n                (*(code *)PTR_free_0003c320)(union_set.elems);\n                err = _REG_NOERROR;\n              }" if (parenthesized_expression "(unaff_s7 != (re_dfastate_t *)0x0)" ( (binary_expression "unaff_s7 != (re_dfastate_t *)0x0" identifier != (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000206f8:\n                err = rVar11;\n                unaff_s5 = (re_dfa_t *)&union_set;\n                input = mctx->dfa;\n                union_set.alloc = 0;\n                err_1 = _REG_NOERROR;\n                union_set.nelem = 0;\n                union_set.elems = (Idx *)0x0;\n                if (0 < (unaff_s7->non_eps_nodes).nelem) {\n                  pprVar36 = (re_dfastate_t **)0x0;\n                  pcVar7 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    prVar35 = (re_dfa_t *)(unaff_s7->non_eps_nodes).elems[(int)pprVar36];\n                    top_str = (int)prVar35 * 8;\n                    prVar26 = (re_token_t *)\n                              ((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60));\n                    if ((*(uint *)&prVar26->field_0x4 & 0x800) != 0) {\n                      prVar25 = prVar35;\n                      context = (re_dfa_t *)mctx;\n                      in_stack_ffffff58 = (re_dfa_t *)top_node;\n                      iVar8 = check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node);\n                      if (iVar8 < 2) {\n                        unaff_s8 = prVar27;\n                        if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60;\n                      prVar34 = (re_dfa_t *)((int)prVar35 * 4);\n                      top_str = iVar8 * 4;\n                      unaff_s8 = *(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      union_set.nelem = 0;\n                      if (mctx->state_log[iVar8] == (re_dfastate_t *)0x0) {\nLAB_000209e0:\n                        mctx_01 = unaff_s8;\n                        iVar13 = (*pcVar20)(unaff_s5);\n                        cVar44 = (char)in_stack_ffffff58;\n                        if (iVar13 == 0) goto LAB_00020904;\n                        context = (re_dfa_t *)mctx->state_log;\n                        unaff_s8 = (re_dfa_t *)((int)context + top_str);\n                        mctx_01 = input;\n                        prVar25 = unaff_s5;\n                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);\n                        pprVar6 = mctx->state_log;\n                        unaff_s8->nodes = prVar26;\n                        top_str = (Idx)(pprVar6 + iVar8);\n                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;\n                      }\n                      else {\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(union_set.elems);\n                      cVar44 = (char)in_stack_ffffff58;\n                      err = err_1;\n                      unaff_s8 = prVar27;\n                      if (err_1 == _REG_NOERROR) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    prVar25 = (re_dfa_t *)top_node;\n                    iVar8 = (*pcVar19)(mctx,prVar26);\n                    unaff_s8 = prVar27;\n                    if (iVar8 != 0) {\nLAB_00020784:\n                      prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      mctx_01 = (re_dfa_t *)prVar34->nodes;\n                      iVar8 = (*pcVar20)(prStack_94);\n                      cVar44 = (char)in_stack_ffffff58;\n                      if (iVar8 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);\n                        err = _REG_ESPACE;\n                        goto LAB_00020920;\n                      }\n                    }\n                    pprVar36 = (re_dfastate_t **)((int)pprVar36 + 1);\n                  } while ((int)pprVar36 < (unaff_s7->non_eps_nodes).nelem);\n                }\n                (*(code *)PTR_free_0003c320)(union_set.elems);\n                err = _REG_NOERROR;\n              }" { (labeled_statement "LAB_000206f8:\n                err = rVar11;" statement_identifier : (expression_statement "err = rVar11;" (assignment_expression "err = rVar11" identifier = identifier) ;)) (expression_statement "unaff_s5 = (re_dfa_t *)&union_set;" (assignment_expression "unaff_s5 = (re_dfa_t *)&union_set" identifier = (cast_expression "(re_dfa_t *)&union_set" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&union_set" & identifier))) ;) (expression_statement "input = mctx->dfa;" (assignment_expression "input = mctx->dfa" identifier = (field_expression "mctx->dfa" identifier -> field_identifier)) ;) (expression_statement "union_set.alloc = 0;" (assignment_expression "union_set.alloc = 0" (field_expression "union_set.alloc" identifier . field_identifier) = number_literal) ;) (expression_statement "err_1 = _REG_NOERROR;" (assignment_expression "err_1 = _REG_NOERROR" identifier = identifier) ;) (expression_statement "union_set.nelem = 0;" (assignment_expression "union_set.nelem = 0" (field_expression "union_set.nelem" identifier . field_identifier) = number_literal) ;) (expression_statement "union_set.elems = (Idx *)0x0;" (assignment_expression "union_set.elems = (Idx *)0x0" (field_expression "union_set.elems" identifier . field_identifier) = (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (0 < (unaff_s7->non_eps_nodes).nelem) {\n                  pprVar36 = (re_dfastate_t **)0x0;\n                  pcVar7 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    prVar35 = (re_dfa_t *)(unaff_s7->non_eps_nodes).elems[(int)pprVar36];\n                    top_str = (int)prVar35 * 8;\n                    prVar26 = (re_token_t *)\n                              ((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60));\n                    if ((*(uint *)&prVar26->field_0x4 & 0x800) != 0) {\n                      prVar25 = prVar35;\n                      context = (re_dfa_t *)mctx;\n                      in_stack_ffffff58 = (re_dfa_t *)top_node;\n                      iVar8 = check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node);\n                      if (iVar8 < 2) {\n                        unaff_s8 = prVar27;\n                        if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60;\n                      prVar34 = (re_dfa_t *)((int)prVar35 * 4);\n                      top_str = iVar8 * 4;\n                      unaff_s8 = *(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      union_set.nelem = 0;\n                      if (mctx->state_log[iVar8] == (re_dfastate_t *)0x0) {\nLAB_000209e0:\n                        mctx_01 = unaff_s8;\n                        iVar13 = (*pcVar20)(unaff_s5);\n                        cVar44 = (char)in_stack_ffffff58;\n                        if (iVar13 == 0) goto LAB_00020904;\n                        context = (re_dfa_t *)mctx->state_log;\n                        unaff_s8 = (re_dfa_t *)((int)context + top_str);\n                        mctx_01 = input;\n                        prVar25 = unaff_s5;\n                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);\n                        pprVar6 = mctx->state_log;\n                        unaff_s8->nodes = prVar26;\n                        top_str = (Idx)(pprVar6 + iVar8);\n                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;\n                      }\n                      else {\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(union_set.elems);\n                      cVar44 = (char)in_stack_ffffff58;\n                      err = err_1;\n                      unaff_s8 = prVar27;\n                      if (err_1 == _REG_NOERROR) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    prVar25 = (re_dfa_t *)top_node;\n                    iVar8 = (*pcVar19)(mctx,prVar26);\n                    unaff_s8 = prVar27;\n                    if (iVar8 != 0) {\nLAB_00020784:\n                      prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      mctx_01 = (re_dfa_t *)prVar34->nodes;\n                      iVar8 = (*pcVar20)(prStack_94);\n                      cVar44 = (char)in_stack_ffffff58;\n                      if (iVar8 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);\n                        err = _REG_ESPACE;\n                        goto LAB_00020920;\n                      }\n                    }\n                    pprVar36 = (re_dfastate_t **)((int)pprVar36 + 1);\n                  } while ((int)pprVar36 < (unaff_s7->non_eps_nodes).nelem);\n                }" if (parenthesized_expression "(0 < (unaff_s7->non_eps_nodes).nelem)" ( (binary_expression "0 < (unaff_s7->non_eps_nodes).nelem" number_literal < (field_expression "(unaff_s7->non_eps_nodes).nelem" (parenthesized_expression "(unaff_s7->non_eps_nodes)" ( (field_expression "unaff_s7->non_eps_nodes" identifier -> field_identifier) )) . field_identifier)) )) (compound_statement "{\n                  pprVar36 = (re_dfastate_t **)0x0;\n                  pcVar7 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    prVar35 = (re_dfa_t *)(unaff_s7->non_eps_nodes).elems[(int)pprVar36];\n                    top_str = (int)prVar35 * 8;\n                    prVar26 = (re_token_t *)\n                              ((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60));\n                    if ((*(uint *)&prVar26->field_0x4 & 0x800) != 0) {\n                      prVar25 = prVar35;\n                      context = (re_dfa_t *)mctx;\n                      in_stack_ffffff58 = (re_dfa_t *)top_node;\n                      iVar8 = check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node);\n                      if (iVar8 < 2) {\n                        unaff_s8 = prVar27;\n                        if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60;\n                      prVar34 = (re_dfa_t *)((int)prVar35 * 4);\n                      top_str = iVar8 * 4;\n                      unaff_s8 = *(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      union_set.nelem = 0;\n                      if (mctx->state_log[iVar8] == (re_dfastate_t *)0x0) {\nLAB_000209e0:\n                        mctx_01 = unaff_s8;\n                        iVar13 = (*pcVar20)(unaff_s5);\n                        cVar44 = (char)in_stack_ffffff58;\n                        if (iVar13 == 0) goto LAB_00020904;\n                        context = (re_dfa_t *)mctx->state_log;\n                        unaff_s8 = (re_dfa_t *)((int)context + top_str);\n                        mctx_01 = input;\n                        prVar25 = unaff_s5;\n                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);\n                        pprVar6 = mctx->state_log;\n                        unaff_s8->nodes = prVar26;\n                        top_str = (Idx)(pprVar6 + iVar8);\n                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;\n                      }\n                      else {\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(union_set.elems);\n                      cVar44 = (char)in_stack_ffffff58;\n                      err = err_1;\n                      unaff_s8 = prVar27;\n                      if (err_1 == _REG_NOERROR) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    prVar25 = (re_dfa_t *)top_node;\n                    iVar8 = (*pcVar19)(mctx,prVar26);\n                    unaff_s8 = prVar27;\n                    if (iVar8 != 0) {\nLAB_00020784:\n                      prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      mctx_01 = (re_dfa_t *)prVar34->nodes;\n                      iVar8 = (*pcVar20)(prStack_94);\n                      cVar44 = (char)in_stack_ffffff58;\n                      if (iVar8 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);\n                        err = _REG_ESPACE;\n                        goto LAB_00020920;\n                      }\n                    }\n                    pprVar36 = (re_dfastate_t **)((int)pprVar36 + 1);\n                  } while ((int)pprVar36 < (unaff_s7->non_eps_nodes).nelem);\n                }" { (expression_statement "pprVar36 = (re_dfastate_t **)0x0;" (assignment_expression "pprVar36 = (re_dfastate_t **)0x0" identifier = (cast_expression "(re_dfastate_t **)0x0" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pcVar7 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);" (assignment_expression "pcVar7 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4)" identifier = (cast_expression "(code *)(PTR_LAB_0003c1e8 + -0x3ea4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0003c1e8 + -0x3ea4)" ( (binary_expression "PTR_LAB_0003c1e8 + -0x3ea4" identifier + number_literal) )))) ;) (do_statement "do {\n                    prVar35 = (re_dfa_t *)(unaff_s7->non_eps_nodes).elems[(int)pprVar36];\n                    top_str = (int)prVar35 * 8;\n                    prVar26 = (re_token_t *)\n                              ((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60));\n                    if ((*(uint *)&prVar26->field_0x4 & 0x800) != 0) {\n                      prVar25 = prVar35;\n                      context = (re_dfa_t *)mctx;\n                      in_stack_ffffff58 = (re_dfa_t *)top_node;\n                      iVar8 = check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node);\n                      if (iVar8 < 2) {\n                        unaff_s8 = prVar27;\n                        if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60;\n                      prVar34 = (re_dfa_t *)((int)prVar35 * 4);\n                      top_str = iVar8 * 4;\n                      unaff_s8 = *(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      union_set.nelem = 0;\n                      if (mctx->state_log[iVar8] == (re_dfastate_t *)0x0) {\nLAB_000209e0:\n                        mctx_01 = unaff_s8;\n                        iVar13 = (*pcVar20)(unaff_s5);\n                        cVar44 = (char)in_stack_ffffff58;\n                        if (iVar13 == 0) goto LAB_00020904;\n                        context = (re_dfa_t *)mctx->state_log;\n                        unaff_s8 = (re_dfa_t *)((int)context + top_str);\n                        mctx_01 = input;\n                        prVar25 = unaff_s5;\n                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);\n                        pprVar6 = mctx->state_log;\n                        unaff_s8->nodes = prVar26;\n                        top_str = (Idx)(pprVar6 + iVar8);\n                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;\n                      }\n                      else {\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(union_set.elems);\n                      cVar44 = (char)in_stack_ffffff58;\n                      err = err_1;\n                      unaff_s8 = prVar27;\n                      if (err_1 == _REG_NOERROR) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    prVar25 = (re_dfa_t *)top_node;\n                    iVar8 = (*pcVar19)(mctx,prVar26);\n                    unaff_s8 = prVar27;\n                    if (iVar8 != 0) {\nLAB_00020784:\n                      prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      mctx_01 = (re_dfa_t *)prVar34->nodes;\n                      iVar8 = (*pcVar20)(prStack_94);\n                      cVar44 = (char)in_stack_ffffff58;\n                      if (iVar8 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);\n                        err = _REG_ESPACE;\n                        goto LAB_00020920;\n                      }\n                    }\n                    pprVar36 = (re_dfastate_t **)((int)pprVar36 + 1);\n                  } while ((int)pprVar36 < (unaff_s7->non_eps_nodes).nelem);" do (compound_statement "{\n                    prVar35 = (re_dfa_t *)(unaff_s7->non_eps_nodes).elems[(int)pprVar36];\n                    top_str = (int)prVar35 * 8;\n                    prVar26 = (re_token_t *)\n                              ((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60));\n                    if ((*(uint *)&prVar26->field_0x4 & 0x800) != 0) {\n                      prVar25 = prVar35;\n                      context = (re_dfa_t *)mctx;\n                      in_stack_ffffff58 = (re_dfa_t *)top_node;\n                      iVar8 = check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node);\n                      if (iVar8 < 2) {\n                        unaff_s8 = prVar27;\n                        if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60;\n                      prVar34 = (re_dfa_t *)((int)prVar35 * 4);\n                      top_str = iVar8 * 4;\n                      unaff_s8 = *(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      union_set.nelem = 0;\n                      if (mctx->state_log[iVar8] == (re_dfastate_t *)0x0) {\nLAB_000209e0:\n                        mctx_01 = unaff_s8;\n                        iVar13 = (*pcVar20)(unaff_s5);\n                        cVar44 = (char)in_stack_ffffff58;\n                        if (iVar13 == 0) goto LAB_00020904;\n                        context = (re_dfa_t *)mctx->state_log;\n                        unaff_s8 = (re_dfa_t *)((int)context + top_str);\n                        mctx_01 = input;\n                        prVar25 = unaff_s5;\n                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);\n                        pprVar6 = mctx->state_log;\n                        unaff_s8->nodes = prVar26;\n                        top_str = (Idx)(pprVar6 + iVar8);\n                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;\n                      }\n                      else {\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(union_set.elems);\n                      cVar44 = (char)in_stack_ffffff58;\n                      err = err_1;\n                      unaff_s8 = prVar27;\n                      if (err_1 == _REG_NOERROR) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    prVar25 = (re_dfa_t *)top_node;\n                    iVar8 = (*pcVar19)(mctx,prVar26);\n                    unaff_s8 = prVar27;\n                    if (iVar8 != 0) {\nLAB_00020784:\n                      prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      mctx_01 = (re_dfa_t *)prVar34->nodes;\n                      iVar8 = (*pcVar20)(prStack_94);\n                      cVar44 = (char)in_stack_ffffff58;\n                      if (iVar8 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);\n                        err = _REG_ESPACE;\n                        goto LAB_00020920;\n                      }\n                    }\n                    pprVar36 = (re_dfastate_t **)((int)pprVar36 + 1);\n                  }" { (expression_statement "prVar35 = (re_dfa_t *)(unaff_s7->non_eps_nodes).elems[(int)pprVar36];" (assignment_expression "prVar35 = (re_dfa_t *)(unaff_s7->non_eps_nodes).elems[(int)pprVar36]" identifier = (cast_expression "(re_dfa_t *)(unaff_s7->non_eps_nodes).elems[(int)pprVar36]" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(unaff_s7->non_eps_nodes).elems[(int)pprVar36]" (field_expression "(unaff_s7->non_eps_nodes).elems" (parenthesized_expression "(unaff_s7->non_eps_nodes)" ( (field_expression "unaff_s7->non_eps_nodes" identifier -> field_identifier) )) . field_identifier) [ (cast_expression "(int)pprVar36" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "top_str = (int)prVar35 * 8;" (assignment_expression "top_str = (int)prVar35 * 8" identifier = (binary_expression "(int)prVar35 * 8" (cast_expression "(int)prVar35" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "prVar26 = (re_token_t *)\n                              ((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60));" (assignment_expression "prVar26 = (re_token_t *)\n                              ((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60))" identifier = (cast_expression "(re_token_t *)\n                              ((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60))" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60))" ( (binary_expression "(int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char + (int)(top_str + -0x60)" (cast_expression "(int)((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char" ( (type_descriptor "int" primitive_type) ) (field_expression "((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))->\n                                    word_char" (parenthesized_expression "((re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)(((re_dfa_t *)input->nodes)->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)input->nodes)->word_char + -0x18)" ( (binary_expression "((re_dfa_t *)input->nodes)->word_char + -0x18" (field_expression "((re_dfa_t *)input->nodes)->word_char" (parenthesized_expression "((re_dfa_t *)input->nodes)" ( (cast_expression "(re_dfa_t *)input->nodes" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "input->nodes" identifier -> field_identifier)) )) -> field_identifier) + number_literal) ))) )) -> field_identifier)) + (cast_expression "(int)(top_str + -0x60)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(top_str + -0x60)" ( (binary_expression "top_str + -0x60" identifier + number_literal) )))) )))) ;) (if_statement "if ((*(uint *)&prVar26->field_0x4 & 0x800) != 0) {\n                      prVar25 = prVar35;\n                      context = (re_dfa_t *)mctx;\n                      in_stack_ffffff58 = (re_dfa_t *)top_node;\n                      iVar8 = check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node);\n                      if (iVar8 < 2) {\n                        unaff_s8 = prVar27;\n                        if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60;\n                      prVar34 = (re_dfa_t *)((int)prVar35 * 4);\n                      top_str = iVar8 * 4;\n                      unaff_s8 = *(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      union_set.nelem = 0;\n                      if (mctx->state_log[iVar8] == (re_dfastate_t *)0x0) {\nLAB_000209e0:\n                        mctx_01 = unaff_s8;\n                        iVar13 = (*pcVar20)(unaff_s5);\n                        cVar44 = (char)in_stack_ffffff58;\n                        if (iVar13 == 0) goto LAB_00020904;\n                        context = (re_dfa_t *)mctx->state_log;\n                        unaff_s8 = (re_dfa_t *)((int)context + top_str);\n                        mctx_01 = input;\n                        prVar25 = unaff_s5;\n                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);\n                        pprVar6 = mctx->state_log;\n                        unaff_s8->nodes = prVar26;\n                        top_str = (Idx)(pprVar6 + iVar8);\n                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;\n                      }\n                      else {\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(union_set.elems);\n                      cVar44 = (char)in_stack_ffffff58;\n                      err = err_1;\n                      unaff_s8 = prVar27;\n                      if (err_1 == _REG_NOERROR) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }" if (parenthesized_expression "((*(uint *)&prVar26->field_0x4 & 0x800) != 0)" ( (binary_expression "(*(uint *)&prVar26->field_0x4 & 0x800) != 0" (parenthesized_expression "(*(uint *)&prVar26->field_0x4 & 0x800)" ( (binary_expression "*(uint *)&prVar26->field_0x4 & 0x800" (pointer_expression "*(uint *)&prVar26->field_0x4" * (cast_expression "(uint *)&prVar26->field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar26->field_0x4" & (field_expression "prVar26->field_0x4" identifier -> field_identifier)))) & number_literal) )) != number_literal) )) (compound_statement "{\n                      prVar25 = prVar35;\n                      context = (re_dfa_t *)mctx;\n                      in_stack_ffffff58 = (re_dfa_t *)top_node;\n                      iVar8 = check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node);\n                      if (iVar8 < 2) {\n                        unaff_s8 = prVar27;\n                        if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60;\n                      prVar34 = (re_dfa_t *)((int)prVar35 * 4);\n                      top_str = iVar8 * 4;\n                      unaff_s8 = *(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      union_set.nelem = 0;\n                      if (mctx->state_log[iVar8] == (re_dfastate_t *)0x0) {\nLAB_000209e0:\n                        mctx_01 = unaff_s8;\n                        iVar13 = (*pcVar20)(unaff_s5);\n                        cVar44 = (char)in_stack_ffffff58;\n                        if (iVar13 == 0) goto LAB_00020904;\n                        context = (re_dfa_t *)mctx->state_log;\n                        unaff_s8 = (re_dfa_t *)((int)context + top_str);\n                        mctx_01 = input;\n                        prVar25 = unaff_s5;\n                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);\n                        pprVar6 = mctx->state_log;\n                        unaff_s8->nodes = prVar26;\n                        top_str = (Idx)(pprVar6 + iVar8);\n                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;\n                      }\n                      else {\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(union_set.elems);\n                      cVar44 = (char)in_stack_ffffff58;\n                      err = err_1;\n                      unaff_s8 = prVar27;\n                      if (err_1 == _REG_NOERROR) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }" { (expression_statement "prVar25 = prVar35;" (assignment_expression "prVar25 = prVar35" identifier = identifier) ;) (expression_statement "context = (re_dfa_t *)mctx;" (assignment_expression "context = (re_dfa_t *)mctx" identifier = (cast_expression "(re_dfa_t *)mctx" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "in_stack_ffffff58 = (re_dfa_t *)top_node;" (assignment_expression "in_stack_ffffff58 = (re_dfa_t *)top_node" identifier = (cast_expression "(re_dfa_t *)top_node" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar8 = check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node);" (assignment_expression "iVar8 = check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node)" identifier = (call_expression "check_node_accept_bytes\n                                        ((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node)" identifier (argument_list "((re_dfa_t *)input->nodes,(Idx)&input->syntax,\n                                         (re_string_t *)prVar35,(Idx)mctx,(re_dfa_t *)top_node)" ( (cast_expression "(re_dfa_t *)input->nodes" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "input->nodes" identifier -> field_identifier)) , (binary_expression "(Idx)&input->syntax" (parenthesized_expression "(Idx)" ( identifier )) & (field_expression "input->syntax" identifier -> field_identifier)) , (cast_expression "(re_string_t *)prVar35" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Idx)mctx" ( (type_descriptor "Idx" type_identifier) ) identifier) , (cast_expression "(re_dfa_t *)top_node" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (iVar8 < 2) {\n                        unaff_s8 = prVar27;\n                        if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }" if (parenthesized_expression "(iVar8 < 2)" ( (binary_expression "iVar8 < 2" identifier < number_literal) )) (compound_statement "{\n                        unaff_s8 = prVar27;\n                        if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }" { (expression_statement "unaff_s8 = prVar27;" (assignment_expression "unaff_s8 = prVar27" identifier = identifier) ;) (if_statement "if (iVar8 == 0) {\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n                          prVar26 = (re_token_t *)(top_str + (int)input->nodes);\n                          goto LAB_00020768;\n                        }" { (expression_statement "prVar26 = (re_token_t *)(top_str + (int)input->nodes);" (assignment_expression "prVar26 = (re_token_t *)(top_str + (int)input->nodes)" identifier = (cast_expression "(re_token_t *)(top_str + (int)input->nodes)" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(top_str + (int)input->nodes)" ( (binary_expression "top_str + (int)input->nodes" identifier + (cast_expression "(int)input->nodes" ( (type_descriptor "int" primitive_type) ) (field_expression "input->nodes" identifier -> field_identifier))) )))) ;) (goto_statement "goto LAB_00020768;" goto statement_identifier ;) })) (goto_statement "goto LAB_00020784;" goto statement_identifier ;) })) (expression_statement "iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60;" (assignment_expression "iVar8 = (int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60" identifier = (binary_expression "(int)((re_dfa_t *)top_node)->word_char + iVar8 + -0x60" (binary_expression "(int)((re_dfa_t *)top_node)->word_char + iVar8" (cast_expression "(int)((re_dfa_t *)top_node)->word_char" ( (type_descriptor "int" primitive_type) ) (field_expression "((re_dfa_t *)top_node)->word_char" (parenthesized_expression "((re_dfa_t *)top_node)" ( (cast_expression "(re_dfa_t *)top_node" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) + identifier) + number_literal)) ;) (expression_statement "prVar34 = (re_dfa_t *)((int)prVar35 * 4);" (assignment_expression "prVar34 = (re_dfa_t *)((int)prVar35 * 4)" identifier = (cast_expression "(re_dfa_t *)((int)prVar35 * 4)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)prVar35 * 4)" ( (binary_expression "(int)prVar35 * 4" (cast_expression "(int)prVar35" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "top_str = iVar8 * 4;" (assignment_expression "top_str = iVar8 * 4" identifier = (binary_expression "iVar8 * 4" identifier * number_literal)) ;) (expression_statement "unaff_s8 = *(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);" (assignment_expression "unaff_s8 = *(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4)" identifier = (pointer_expression "*(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4)" * (cast_expression "(re_dfa_t **)\n                                  (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4)" ( (type_descriptor "re_dfa_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4)" ( (binary_expression "((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4" (field_expression "((re_node_set *)&input->nexts)->alloc" (parenthesized_expression "((re_node_set *)&input->nexts)" ( (cast_expression "(re_node_set *)&input->nexts" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&input->nexts" & (field_expression "input->nexts" identifier -> field_identifier))) )) -> field_identifier) + (binary_expression "(int)prVar35 * 4" (cast_expression "(int)prVar35" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (expression_statement "union_set.nelem = 0;" (assignment_expression "union_set.nelem = 0" (field_expression "union_set.nelem" identifier . field_identifier) = number_literal) ;) (if_statement "if (mctx->state_log[iVar8] == (re_dfastate_t *)0x0) {\nLAB_000209e0:\n                        mctx_01 = unaff_s8;\n                        iVar13 = (*pcVar20)(unaff_s5);\n                        cVar44 = (char)in_stack_ffffff58;\n                        if (iVar13 == 0) goto LAB_00020904;\n                        context = (re_dfa_t *)mctx->state_log;\n                        unaff_s8 = (re_dfa_t *)((int)context + top_str);\n                        mctx_01 = input;\n                        prVar25 = unaff_s5;\n                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);\n                        pprVar6 = mctx->state_log;\n                        unaff_s8->nodes = prVar26;\n                        top_str = (Idx)(pprVar6 + iVar8);\n                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;\n                      }\n                      else {\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }" if (parenthesized_expression "(mctx->state_log[iVar8] == (re_dfastate_t *)0x0)" ( (binary_expression "mctx->state_log[iVar8] == (re_dfastate_t *)0x0" (subscript_expression "mctx->state_log[iVar8]" (field_expression "mctx->state_log" identifier -> field_identifier) [ identifier ]) == (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000209e0:\n                        mctx_01 = unaff_s8;\n                        iVar13 = (*pcVar20)(unaff_s5);\n                        cVar44 = (char)in_stack_ffffff58;\n                        if (iVar13 == 0) goto LAB_00020904;\n                        context = (re_dfa_t *)mctx->state_log;\n                        unaff_s8 = (re_dfa_t *)((int)context + top_str);\n                        mctx_01 = input;\n                        prVar25 = unaff_s5;\n                        prVar26 = (re_token_t *)(*pcVar7)(&err_1);\n                        pprVar6 = mctx->state_log;\n                        unaff_s8->nodes = prVar26;\n                        top_str = (Idx)(pprVar6 + iVar8);\n                        if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;\n                      }" { (labeled_statement "LAB_000209e0:\n                        mctx_01 = unaff_s8;" statement_identifier : (expression_statement "mctx_01 = unaff_s8;" (assignment_expression "mctx_01 = unaff_s8" identifier = identifier) ;)) (expression_statement "iVar13 = (*pcVar20)(unaff_s5);" (assignment_expression "iVar13 = (*pcVar20)(unaff_s5)" identifier = (call_expression "(*pcVar20)(unaff_s5)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(unaff_s5)" ( identifier )))) ;) (expression_statement "cVar44 = (char)in_stack_ffffff58;" (assignment_expression "cVar44 = (char)in_stack_ffffff58" identifier = (cast_expression "(char)in_stack_ffffff58" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (iVar13 == 0) goto LAB_00020904;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00020904;" goto statement_identifier ;)) (expression_statement "context = (re_dfa_t *)mctx->state_log;" (assignment_expression "context = (re_dfa_t *)mctx->state_log" identifier = (cast_expression "(re_dfa_t *)mctx->state_log" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "mctx->state_log" identifier -> field_identifier))) ;) (expression_statement "unaff_s8 = (re_dfa_t *)((int)context + top_str);" (assignment_expression "unaff_s8 = (re_dfa_t *)((int)context + top_str)" identifier = (cast_expression "(re_dfa_t *)((int)context + top_str)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)context + top_str)" ( (binary_expression "(int)context + top_str" (cast_expression "(int)context" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "mctx_01 = input;" (assignment_expression "mctx_01 = input" identifier = identifier) ;) (expression_statement "prVar25 = unaff_s5;" (assignment_expression "prVar25 = unaff_s5" identifier = identifier) ;) (expression_statement "prVar26 = (re_token_t *)(*pcVar7)(&err_1);" (assignment_expression "prVar26 = (re_token_t *)(*pcVar7)(&err_1)" identifier = (cast_expression "(re_token_t *)(*pcVar7)(&err_1)" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar7)(&err_1)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(&err_1)" ( (pointer_expression "&err_1" & identifier) ))))) ;) (expression_statement "pprVar6 = mctx->state_log;" (assignment_expression "pprVar6 = mctx->state_log" identifier = (field_expression "mctx->state_log" identifier -> field_identifier)) ;) (expression_statement "unaff_s8->nodes = prVar26;" (assignment_expression "unaff_s8->nodes = prVar26" (field_expression "unaff_s8->nodes" identifier -> field_identifier) = identifier) ;) (expression_statement "top_str = (Idx)(pprVar6 + iVar8);" (assignment_expression "top_str = (Idx)(pprVar6 + iVar8)" identifier = (call_expression "(Idx)(pprVar6 + iVar8)" (parenthesized_expression "(Idx)" ( identifier )) (argument_list "(pprVar6 + iVar8)" ( (binary_expression "pprVar6 + iVar8" identifier + identifier) )))) ;) (if_statement "if ((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)) goto LAB_00020784;" if (parenthesized_expression "((*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR))" ( (binary_expression "(*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0) ||\n                           (err_1 == _REG_NOERROR)" (parenthesized_expression "(*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0)" ( (binary_expression "*(re_dfastate_t **)top_str != (re_dfastate_t *)0x0" (pointer_expression "*(re_dfastate_t **)top_str" * (cast_expression "(re_dfastate_t **)top_str" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) != (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(err_1 == _REG_NOERROR)" ( (binary_expression "err_1 == _REG_NOERROR" identifier == identifier) ))) )) (goto_statement "goto LAB_00020784;" goto statement_identifier ;)) }) (else_clause "else {\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }" else (compound_statement "{\n                        mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;\n                        err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);\n                        if (err_1 == _REG_NOERROR) goto LAB_000209e0;\n                      }" { (expression_statement "mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes;" (assignment_expression "mctx_01 = (re_dfa_t *)&mctx->state_log[iVar8]->nodes" identifier = (cast_expression "(re_dfa_t *)&mctx->state_log[iVar8]->nodes" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&mctx->state_log[iVar8]->nodes" & (field_expression "mctx->state_log[iVar8]->nodes" (subscript_expression "mctx->state_log[iVar8]" (field_expression "mctx->state_log" identifier -> field_identifier) [ identifier ]) -> field_identifier)))) ;) (expression_statement "err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01);" (assignment_expression "err_1 = re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01)" identifier = (call_expression "re_node_set_merge((re_node_set *)unaff_s5,(re_node_set *)mctx_01)" identifier (argument_list "((re_node_set *)unaff_s5,(re_node_set *)mctx_01)" ( (cast_expression "(re_node_set *)unaff_s5" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_node_set *)mctx_01" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (err_1 == _REG_NOERROR) goto LAB_000209e0;" if (parenthesized_expression "(err_1 == _REG_NOERROR)" ( (binary_expression "err_1 == _REG_NOERROR" identifier == identifier) )) (goto_statement "goto LAB_000209e0;" goto statement_identifier ;)) }))) (expression_statement "(*(code *)PTR_free_0003c320)(union_set.elems);" (call_expression "(*(code *)PTR_free_0003c320)(union_set.elems)" (parenthesized_expression "(*(code *)PTR_free_0003c320)" ( (pointer_expression "*(code *)PTR_free_0003c320" * (cast_expression "(code *)PTR_free_0003c320" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(union_set.elems)" ( (field_expression "union_set.elems" identifier . field_identifier) ))) ;) (expression_statement "cVar44 = (char)in_stack_ffffff58;" (assignment_expression "cVar44 = (char)in_stack_ffffff58" identifier = (cast_expression "(char)in_stack_ffffff58" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "err = err_1;" (assignment_expression "err = err_1" identifier = identifier) ;) (expression_statement "unaff_s8 = prVar27;" (assignment_expression "unaff_s8 = prVar27" identifier = identifier) ;) (if_statement "if (err_1 == _REG_NOERROR) goto LAB_000207d0;" if (parenthesized_expression "(err_1 == _REG_NOERROR)" ( (binary_expression "err_1 == _REG_NOERROR" identifier == identifier) )) (goto_statement "goto LAB_000207d0;" goto statement_identifier ;)) (goto_statement "goto LAB_00020920;" goto statement_identifier ;) })) (labeled_statement "LAB_00020768:\n                    prVar25 = (re_dfa_t *)top_node;" statement_identifier : (expression_statement "prVar25 = (re_dfa_t *)top_node;" (assignment_expression "prVar25 = (re_dfa_t *)top_node" identifier = (cast_expression "(re_dfa_t *)top_node" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "iVar8 = (*pcVar19)(mctx,prVar26);" (assignment_expression "iVar8 = (*pcVar19)(mctx,prVar26)" identifier = (call_expression "(*pcVar19)(mctx,prVar26)" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "(mctx,prVar26)" ( identifier , identifier )))) ;) (expression_statement "unaff_s8 = prVar27;" (assignment_expression "unaff_s8 = prVar27" identifier = identifier) ;) (if_statement "if (iVar8 != 0) {\nLAB_00020784:\n                      prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      mctx_01 = (re_dfa_t *)prVar34->nodes;\n                      iVar8 = (*pcVar20)(prStack_94);\n                      cVar44 = (char)in_stack_ffffff58;\n                      if (iVar8 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);\n                        err = _REG_ESPACE;\n                        goto LAB_00020920;\n                      }\n                    }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00020784:\n                      prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);\n                      mctx_01 = (re_dfa_t *)prVar34->nodes;\n                      iVar8 = (*pcVar20)(prStack_94);\n                      cVar44 = (char)in_stack_ffffff58;\n                      if (iVar8 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);\n                        err = _REG_ESPACE;\n                        goto LAB_00020920;\n                      }\n                    }" { (labeled_statement "LAB_00020784:\n                      prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);" statement_identifier : (expression_statement "prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4);" (assignment_expression "prVar34 = (re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4)" identifier = (cast_expression "(re_dfa_t *)\n                                (((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4)" ( (binary_expression "((re_node_set *)&input->nexts)->alloc + (int)prVar35 * 4" (field_expression "((re_node_set *)&input->nexts)->alloc" (parenthesized_expression "((re_node_set *)&input->nexts)" ( (cast_expression "(re_node_set *)&input->nexts" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&input->nexts" & (field_expression "input->nexts" identifier -> field_identifier))) )) -> field_identifier) + (binary_expression "(int)prVar35 * 4" (cast_expression "(int)prVar35" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;)) (expression_statement "mctx_01 = (re_dfa_t *)prVar34->nodes;" (assignment_expression "mctx_01 = (re_dfa_t *)prVar34->nodes" identifier = (cast_expression "(re_dfa_t *)prVar34->nodes" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prVar34->nodes" identifier -> field_identifier))) ;) (expression_statement "iVar8 = (*pcVar20)(prStack_94);" (assignment_expression "iVar8 = (*pcVar20)(prStack_94)" identifier = (call_expression "(*pcVar20)(prStack_94)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(prStack_94)" ( identifier )))) ;) (expression_statement "cVar44 = (char)in_stack_ffffff58;" (assignment_expression "cVar44 = (char)in_stack_ffffff58" identifier = (cast_expression "(char)in_stack_ffffff58" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (iVar8 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);\n                        err = _REG_ESPACE;\n                        goto LAB_00020920;\n                      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);\n                        err = _REG_ESPACE;\n                        goto LAB_00020920;\n                      }" { (labeled_statement "LAB_00020904:\n                        (*(code *)PTR_free_0003c320)(union_set.elems);" statement_identifier : (expression_statement "(*(code *)PTR_free_0003c320)(union_set.elems);" (call_expression "(*(code *)PTR_free_0003c320)(union_set.elems)" (parenthesized_expression "(*(code *)PTR_free_0003c320)" ( (pointer_expression "*(code *)PTR_free_0003c320" * (cast_expression "(code *)PTR_free_0003c320" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(union_set.elems)" ( (field_expression "union_set.elems" identifier . field_identifier) ))) ;)) (expression_statement "err = _REG_ESPACE;" (assignment_expression "err = _REG_ESPACE" identifier = identifier) ;) (goto_statement "goto LAB_00020920;" goto statement_identifier ;) })) })) (expression_statement "pprVar36 = (re_dfastate_t **)((int)pprVar36 + 1);" (assignment_expression "pprVar36 = (re_dfastate_t **)((int)pprVar36 + 1)" identifier = (cast_expression "(re_dfastate_t **)((int)pprVar36 + 1)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pprVar36 + 1)" ( (binary_expression "(int)pprVar36 + 1" (cast_expression "(int)pprVar36" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int)pprVar36 < (unaff_s7->non_eps_nodes).nelem)" ( (binary_expression "(int)pprVar36 < (unaff_s7->non_eps_nodes).nelem" (cast_expression "(int)pprVar36" ( (type_descriptor "int" primitive_type) ) identifier) < (field_expression "(unaff_s7->non_eps_nodes).nelem" (parenthesized_expression "(unaff_s7->non_eps_nodes)" ( (field_expression "unaff_s7->non_eps_nodes" identifier -> field_identifier) )) . field_identifier)) )) ;) })) (expression_statement "(*(code *)PTR_free_0003c320)(union_set.elems);" (call_expression "(*(code *)PTR_free_0003c320)(union_set.elems)" (parenthesized_expression "(*(code *)PTR_free_0003c320)" ( (pointer_expression "*(code *)PTR_free_0003c320" * (cast_expression "(code *)PTR_free_0003c320" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(union_set.elems)" ( (field_expression "union_set.elems" identifier . field_identifier) ))) ;) (expression_statement "err = _REG_NOERROR;" (assignment_expression "err = _REG_NOERROR" identifier = identifier) ;) })) (labeled_statement "LAB_000207d0:\n              cVar44 = (char)in_stack_ffffff58;" statement_identifier : (expression_statement "cVar44 = (char)in_stack_ffffff58;" (assignment_expression "cVar44 = (char)in_stack_ffffff58" identifier = (cast_expression "(char)in_stack_ffffff58" ( (type_descriptor "char" primitive_type) ) identifier)) ;)) (if_statement "if (next_nodes.nelem != 0) {\n                mctx_01 = prStack_94;\n                prVar25 = prVar5;\n                context = (re_dfa_t *)type;\n                err = (*pcVar18)(prVar15);\n                prVar34 = prVar27;\n                unaff_s8 = prVar27;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n                mctx_01 = prStack_94;\n                prVar25 = prVar27;\n                context = prVar5;\n                in_stack_ffffff58 = (re_dfa_t *)type;\n                err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar27,(Idx)prVar5,\n                                         type);\n                cVar44 = (char)in_stack_ffffff58;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n              }" if (parenthesized_expression "(next_nodes.nelem != 0)" ( (binary_expression "next_nodes.nelem != 0" (field_expression "next_nodes.nelem" identifier . field_identifier) != number_literal) )) (compound_statement "{\n                mctx_01 = prStack_94;\n                prVar25 = prVar5;\n                context = (re_dfa_t *)type;\n                err = (*pcVar18)(prVar15);\n                prVar34 = prVar27;\n                unaff_s8 = prVar27;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n                mctx_01 = prStack_94;\n                prVar25 = prVar27;\n                context = prVar5;\n                in_stack_ffffff58 = (re_dfa_t *)type;\n                err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar27,(Idx)prVar5,\n                                         type);\n                cVar44 = (char)in_stack_ffffff58;\n                if (err != _REG_NOERROR) goto LAB_00020920;\n              }" { (expression_statement "mctx_01 = prStack_94;" (assignment_expression "mctx_01 = prStack_94" identifier = identifier) ;) (expression_statement "prVar25 = prVar5;" (assignment_expression "prVar25 = prVar5" identifier = identifier) ;) (expression_statement "context = (re_dfa_t *)type;" (assignment_expression "context = (re_dfa_t *)type" identifier = (cast_expression "(re_dfa_t *)type" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "err = (*pcVar18)(prVar15);" (assignment_expression "err = (*pcVar18)(prVar15)" identifier = (call_expression "(*pcVar18)(prVar15)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(prVar15)" ( identifier )))) ;) (expression_statement "prVar34 = prVar27;" (assignment_expression "prVar34 = prVar27" identifier = identifier) ;) (expression_statement "unaff_s8 = prVar27;" (assignment_expression "unaff_s8 = prVar27" identifier = identifier) ;) (if_statement "if (err != _REG_NOERROR) goto LAB_00020920;" if (parenthesized_expression "(err != _REG_NOERROR)" ( (binary_expression "err != _REG_NOERROR" identifier != identifier) )) (goto_statement "goto LAB_00020920;" goto statement_identifier ;)) (expression_statement "mctx_01 = prStack_94;" (assignment_expression "mctx_01 = prStack_94" identifier = identifier) ;) (expression_statement "prVar25 = prVar27;" (assignment_expression "prVar25 = prVar27" identifier = identifier) ;) (expression_statement "context = prVar5;" (assignment_expression "context = prVar5" identifier = identifier) ;) (expression_statement "in_stack_ffffff58 = (re_dfa_t *)type;" (assignment_expression "in_stack_ffffff58 = (re_dfa_t *)type" identifier = (cast_expression "(re_dfa_t *)type" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar27,(Idx)prVar5,\n                                         type);" (assignment_expression "err = expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar27,(Idx)prVar5,\n                                         type)" identifier = (call_expression "expand_bkref_cache(mctx,(re_node_set *)prStack_94,(Idx)prVar27,(Idx)prVar5,\n                                         type)" identifier (argument_list "(mctx,(re_node_set *)prStack_94,(Idx)prVar27,(Idx)prVar5,\n                                         type)" ( identifier , (cast_expression "(re_node_set *)prStack_94" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Idx)prVar27" ( (type_descriptor "Idx" type_identifier) ) identifier) , (cast_expression "(Idx)prVar5" ( (type_descriptor "Idx" type_identifier) ) identifier) , identifier )))) ;) (expression_statement "cVar44 = (char)in_stack_ffffff58;" (assignment_expression "cVar44 = (char)in_stack_ffffff58" identifier = (cast_expression "(char)in_stack_ffffff58" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (err != _REG_NOERROR) goto LAB_00020920;" if (parenthesized_expression "(err != _REG_NOERROR)" ( (binary_expression "err != _REG_NOERROR" identifier != identifier) )) (goto_statement "goto LAB_00020920;" goto statement_identifier ;)) })) (expression_statement "iVar8 = mctx->eflags;" (assignment_expression "iVar8 = mctx->eflags" identifier = (field_expression "mctx->eflags" identifier -> field_identifier)) ;) }))) (expression_statement "context = (re_dfa_t *)(*pcStack_6c)(mctx,top_node,iVar8);" (assignment_expression "context = (re_dfa_t *)(*pcStack_6c)(mctx,top_node,iVar8)" identifier = (cast_expression "(re_dfa_t *)(*pcStack_6c)(mctx,top_node,iVar8)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcStack_6c)(mctx,top_node,iVar8)" (parenthesized_expression "(*pcStack_6c)" ( (pointer_expression "*pcStack_6c" * identifier) )) (argument_list "(mctx,top_node,iVar8)" ( identifier , identifier , identifier ))))) ;) (expression_statement "mctx_01 = prVar15;" (assignment_expression "mctx_01 = prVar15" identifier = identifier) ;) (expression_statement "prVar25 = prStack_94;" (assignment_expression "prVar25 = prStack_94" identifier = identifier) ;) (expression_statement "unaff_s7 = re_acquire_state_context\n                                 (&err,prVar15,(re_node_set *)prStack_94,(uint)context);" (assignment_expression "unaff_s7 = re_acquire_state_context\n                                 (&err,prVar15,(re_node_set *)prStack_94,(uint)context)" identifier = (call_expression "re_acquire_state_context\n                                 (&err,prVar15,(re_node_set *)prStack_94,(uint)context)" identifier (argument_list "(&err,prVar15,(re_node_set *)prStack_94,(uint)context)" ( (pointer_expression "&err" & identifier) , identifier , (cast_expression "(re_node_set *)prStack_94" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(uint)context" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "cVar44 = (char)in_stack_ffffff58;" (assignment_expression "cVar44 = (char)in_stack_ffffff58" identifier = (cast_expression "(char)in_stack_ffffff58" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (unaff_s7 == (re_dfastate_t *)0x0) {\n              prVar34 = prVar27;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              pprVar6 = mctx->state_log;\n              iStack_8c = iStack_8c + 1;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)0x0;\n            }\n            else {\n              pprVar6 = mctx->state_log;\n              iStack_8c = 0;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)unaff_s7;\n            }" if (parenthesized_expression "(unaff_s7 == (re_dfastate_t *)0x0)" ( (binary_expression "unaff_s7 == (re_dfastate_t *)0x0" identifier == (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              prVar34 = prVar27;\n              unaff_s8 = prVar27;\n              if (err != _REG_NOERROR) goto LAB_00020920;\n              pprVar6 = mctx->state_log;\n              iStack_8c = iStack_8c + 1;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)0x0;\n            }" { (expression_statement "prVar34 = prVar27;" (assignment_expression "prVar34 = prVar27" identifier = identifier) ;) (expression_statement "unaff_s8 = prVar27;" (assignment_expression "unaff_s8 = prVar27" identifier = identifier) ;) (if_statement "if (err != _REG_NOERROR) goto LAB_00020920;" if (parenthesized_expression "(err != _REG_NOERROR)" ( (binary_expression "err != _REG_NOERROR" identifier != identifier) )) (goto_statement "goto LAB_00020920;" goto statement_identifier ;)) (expression_statement "pprVar6 = mctx->state_log;" (assignment_expression "pprVar6 = mctx->state_log" identifier = (field_expression "mctx->state_log" identifier -> field_identifier)) ;) (expression_statement "iStack_8c = iStack_8c + 1;" (assignment_expression "iStack_8c = iStack_8c + 1" identifier = (binary_expression "iStack_8c + 1" identifier + number_literal)) ;) (expression_statement "unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);" (assignment_expression "unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27)" identifier = (cast_expression "(re_dfa_t *)(pprVar6 + (int)prVar27)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pprVar6 + (int)prVar27)" ( (binary_expression "pprVar6 + (int)prVar27" identifier + (cast_expression "(int)prVar27" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "unaff_s5->nodes = (re_token_t *)0x0;" (assignment_expression "unaff_s5->nodes = (re_token_t *)0x0" (field_expression "unaff_s5->nodes" identifier -> field_identifier) = (cast_expression "(re_token_t *)0x0" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n              pprVar6 = mctx->state_log;\n              iStack_8c = 0;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)unaff_s7;\n            }" else (compound_statement "{\n              pprVar6 = mctx->state_log;\n              iStack_8c = 0;\n              unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);\n              unaff_s5->nodes = (re_token_t *)unaff_s7;\n            }" { (expression_statement "pprVar6 = mctx->state_log;" (assignment_expression "pprVar6 = mctx->state_log" identifier = (field_expression "mctx->state_log" identifier -> field_identifier)) ;) (expression_statement "iStack_8c = 0;" (assignment_expression "iStack_8c = 0" identifier = number_literal) ;) (expression_statement "unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27);" (assignment_expression "unaff_s5 = (re_dfa_t *)(pprVar6 + (int)prVar27)" identifier = (cast_expression "(re_dfa_t *)(pprVar6 + (int)prVar27)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pprVar6 + (int)prVar27)" ( (binary_expression "pprVar6 + (int)prVar27" identifier + (cast_expression "(int)prVar27" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "unaff_s5->nodes = (re_token_t *)unaff_s7;" (assignment_expression "unaff_s5->nodes = (re_token_t *)unaff_s7" (field_expression "unaff_s5->nodes" identifier -> field_identifier) = (cast_expression "(re_token_t *)unaff_s7" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }))) (expression_statement "unaff_s8 = prVar27;" (assignment_expression "unaff_s8 = prVar27" identifier = identifier) ;) }) while (parenthesized_expression "(((int)prVar27 < last_str) &&\n                  (unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1), prVar34 = prVar27,\n                  iStack_8c <= mctx->max_mb_elem_len))" ( (binary_expression "((int)prVar27 < last_str) &&\n                  (unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1), prVar34 = prVar27,\n                  iStack_8c <= mctx->max_mb_elem_len)" (parenthesized_expression "((int)prVar27 < last_str)" ( (binary_expression "(int)prVar27 < last_str" (cast_expression "(int)prVar27" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) && (parenthesized_expression "(unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1), prVar34 = prVar27,\n                  iStack_8c <= mctx->max_mb_elem_len)" ( (comma_expression "unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1), prVar34 = prVar27,\n                  iStack_8c <= mctx->max_mb_elem_len" (assignment_expression "unaff_s8 = (re_dfa_t *)((int)&prVar27->nodes + 1)" identifier = (cast_expression "(re_dfa_t *)((int)&prVar27->nodes + 1)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar27->nodes + 1)" ( (binary_expression "(int)&prVar27->nodes + 1" (cast_expression "(int)&prVar27->nodes" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar27->nodes" & (field_expression "prVar27->nodes" identifier -> field_identifier))) + number_literal) )))) , (comma_expression "prVar34 = prVar27,\n                  iStack_8c <= mctx->max_mb_elem_len" (assignment_expression "prVar34 = prVar27" identifier = identifier) , (binary_expression "iStack_8c <= mctx->max_mb_elem_len" identifier <= (field_expression "mctx->max_mb_elem_len" identifier -> field_identifier)))) ))) )) ;) })) (expression_statement "(*(code *)PTR_free_0003c320)(next_nodes.elems);" (call_expression "(*(code *)PTR_free_0003c320)(next_nodes.elems)" (parenthesized_expression "(*(code *)PTR_free_0003c320)" ( (pointer_expression "*(code *)PTR_free_0003c320" * (cast_expression "(code *)PTR_free_0003c320" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(next_nodes.elems)" ( (field_expression "next_nodes.elems" identifier . field_identifier) ))) ;) (expression_statement "prVar9 = mctx->state_log[last_str];" (assignment_expression "prVar9 = mctx->state_log[last_str]" identifier = (subscript_expression "mctx->state_log[last_str]" (field_expression "mctx->state_log" identifier -> field_identifier) [ identifier ])) ;) (expression_statement "prVar34 = prVar27;" (assignment_expression "prVar34 = prVar27" identifier = identifier) ;) (if_statement "if (prVar9 == (re_dfastate_t *)0x0) {\n          path->next_idx = (Idx)prVar27;\n          mctx->state_log = pprVar16;\n          (mctx->input).cur_idx = IVar17;\n          rVar11 = _REG_NOMATCH;\n        }\n        else {\n          mctx_01 = (re_dfa_t *)&(prVar9->nodes).elems;\n          path->next_idx = (Idx)prVar27;\n          (mctx->input).cur_idx = IVar17;\n          set = (re_node_set *)(prVar9->nodes).nelem;\n          mctx->state_log = pprVar16;\n          IVar17 = re_node_set_contains(set,(Idx)mctx_01,(re_node_set *)last_node);\n          rVar11 = (uint)(IVar17 == 0);\n          prVar25 = (re_dfa_t *)last_node;\n        }" if (parenthesized_expression "(prVar9 == (re_dfastate_t *)0x0)" ( (binary_expression "prVar9 == (re_dfastate_t *)0x0" identifier == (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          path->next_idx = (Idx)prVar27;\n          mctx->state_log = pprVar16;\n          (mctx->input).cur_idx = IVar17;\n          rVar11 = _REG_NOMATCH;\n        }" { (expression_statement "path->next_idx = (Idx)prVar27;" (assignment_expression "path->next_idx = (Idx)prVar27" (field_expression "path->next_idx" identifier -> field_identifier) = (cast_expression "(Idx)prVar27" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "mctx->state_log = pprVar16;" (assignment_expression "mctx->state_log = pprVar16" (field_expression "mctx->state_log" identifier -> field_identifier) = identifier) ;) (expression_statement "(mctx->input).cur_idx = IVar17;" (assignment_expression "(mctx->input).cur_idx = IVar17" (field_expression "(mctx->input).cur_idx" (parenthesized_expression "(mctx->input)" ( (field_expression "mctx->input" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "rVar11 = _REG_NOMATCH;" (assignment_expression "rVar11 = _REG_NOMATCH" identifier = identifier) ;) }) (else_clause "else {\n          mctx_01 = (re_dfa_t *)&(prVar9->nodes).elems;\n          path->next_idx = (Idx)prVar27;\n          (mctx->input).cur_idx = IVar17;\n          set = (re_node_set *)(prVar9->nodes).nelem;\n          mctx->state_log = pprVar16;\n          IVar17 = re_node_set_contains(set,(Idx)mctx_01,(re_node_set *)last_node);\n          rVar11 = (uint)(IVar17 == 0);\n          prVar25 = (re_dfa_t *)last_node;\n        }" else (compound_statement "{\n          mctx_01 = (re_dfa_t *)&(prVar9->nodes).elems;\n          path->next_idx = (Idx)prVar27;\n          (mctx->input).cur_idx = IVar17;\n          set = (re_node_set *)(prVar9->nodes).nelem;\n          mctx->state_log = pprVar16;\n          IVar17 = re_node_set_contains(set,(Idx)mctx_01,(re_node_set *)last_node);\n          rVar11 = (uint)(IVar17 == 0);\n          prVar25 = (re_dfa_t *)last_node;\n        }" { (expression_statement "mctx_01 = (re_dfa_t *)&(prVar9->nodes).elems;" (assignment_expression "mctx_01 = (re_dfa_t *)&(prVar9->nodes).elems" identifier = (cast_expression "(re_dfa_t *)&(prVar9->nodes).elems" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(prVar9->nodes).elems" & (field_expression "(prVar9->nodes).elems" (parenthesized_expression "(prVar9->nodes)" ( (field_expression "prVar9->nodes" identifier -> field_identifier) )) . field_identifier)))) ;) (expression_statement "path->next_idx = (Idx)prVar27;" (assignment_expression "path->next_idx = (Idx)prVar27" (field_expression "path->next_idx" identifier -> field_identifier) = (cast_expression "(Idx)prVar27" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "(mctx->input).cur_idx = IVar17;" (assignment_expression "(mctx->input).cur_idx = IVar17" (field_expression "(mctx->input).cur_idx" (parenthesized_expression "(mctx->input)" ( (field_expression "mctx->input" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "set = (re_node_set *)(prVar9->nodes).nelem;" (assignment_expression "set = (re_node_set *)(prVar9->nodes).nelem" identifier = (cast_expression "(re_node_set *)(prVar9->nodes).nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(prVar9->nodes).nelem" (parenthesized_expression "(prVar9->nodes)" ( (field_expression "prVar9->nodes" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "mctx->state_log = pprVar16;" (assignment_expression "mctx->state_log = pprVar16" (field_expression "mctx->state_log" identifier -> field_identifier) = identifier) ;) (expression_statement "IVar17 = re_node_set_contains(set,(Idx)mctx_01,(re_node_set *)last_node);" (assignment_expression "IVar17 = re_node_set_contains(set,(Idx)mctx_01,(re_node_set *)last_node)" identifier = (call_expression "re_node_set_contains(set,(Idx)mctx_01,(re_node_set *)last_node)" identifier (argument_list "(set,(Idx)mctx_01,(re_node_set *)last_node)" ( identifier , (cast_expression "(Idx)mctx_01" ( (type_descriptor "Idx" type_identifier) ) identifier) , (cast_expression "(re_node_set *)last_node" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "rVar11 = (uint)(IVar17 == 0);" (assignment_expression "rVar11 = (uint)(IVar17 == 0)" identifier = (call_expression "(uint)(IVar17 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(IVar17 == 0)" ( (binary_expression "IVar17 == 0" identifier == number_literal) )))) ;) (expression_statement "prVar25 = (re_dfa_t *)last_node;" (assignment_expression "prVar25 = (re_dfa_t *)last_node" identifier = (cast_expression "(re_dfa_t *)last_node" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }))) }) (else_clause "else {\n        mctx_01 = (re_dfa_t *)&unaff_s7->nodes;\n        rVar11 = re_node_set_init_copy(&next_nodes,(re_node_set *)mctx_01);\n        cVar44 = (char)in_stack_ffffff58;\n        err = rVar11;\n        if (rVar11 == _REG_NOERROR) {\n          if ((unaff_s7->field_0x34 & 2) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }" else (compound_statement "{\n        mctx_01 = (re_dfa_t *)&unaff_s7->nodes;\n        rVar11 = re_node_set_init_copy(&next_nodes,(re_node_set *)mctx_01);\n        cVar44 = (char)in_stack_ffffff58;\n        err = rVar11;\n        if (rVar11 == _REG_NOERROR) {\n          if ((unaff_s7->field_0x34 & 2) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }" { (expression_statement "mctx_01 = (re_dfa_t *)&unaff_s7->nodes;" (assignment_expression "mctx_01 = (re_dfa_t *)&unaff_s7->nodes" identifier = (cast_expression "(re_dfa_t *)&unaff_s7->nodes" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&unaff_s7->nodes" & (field_expression "unaff_s7->nodes" identifier -> field_identifier)))) ;) (expression_statement "rVar11 = re_node_set_init_copy(&next_nodes,(re_node_set *)mctx_01);" (assignment_expression "rVar11 = re_node_set_init_copy(&next_nodes,(re_node_set *)mctx_01)" identifier = (call_expression "re_node_set_init_copy(&next_nodes,(re_node_set *)mctx_01)" identifier (argument_list "(&next_nodes,(re_node_set *)mctx_01)" ( (pointer_expression "&next_nodes" & identifier) , (cast_expression "(re_node_set *)mctx_01" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "cVar44 = (char)in_stack_ffffff58;" (assignment_expression "cVar44 = (char)in_stack_ffffff58" identifier = (cast_expression "(char)in_stack_ffffff58" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "err = rVar11;" (assignment_expression "err = rVar11" identifier = identifier) ;) (if_statement "if (rVar11 == _REG_NOERROR) {\n          if ((unaff_s7->field_0x34 & 2) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }" if (parenthesized_expression "(rVar11 == _REG_NOERROR)" ( (binary_expression "rVar11 == _REG_NOERROR" identifier == identifier) )) (compound_statement "{\n          if ((unaff_s7->field_0x34 & 2) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }" { (if_statement "if ((unaff_s7->field_0x34 & 2) == 0) goto LAB_00020670;" if (parenthesized_expression "((unaff_s7->field_0x34 & 2) == 0)" ( (binary_expression "(unaff_s7->field_0x34 & 2) == 0" (parenthesized_expression "(unaff_s7->field_0x34 & 2)" ( (binary_expression "unaff_s7->field_0x34 & 2" (field_expression "unaff_s7->field_0x34" identifier -> field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00020670;" goto statement_identifier ;)) (goto_statement "goto LAB_00020ab8;" goto statement_identifier ;) })) }))) }))) }) (else_clause "else {\n    prVar34 = (re_dfa_t *)((int)&prVar25->nodes + 1);\n    pprVar36 = (re_dfastate_t **)\n               ((int)(((re_dfa_t *)(((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8) +\n               (int)((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(input->word_char + -0x18))->word_char + -0x18))->\n                     word_char + -0x18))->word_char + 0xffffffa0U);\n    if (((int)prVar34 <= 0x7fffffff - (int)input) &&\n       (unaff_s5 = (re_dfa_t *)path, pprVar36 < (re_dfastate_t **)0x40000000)) {\n      mctx_01 = (re_dfa_t *)((int)pprVar36 * 4);\n      pprVar16 = (re_dfastate_t **)(*(code *)PTR_realloc_0003c2b8)(path->array);\n      puVar4 = PTR_memset_0003c290;\n      cVar44 = (char)in_stack_ffffff58;\n      if (pprVar16 != (re_dfastate_t **)0x0) {\n        path->array = pprVar16;\n        path->alloc = (Idx)pprVar36;\n        (*(code *)puVar4)(pprVar16 + (int)input,0,(int)prVar34 * 4);\n        goto LAB_000205e8;\n      }\n    }\nLAB_00020c64:\n    rVar11 = _REG_ESPACE;\n  }" else (compound_statement "{\n    prVar34 = (re_dfa_t *)((int)&prVar25->nodes + 1);\n    pprVar36 = (re_dfastate_t **)\n               ((int)(((re_dfa_t *)(((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8) +\n               (int)((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(input->word_char + -0x18))->word_char + -0x18))->\n                     word_char + -0x18))->word_char + 0xffffffa0U);\n    if (((int)prVar34 <= 0x7fffffff - (int)input) &&\n       (unaff_s5 = (re_dfa_t *)path, pprVar36 < (re_dfastate_t **)0x40000000)) {\n      mctx_01 = (re_dfa_t *)((int)pprVar36 * 4);\n      pprVar16 = (re_dfastate_t **)(*(code *)PTR_realloc_0003c2b8)(path->array);\n      puVar4 = PTR_memset_0003c290;\n      cVar44 = (char)in_stack_ffffff58;\n      if (pprVar16 != (re_dfastate_t **)0x0) {\n        path->array = pprVar16;\n        path->alloc = (Idx)pprVar36;\n        (*(code *)puVar4)(pprVar16 + (int)input,0,(int)prVar34 * 4);\n        goto LAB_000205e8;\n      }\n    }\nLAB_00020c64:\n    rVar11 = _REG_ESPACE;\n  }" { (expression_statement "prVar34 = (re_dfa_t *)((int)&prVar25->nodes + 1);" (assignment_expression "prVar34 = (re_dfa_t *)((int)&prVar25->nodes + 1)" identifier = (cast_expression "(re_dfa_t *)((int)&prVar25->nodes + 1)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar25->nodes + 1)" ( (binary_expression "(int)&prVar25->nodes + 1" (cast_expression "(int)&prVar25->nodes" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar25->nodes" & (field_expression "prVar25->nodes" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "pprVar36 = (re_dfastate_t **)\n               ((int)(((re_dfa_t *)(((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8) +\n               (int)((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(input->word_char + -0x18))->word_char + -0x18))->\n                     word_char + -0x18))->word_char + 0xffffffa0U);" (assignment_expression "pprVar36 = (re_dfastate_t **)\n               ((int)(((re_dfa_t *)(((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8) +\n               (int)((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(input->word_char + -0x18))->word_char + -0x18))->\n                     word_char + -0x18))->word_char + 0xffffffa0U)" identifier = (cast_expression "(re_dfastate_t **)\n               ((int)(((re_dfa_t *)(((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8) +\n               (int)((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(input->word_char + -0x18))->word_char + -0x18))->\n                     word_char + -0x18))->word_char + 0xffffffa0U)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)(((re_dfa_t *)(((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8) +\n               (int)((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(input->word_char + -0x18))->word_char + -0x18))->\n                     word_char + -0x18))->word_char + 0xffffffa0U)" ( (binary_expression "(int)(((re_dfa_t *)(((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8) +\n               (int)((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(input->word_char + -0x18))->word_char + -0x18))->\n                     word_char + -0x18))->word_char + 0xffffffa0U" (binary_expression "(int)(((re_dfa_t *)(((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8) +\n               (int)((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(input->word_char + -0x18))->word_char + -0x18))->\n                     word_char + -0x18))->word_char" (cast_expression "(int)(((re_dfa_t *)(((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((re_dfa_t *)(((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8)" ( (binary_expression "((re_dfa_t *)(((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8" (field_expression "((re_dfa_t *)(((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))\n                      ->word_char" (parenthesized_expression "((re_dfa_t *)(((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)(((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18)" ( (binary_expression "((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18" (field_expression "((re_dfa_t *)(prVar34->word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)(prVar34->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)(prVar34->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prVar34->word_char + -0x18)" ( (binary_expression "prVar34->word_char + -0x18" (field_expression "prVar34->word_char" identifier -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) + (cast_expression "(int)((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(input->word_char + -0x18))->word_char + -0x18))->\n                     word_char + -0x18))->word_char" ( (type_descriptor "int" primitive_type) ) (field_expression "((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(input->word_char + -0x18))->word_char + -0x18))->\n                     word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(input->word_char + -0x18))->word_char + -0x18))->\n                     word_char + -0x18))" ( (cast_expression "(re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(input->word_char + -0x18))->word_char + -0x18))->\n                     word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)(((re_dfa_t *)(input->word_char + -0x18))->word_char + -0x18))->\n                     word_char + -0x18)" ( (binary_expression "((re_dfa_t *)(((re_dfa_t *)(input->word_char + -0x18))->word_char + -0x18))->\n                     word_char + -0x18" (field_expression "((re_dfa_t *)(((re_dfa_t *)(input->word_char + -0x18))->word_char + -0x18))->\n                     word_char" (parenthesized_expression "((re_dfa_t *)(((re_dfa_t *)(input->word_char + -0x18))->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)(((re_dfa_t *)(input->word_char + -0x18))->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)(input->word_char + -0x18))->word_char + -0x18)" ( (binary_expression "((re_dfa_t *)(input->word_char + -0x18))->word_char + -0x18" (field_expression "((re_dfa_t *)(input->word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)(input->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)(input->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(input->word_char + -0x18)" ( (binary_expression "input->word_char + -0x18" (field_expression "input->word_char" identifier -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier))) + number_literal) )))) ;) (if_statement "if (((int)prVar34 <= 0x7fffffff - (int)input) &&\n       (unaff_s5 = (re_dfa_t *)path, pprVar36 < (re_dfastate_t **)0x40000000)) {\n      mctx_01 = (re_dfa_t *)((int)pprVar36 * 4);\n      pprVar16 = (re_dfastate_t **)(*(code *)PTR_realloc_0003c2b8)(path->array);\n      puVar4 = PTR_memset_0003c290;\n      cVar44 = (char)in_stack_ffffff58;\n      if (pprVar16 != (re_dfastate_t **)0x0) {\n        path->array = pprVar16;\n        path->alloc = (Idx)pprVar36;\n        (*(code *)puVar4)(pprVar16 + (int)input,0,(int)prVar34 * 4);\n        goto LAB_000205e8;\n      }\n    }" if (parenthesized_expression "(((int)prVar34 <= 0x7fffffff - (int)input) &&\n       (unaff_s5 = (re_dfa_t *)path, pprVar36 < (re_dfastate_t **)0x40000000))" ( (binary_expression "((int)prVar34 <= 0x7fffffff - (int)input) &&\n       (unaff_s5 = (re_dfa_t *)path, pprVar36 < (re_dfastate_t **)0x40000000)" (parenthesized_expression "((int)prVar34 <= 0x7fffffff - (int)input)" ( (binary_expression "(int)prVar34 <= 0x7fffffff - (int)input" (cast_expression "(int)prVar34" ( (type_descriptor "int" primitive_type) ) identifier) <= (binary_expression "0x7fffffff - (int)input" number_literal - (cast_expression "(int)input" ( (type_descriptor "int" primitive_type) ) identifier))) )) && (parenthesized_expression "(unaff_s5 = (re_dfa_t *)path, pprVar36 < (re_dfastate_t **)0x40000000)" ( (comma_expression "unaff_s5 = (re_dfa_t *)path, pprVar36 < (re_dfastate_t **)0x40000000" (assignment_expression "unaff_s5 = (re_dfa_t *)path" identifier = (cast_expression "(re_dfa_t *)path" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "pprVar36 < (re_dfastate_t **)0x40000000" identifier < (cast_expression "(re_dfastate_t **)0x40000000" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) ))) )) (compound_statement "{\n      mctx_01 = (re_dfa_t *)((int)pprVar36 * 4);\n      pprVar16 = (re_dfastate_t **)(*(code *)PTR_realloc_0003c2b8)(path->array);\n      puVar4 = PTR_memset_0003c290;\n      cVar44 = (char)in_stack_ffffff58;\n      if (pprVar16 != (re_dfastate_t **)0x0) {\n        path->array = pprVar16;\n        path->alloc = (Idx)pprVar36;\n        (*(code *)puVar4)(pprVar16 + (int)input,0,(int)prVar34 * 4);\n        goto LAB_000205e8;\n      }\n    }" { (expression_statement "mctx_01 = (re_dfa_t *)((int)pprVar36 * 4);" (assignment_expression "mctx_01 = (re_dfa_t *)((int)pprVar36 * 4)" identifier = (cast_expression "(re_dfa_t *)((int)pprVar36 * 4)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pprVar36 * 4)" ( (binary_expression "(int)pprVar36 * 4" (cast_expression "(int)pprVar36" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "pprVar16 = (re_dfastate_t **)(*(code *)PTR_realloc_0003c2b8)(path->array);" (assignment_expression "pprVar16 = (re_dfastate_t **)(*(code *)PTR_realloc_0003c2b8)(path->array)" identifier = (cast_expression "(re_dfastate_t **)(*(code *)PTR_realloc_0003c2b8)(path->array)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_realloc_0003c2b8)(path->array)" (parenthesized_expression "(*(code *)PTR_realloc_0003c2b8)" ( (pointer_expression "*(code *)PTR_realloc_0003c2b8" * (cast_expression "(code *)PTR_realloc_0003c2b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(path->array)" ( (field_expression "path->array" identifier -> field_identifier) ))))) ;) (expression_statement "puVar4 = PTR_memset_0003c290;" (assignment_expression "puVar4 = PTR_memset_0003c290" identifier = identifier) ;) (expression_statement "cVar44 = (char)in_stack_ffffff58;" (assignment_expression "cVar44 = (char)in_stack_ffffff58" identifier = (cast_expression "(char)in_stack_ffffff58" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (pprVar16 != (re_dfastate_t **)0x0) {\n        path->array = pprVar16;\n        path->alloc = (Idx)pprVar36;\n        (*(code *)puVar4)(pprVar16 + (int)input,0,(int)prVar34 * 4);\n        goto LAB_000205e8;\n      }" if (parenthesized_expression "(pprVar16 != (re_dfastate_t **)0x0)" ( (binary_expression "pprVar16 != (re_dfastate_t **)0x0" identifier != (cast_expression "(re_dfastate_t **)0x0" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n        path->array = pprVar16;\n        path->alloc = (Idx)pprVar36;\n        (*(code *)puVar4)(pprVar16 + (int)input,0,(int)prVar34 * 4);\n        goto LAB_000205e8;\n      }" { (expression_statement "path->array = pprVar16;" (assignment_expression "path->array = pprVar16" (field_expression "path->array" identifier -> field_identifier) = identifier) ;) (expression_statement "path->alloc = (Idx)pprVar36;" (assignment_expression "path->alloc = (Idx)pprVar36" (field_expression "path->alloc" identifier -> field_identifier) = (cast_expression "(Idx)pprVar36" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "(*(code *)puVar4)(pprVar16 + (int)input,0,(int)prVar34 * 4);" (call_expression "(*(code *)puVar4)(pprVar16 + (int)input,0,(int)prVar34 * 4)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pprVar16 + (int)input,0,(int)prVar34 * 4)" ( (binary_expression "pprVar16 + (int)input" identifier + (cast_expression "(int)input" ( (type_descriptor "int" primitive_type) ) identifier)) , number_literal , (binary_expression "(int)prVar34 * 4" (cast_expression "(int)prVar34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) ;) (goto_statement "goto LAB_000205e8;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00020c64:\n    rVar11 = _REG_ESPACE;" statement_identifier : (expression_statement "rVar11 = _REG_ESPACE;" (assignment_expression "rVar11 = _REG_ESPACE" identifier = identifier) ;)) }))) (if_statement "if (puVar21 == *(undefined4 **)puVar40) {\n    return rVar11;\n  }" if (parenthesized_expression "(puVar21 == *(undefined4 **)puVar40)" ( (binary_expression "puVar21 == *(undefined4 **)puVar40" identifier == (pointer_expression "*(undefined4 **)puVar40" * (cast_expression "(undefined4 **)puVar40" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return rVar11;\n  }" { (return_statement "return rVar11;" return identifier ;) })) (expression_statement "pcVar18 = set_regs;" (assignment_expression "pcVar18 = set_regs" identifier = identifier) ;) (expression_statement "puVar40 = PTR___stack_chk_fail_0003c2f4;" (assignment_expression "puVar40 = PTR___stack_chk_fail_0003c2f4" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0003c2f4)();" (call_expression "(*(code *)PTR___stack_chk_fail_0003c2f4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0003c2f4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0003c2f4" * (cast_expression "(code *)PTR___stack_chk_fail_0003c2f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "auStackY_138._0_4_ = puVar40 + 0x23430;" (assignment_expression "auStackY_138._0_4_ = puVar40 + 0x23430" (field_expression "auStackY_138._0_4_" identifier . field_identifier) = (binary_expression "puVar40 + 0x23430" identifier + number_literal)) ;) (expression_statement "puVar41 = auStackY_150;" (assignment_expression "puVar41 = auStackY_150" identifier = identifier) ;) (expression_statement "puVar42 = auStackY_150;" (assignment_expression "puVar42 = auStackY_150" identifier = identifier) ;) (expression_statement "auStackY_138._12_4_ = *(undefined4 *)(puVar40 + 0x1b674);" (assignment_expression "auStackY_138._12_4_ = *(undefined4 *)(puVar40 + 0x1b674)" (field_expression "auStackY_138._12_4_" identifier . field_identifier) = (pointer_expression "*(undefined4 *)(puVar40 + 0x1b674)" * (cast_expression "(undefined4 *)(puVar40 + 0x1b674)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + 0x1b674)" ( (binary_expression "puVar40 + 0x1b674" identifier + number_literal) ))))) ;) (expression_statement "uStackY_ec = 2;" (assignment_expression "uStackY_ec = 2" identifier = number_literal) ;) (expression_statement "auStackY_138._72_4_ = 0;" (assignment_expression "auStackY_138._72_4_ = 0" (field_expression "auStackY_138._72_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "iStackY_e8 = 0;" (assignment_expression "iStackY_e8 = 0" identifier = number_literal) ;) (expression_statement "prStackY_e4 = *(re_match_context_t **)auStackY_138._12_4_;" (assignment_expression "prStackY_e4 = *(re_match_context_t **)auStackY_138._12_4_" identifier = (pointer_expression "*(re_match_context_t **)auStackY_138._12_4_" * (cast_expression "(re_match_context_t **)auStackY_138._12_4_" ( (type_descriptor "re_match_context_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "auStackY_138._12_4_" identifier . field_identifier)))) ;) (expression_statement "piVar38 = (int *)*puVar21;" (assignment_expression "piVar38 = (int *)*puVar21" identifier = (cast_expression "(int *)*puVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ;) (expression_statement "prVar5 = mctx_01;" (assignment_expression "prVar5 = mctx_01" identifier = identifier) ;) (expression_statement "prVar15 = prVar25;" (assignment_expression "prVar15 = prVar25" identifier = identifier) ;) (expression_statement "prVar27 = context;" (assignment_expression "prVar27 = context" identifier = identifier) ;) (expression_statement "prStackY_e0 = prVar34;" (assignment_expression "prStackY_e0 = prVar34" identifier = identifier) ;) (expression_statement "pprStackY_dc = (re_dfastate_t **)top_str;" (assignment_expression "pprStackY_dc = (re_dfastate_t **)top_str" identifier = (cast_expression "(re_dfastate_t **)top_str" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "prStackY_d8 = input;" (assignment_expression "prStackY_d8 = input" identifier = identifier) ;) (expression_statement "prStackY_d4 = (re_dfa_t *)top_node;" (assignment_expression "prStackY_d4 = (re_dfa_t *)top_node" identifier = (cast_expression "(re_dfa_t *)top_node" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pprStackY_d0 = pprVar36;" (assignment_expression "pprStackY_d0 = pprVar36" identifier = identifier) ;) (expression_statement "prStackY_cc = unaff_s5;" (assignment_expression "prStackY_cc = unaff_s5" identifier = identifier) ;) (expression_statement "prStackY_c8 = mctx;" (assignment_expression "prStackY_c8 = mctx" identifier = identifier) ;) (expression_statement "prStackY_c4 = unaff_s7;" (assignment_expression "prStackY_c4 = unaff_s7" identifier = identifier) ;) (expression_statement "prStackY_c0 = unaff_s8;" (assignment_expression "prStackY_c0 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStackY_bc = pcVar18;" (assignment_expression "pcStackY_bc = pcVar18" identifier = identifier) ;) (if_statement "if (cVar44 == '\0') {\n    prVar34 = (re_dfa_t *)piVar38[0x12];\n    fs = (re_fail_stack_t *)0x0;\n    if ((uint)((int)prVar25 << 3) < 0xfc0) goto LAB_00020d5c;\nLAB_00021488:\n    auStackY_138._28_4_ = (int)prVar25 << 3;\n    auStackY_138._68_4_ = 0;\n    auStackY_138._64_4_ = 0;\n    auStackY_138._60_4_ = 0;\n    top_node = (Idx)(auStackY_138 + 0x3c);\n    auStackY_138._20_4_ = (**(code **)(auStackY_138._0_4_ + -0x7e1c))(auStackY_138._28_4_);\n    auStackY_138._16_4_ = 1;\n    if ((re_dfa_t *)auStackY_138._20_4_ != (re_dfa_t *)0x0) goto LAB_00020d6c;\n    puVar41 = auStackY_150;\n    if (fs == (re_fail_stack_t *)0x0) {\n      rVar11 = _REG_ESPACE;\n      goto LAB_00020f18;\n    }\nLAB_0002112c:\n    top_node = (Idx)(auStackY_138 + 0x3c);\n    free_fail_stack_return(fs);\n    puVar43 = puVar41;\n  }\n  else {\n    fs = (re_fail_stack_t *)(auStackY_138 + 0x48);\n    iStackY_e8 = (**(code **)(puVar40 + 0x1b614))(0x30);\n    puVar43 = auStackY_150;\n    if (iStackY_e8 != 0) {\n      prVar34 = (re_dfa_t *)piVar38[0x12];\n      if (0xfbf < (uint)((int)prVar25 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      auStackY_138._28_4_ = (int)prVar25 << 3;\n      auStackY_138._68_4_ = 0;\n      auStackY_138._64_4_ = 0;\n      auStackY_138._60_4_ = 0;\n      puVar41 = auStackY_150 + (int)prVar25 * -8;\n      auStackY_138._16_4_ = 0;\n      auStackY_138._20_4_ = auStackY_138 + (int)prVar25 * -8;\nLAB_00020d6c:\n      top_node = (Idx)(auStackY_138 + 0x3c);\n      prVar5 = context;\n      prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n      (**(code **)(auStackY_138._0_4_ + -0x7db8))(auStackY_138._20_4_);\n      auStackY_138._56_4_ = (re_dfa_t *)context->nodes;\n      auStackY_138._24_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x12ec);\n      auStackY_138._52_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x5d30);\n      auStackY_138._36_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x7b38);\nLAB_00020db0:\n      prVar35 = (re_dfa_t *)context->nodes_alloc;\n      auStackY_138._40_4_ = *(undefined4 *)(auStackY_138._0_4_ + -0x7ee8);\n      auStackY_138._32_4_ = *(undefined4 *)(auStackY_138._0_4_ + -0x7ee8);\n      pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);\n      puVar40 = (undefined *)auStackY_138._0_4_;\n      puVar42 = puVar41;\n      if ((int)auStackY_138._56_4_ <= (int)prVar35) {\n        do {\n          input = prVar34;\n          prVar34 = (re_dfa_t *)((int)input * 8);\n          prVar15 = (re_dfa_t *)0x8;\n          piVar10 = (int *)((int)prVar34->word_char + *piVar38 + -0x60);\n          prVar5 = (re_dfa_t *)(uint)*(byte *)(piVar10 + 1);\n          prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n          if (prVar5 == (re_dfa_t *)0x8) {\n            iVar8 = *piVar10;\n            prVar5 = (re_dfa_t *)(uint)(iVar8 + 1 < (int)prVar25);\n            if (prVar5 != (re_dfa_t *)0x0) {\n              (context->word_char + iVar8 * 2 + -0x16)[1] = 0xffffffff;\n              context->word_char[iVar8 * 2 + -0x16] = auStackY_138._56_4_;\n              prVar35 = (re_dfa_t *)context->nodes_alloc;\n            }\n          }\n          else {\n            prVar15 = (re_dfa_t *)&DAT_00000009;\n            if (prVar5 == (re_dfa_t *)&DAT_00000009) {\n              prVar15 = (re_dfa_t *)(uint)(*piVar10 + 1 < (int)prVar25);\n              prVar5 = (re_dfa_t *)(*piVar10 * 8 + 8);\n              if (prVar15 != (re_dfa_t *)0x0) {\n                piVar32 = (int *)((int)(((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8) +\n                                 (int)((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))->word_char + 0xffffffa0U);\n                pcVar18 = *(code **)(puVar40 + -0x7db8);\n                if (*piVar32 < (int)auStackY_138._56_4_) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)auStackY_138._20_4_;\n                  prVar5 = context;\n                }\n                else if (((piVar10[1] & 0x1000U) == 0) ||\n                        (pbVar3 = prVar5->word_char, prVar35 = context,\n                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1)) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)context->nodes_alloc;\n                  goto LAB_00020df8;\n                }\n                prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                auStackY_138._44_4_ = prVar34;\n                auStackY_138._48_4_ = auStackY_138._56_4_;\n                (*pcVar18)(prVar35);\n                prVar35 = (re_dfa_t *)context->nodes_alloc;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar34 = (re_dfa_t *)auStackY_138._44_4_;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n              }\n            }\n          }\nLAB_00020df8:\n          uVar33 = auStackY_138._24_4_;\n          if ((prVar27 == prVar35) && ((re_dfa_t *)mctx_01->word_char[0] == input)) {\n            pcVar18 = *(code **)(puVar40 + -0x7db0);\n            if (fs == (re_fail_stack_t *)0x0) {\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ == 0) goto LAB_00020f14;\n              (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              rVar11 = _REG_NOERROR;\n              goto LAB_00020f18;\n            }\n            prVar34 = (re_dfa_t *)0x0;\n            if (prVar25 == (re_dfa_t *)0x0) {\nLAB_000212c0:\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ != 0) {\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              }\n              goto LAB_00020f00;\n            }\n            prVar5 = (re_dfa_t *)0xffffffff;\n            prVar35 = context;\n            while (((int)prVar35->nodes < 0 || (prVar35->nodes_alloc != 0xffffffff))) {\n              prVar34 = (re_dfa_t *)((int)&prVar34->nodes + 1);\n              prVar35 = (re_dfa_t *)&prVar35->nodes_len;\n              if (prVar25 == prVar34) {\n                pcVar18 = *(code **)(puVar40 + -0x7db0);\n                goto LAB_000212c0;\n              }\n            }\n            *(Idx *)(puVar41 + 0x14) = top_node;\n            *(re_dfa_t **)(puVar41 + 0x10) = context;\n            prVar27 = prVar25;\n            input = (re_dfa_t *)(*(code *)uVar33)(fs,&fs->stack,auStackY_138 + 0x38);\n            prVar34 = (re_dfa_t *)((int)input << 3);\n            puVar40 = (undefined *)auStackY_138._0_4_;\n          }\n          prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n          prVar30 = (re_dfa_t *)mctx_01->completed_bkref_map;\n          prVar22 = (re_dfa_t *)prVar30->nodes;\n          prVar5 = (re_dfa_t *)\n                   ((int)(((re_dfa_t *)\n                          (((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))->\n                          word_char + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U);\n          prVar15 = (re_dfa_t *)(uint)*(byte *)&prVar5->nodes_alloc;\n          if ((*(byte *)&prVar5->nodes_alloc & 8) == 0) {\n            if ((prVar5->nodes_alloc & 0x800) == 0) {\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n              if (prVar15 != (re_dfa_t *)0x4) goto LAB_00020e44;\n              pprVar2 = &prVar5->nodes;\n              prVar5 = (re_dfa_t *)(context->word_char + (int)*pprVar2 * 2 + -0x16)[1];\n              bVar23 = context->word_char[(int)*pprVar2 * 2 + -0x16];\n              prVar27 = (re_dfa_t *)((int)prVar5 - bVar23);\n              if (fs == (re_fail_stack_t *)0x0) {\n                if (prVar27 == (re_dfa_t *)0x0) goto LAB_00021318;\n              }\n              else {\n                prVar22 = input;\n                if ((bVar23 == 0xffffffff) ||\n                   (prVar15 = (re_dfa_t *)(auStackY_138 + 0x38), prVar5 == (re_dfa_t *)0xffffffff))\n                goto LAB_00020f7c;\n                if (prVar27 == (re_dfa_t *)0x0) {\nLAB_00021318:\n                  prVar5 = input;\n                  auStackY_138._44_4_ = prVar34;\n                  auStackY_138._48_4_ = prVar30;\n                  iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n                  prVar34 = input;\n                  if (iVar8 == 0) goto LAB_000213ac;\n                  pprVar1 = (re_node_set **)(auStackY_138._48_4_ + 0x14);\n                  auStackY_138._8_4_ = auStackY_138._48_4_;\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n                  prVar34 = (re_dfa_t *)*(*pprVar1)[(int)input].elems;\n                  prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n                  prVar15 = prVar34;\n                  iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n                  puVar40 = (undefined *)auStackY_138._0_4_;\n                  if (iVar8 != 0) goto LAB_00020ecc;\n                  prVar5 = (re_dfa_t *)\n                           ((int)(auStackY_138._44_4_ + 0x60) +\n                           (int)(*(re_token_t **)auStackY_138._8_4_ + -0xc));\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  prVar30 = (re_dfa_t *)auStackY_138._8_4_;\n                  goto LAB_00020e44;\n                }\n                prVar5 = (re_dfa_t *)\n                         ((int)(auStackY_138._56_4_ + 0x60) + (mctx_01->nodes_alloc - 0x60));\n                auStackY_138._44_4_ = prVar30;\n                auStackY_138._48_4_ = prVar27;\n                iVar8 = (**(code **)(puVar40 + -0x7dd0))(mctx_01->nodes_alloc + bVar23);\n                prVar15 = prVar27;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar30 = (re_dfa_t *)auStackY_138._44_4_;\n                prVar22 = prVar35;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if (iVar8 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              auStackY_138._56_4_ =\n                   (int)(((re_dfa_t *)\n                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))->word_char\n                        + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U;\n              prVar34 = *(re_dfa_t **)(((re_node_set *)&prVar30->nexts)->alloc + (int)input * 4);\n              input = prVar35;\n            }\n            else {\n              prVar5 = (re_dfa_t *)&prVar30->syntax;\n              auStackY_138._48_4_ = prVar30;\n              auStackY_138._44_4_ = prVar34;\n              *(undefined4 *)(puVar41 + 0x10) = auStackY_138._56_4_;\n              prVar15 = input;\n              prVar27 = (re_dfa_t *)\n                        check_node_accept_bytes\n                                  (prVar22,(Idx)prVar5,(re_string_t *)input,(Idx)mctx_01,\n                                   *(re_dfa_t **)(puVar41 + 0x10));\n              prVar30 = (re_dfa_t *)auStackY_138._48_4_;\n              prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (prVar27 != (re_dfa_t *)0x0) goto LAB_00021258;\n              prVar5 = (re_dfa_t *)\n                       ((int)(auStackY_138._44_4_ + 0x60) +\n                       (int)(*(re_token_t **)auStackY_138._48_4_ + -0xc));\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_00020e44:\n              prVar15 = prVar27;\n              auStackY_138._44_4_ = prVar30;\n              auStackY_138._48_4_ = prVar15;\n              _Var14 = check_node_accept((re_match_context_t *)mctx_01,(re_token_t *)prVar5,\n                                         (Idx)prVar15);\n              prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (CONCAT31(extraout_var,_Var14) == 0) goto LAB_00020f6c;\n              auStackY_138._56_4_ = (int)(re_token_t **)auStackY_138._48_4_ + 1;\n              input = (re_dfa_t *)\n                      (((re_node_set *)(auStackY_138._44_4_ + 0xc))->alloc + (int)input * 4);\n              prVar34 = (re_dfa_t *)input->nodes;\n            }\n            if (fs != (re_fail_stack_t *)0x0) {\n              prVar22 = input;\n              if ((mctx_01->mb_cur_max < (int)auStackY_138._56_4_) ||\n                 (iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4), iVar8 == 0))\n              goto LAB_00020f7c;\n              prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n              prVar15 = prVar34;\n              iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (iVar8 == 0) goto LAB_00020f7c;\n            }\n            auStackY_138._64_4_ = 0;\n          }\n          else {\n            prVar34 = (re_dfa_t *)(prVar30->edests + (int)input);\n            iVar13 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n            iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n            prVar5 = input;\n            if (iVar8 == 0) {\nLAB_000213ac:\n              input = prVar34;\n              pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);\n              goto LAB_000213b0;\n            }\n            sVar28 = prVar34->nodes_alloc;\n            input = prVar34;\n            puVar40 = (undefined *)auStackY_138._0_4_;\n            if ((int)sVar28 < 1) goto LAB_00020f6c;\n            uVar33 = *(undefined4 *)(iVar13 + 8);\n            pIVar31 = (Idx *)prVar34->nodes_len;\n            sVar29 = 0;\n            prVar22 = (re_dfa_t *)0xffffffff;\n            prVar35 = (re_dfa_t *)(iVar13 + 0xc);\n            prVar30 = (re_dfa_t *)0xffffffff;\n            do {\n              prVar5 = prVar35;\n              input = (re_dfa_t *)*pIVar31;\n              prVar15 = input;\n              prVar35 = prVar5;\n              iVar8 = (*(code *)auStackY_138._52_4_)(uVar33);\n              prVar34 = prVar30;\n              if ((iVar8 != 0) && (prVar34 = input, prVar30 != prVar22)) {\n                prVar5 = (re_dfa_t *)(auStackY_138 + 0x44);\n                prVar15 = prVar30;\n                iVar8 = (*(code *)auStackY_138._52_4_)(auStackY_138._64_4_);\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if ((iVar8 != 0) || (prVar34 = prVar30, fs == (re_fail_stack_t *)0x0)) break;\n                prVar15 = (re_dfa_t *)fs->num;\n                prVar5 = (re_dfa_t *)((int)&prVar15->nodes + 1);\n                fs->num = (Idx)prVar5;\n                if (prVar5 == (re_dfa_t *)fs->alloc) {\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  prVar5 = (re_dfa_t *)((int)prVar5 * 0x30);\n                  auStackY_138._44_4_ = prVar15;\n                  prVar12 = (re_fail_stack_ent_t *)\n                            (**(code **)(auStackY_138._0_4_ + -0x7e18))(fs->stack);\n                  if (prVar12 != (re_fail_stack_ent_t *)0x0) {\n                    fs->stack = prVar12;\n                    fs->alloc = fs->alloc << 1;\n                    prVar15 = (re_dfa_t *)auStackY_138._44_4_;\n                    prVar34 = (re_dfa_t *)auStackY_138._48_4_;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  prVar12 = fs->stack;\n                  prVar34 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_000210a0:\n                  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7e1c);\n                  auStackY_138._48_4_ = prVar12 + (int)prVar15;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes = (re_token_t *)prVar34;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes_alloc = (size_t)input;\n                  pIVar31 = (Idx *)(*pcVar18)(auStackY_138._28_4_);\n                  *(Idx **)(auStackY_138._48_4_ + 8) = pIVar31;\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  if (pIVar31 != (Idx *)0x0) {\n                    prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                    (**(code **)(auStackY_138._0_4_ + -0x7db8))(pIVar31,context);\n                    prVar5 = (re_dfa_t *)top_node;\n                    prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                    rVar11 = re_node_set_init_copy\n                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node);\n                    prVar34 = prVar30;\n                    puVar40 = (undefined *)auStackY_138._0_4_;\n                    if (rVar11 == _REG_NOERROR) break;\n                  }\n                }\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._68_4_);\n                if (auStackY_138._16_4_ != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              sVar29 = sVar29 + 1;\n              pIVar31 = pIVar31 + 1;\n              prVar30 = prVar34;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n            } while (sVar28 != sVar29);\n          }\nLAB_00020ecc:\n          if ((int)prVar34 < 0) goto LAB_00020f60;\n          prVar35 = (re_dfa_t *)context->nodes_alloc;\n          pcVar18 = *(code **)(puVar40 + -0x7db0);\n          if ((int)prVar35 < (int)auStackY_138._56_4_) break;\n        } while( true );\n      }\n      prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n      (*pcVar18)(auStackY_138._68_4_);\n      if (auStackY_138._16_4_ == 0) {\n        rVar11 = _REG_NOERROR;\n        if (fs == (re_fail_stack_t *)0x0) goto LAB_00020f18;\n      }\n      else {\n        (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n        if (fs == (re_fail_stack_t *)0x0) {\n          rVar11 = _REG_NOERROR;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      free_fail_stack_return(fs);\nLAB_00020f14:\n      rVar11 = _REG_NOERROR;\n      goto LAB_00020f18;\n    }\n  }" if (parenthesized_expression "(cVar44 == '\0')" ( (binary_expression "cVar44 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    prVar34 = (re_dfa_t *)piVar38[0x12];\n    fs = (re_fail_stack_t *)0x0;\n    if ((uint)((int)prVar25 << 3) < 0xfc0) goto LAB_00020d5c;\nLAB_00021488:\n    auStackY_138._28_4_ = (int)prVar25 << 3;\n    auStackY_138._68_4_ = 0;\n    auStackY_138._64_4_ = 0;\n    auStackY_138._60_4_ = 0;\n    top_node = (Idx)(auStackY_138 + 0x3c);\n    auStackY_138._20_4_ = (**(code **)(auStackY_138._0_4_ + -0x7e1c))(auStackY_138._28_4_);\n    auStackY_138._16_4_ = 1;\n    if ((re_dfa_t *)auStackY_138._20_4_ != (re_dfa_t *)0x0) goto LAB_00020d6c;\n    puVar41 = auStackY_150;\n    if (fs == (re_fail_stack_t *)0x0) {\n      rVar11 = _REG_ESPACE;\n      goto LAB_00020f18;\n    }\nLAB_0002112c:\n    top_node = (Idx)(auStackY_138 + 0x3c);\n    free_fail_stack_return(fs);\n    puVar43 = puVar41;\n  }" { (expression_statement "prVar34 = (re_dfa_t *)piVar38[0x12];" (assignment_expression "prVar34 = (re_dfa_t *)piVar38[0x12]" identifier = (cast_expression "(re_dfa_t *)piVar38[0x12]" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar38[0x12]" identifier [ number_literal ]))) ;) (expression_statement "fs = (re_fail_stack_t *)0x0;" (assignment_expression "fs = (re_fail_stack_t *)0x0" identifier = (cast_expression "(re_fail_stack_t *)0x0" ( (type_descriptor "re_fail_stack_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((uint)((int)prVar25 << 3) < 0xfc0) goto LAB_00020d5c;" if (parenthesized_expression "((uint)((int)prVar25 << 3) < 0xfc0)" ( (binary_expression "(uint)((int)prVar25 << 3) < 0xfc0" (call_expression "(uint)((int)prVar25 << 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)prVar25 << 3)" ( (binary_expression "(int)prVar25 << 3" (cast_expression "(int)prVar25" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) < number_literal) )) (goto_statement "goto LAB_00020d5c;" goto statement_identifier ;)) (labeled_statement "LAB_00021488:\n    auStackY_138._28_4_ = (int)prVar25 << 3;" statement_identifier : (expression_statement "auStackY_138._28_4_ = (int)prVar25 << 3;" (assignment_expression "auStackY_138._28_4_ = (int)prVar25 << 3" (field_expression "auStackY_138._28_4_" identifier . field_identifier) = (binary_expression "(int)prVar25 << 3" (cast_expression "(int)prVar25" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;)) (expression_statement "auStackY_138._68_4_ = 0;" (assignment_expression "auStackY_138._68_4_ = 0" (field_expression "auStackY_138._68_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "auStackY_138._64_4_ = 0;" (assignment_expression "auStackY_138._64_4_ = 0" (field_expression "auStackY_138._64_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "auStackY_138._60_4_ = 0;" (assignment_expression "auStackY_138._60_4_ = 0" (field_expression "auStackY_138._60_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "top_node = (Idx)(auStackY_138 + 0x3c);" (assignment_expression "top_node = (Idx)(auStackY_138 + 0x3c)" identifier = (call_expression "(Idx)(auStackY_138 + 0x3c)" (parenthesized_expression "(Idx)" ( identifier )) (argument_list "(auStackY_138 + 0x3c)" ( (binary_expression "auStackY_138 + 0x3c" identifier + number_literal) )))) ;) (expression_statement "auStackY_138._20_4_ = (**(code **)(auStackY_138._0_4_ + -0x7e1c))(auStackY_138._28_4_);" (assignment_expression "auStackY_138._20_4_ = (**(code **)(auStackY_138._0_4_ + -0x7e1c))(auStackY_138._28_4_)" (field_expression "auStackY_138._20_4_" identifier . field_identifier) = (call_expression "(**(code **)(auStackY_138._0_4_ + -0x7e1c))(auStackY_138._28_4_)" (parenthesized_expression "(**(code **)(auStackY_138._0_4_ + -0x7e1c))" ( (pointer_expression "**(code **)(auStackY_138._0_4_ + -0x7e1c)" * (pointer_expression "*(code **)(auStackY_138._0_4_ + -0x7e1c)" * (cast_expression "(code **)(auStackY_138._0_4_ + -0x7e1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStackY_138._0_4_ + -0x7e1c)" ( (binary_expression "auStackY_138._0_4_ + -0x7e1c" (field_expression "auStackY_138._0_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(auStackY_138._28_4_)" ( (field_expression "auStackY_138._28_4_" identifier . field_identifier) )))) ;) (expression_statement "auStackY_138._16_4_ = 1;" (assignment_expression "auStackY_138._16_4_ = 1" (field_expression "auStackY_138._16_4_" identifier . field_identifier) = number_literal) ;) (if_statement "if ((re_dfa_t *)auStackY_138._20_4_ != (re_dfa_t *)0x0) goto LAB_00020d6c;" if (parenthesized_expression "((re_dfa_t *)auStackY_138._20_4_ != (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)auStackY_138._20_4_ != (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)auStackY_138._20_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._20_4_" identifier . field_identifier)) != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00020d6c;" goto statement_identifier ;)) (expression_statement "puVar41 = auStackY_150;" (assignment_expression "puVar41 = auStackY_150" identifier = identifier) ;) (if_statement "if (fs == (re_fail_stack_t *)0x0) {\n      rVar11 = _REG_ESPACE;\n      goto LAB_00020f18;\n    }" if (parenthesized_expression "(fs == (re_fail_stack_t *)0x0)" ( (binary_expression "fs == (re_fail_stack_t *)0x0" identifier == (cast_expression "(re_fail_stack_t *)0x0" ( (type_descriptor "re_fail_stack_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      rVar11 = _REG_ESPACE;\n      goto LAB_00020f18;\n    }" { (expression_statement "rVar11 = _REG_ESPACE;" (assignment_expression "rVar11 = _REG_ESPACE" identifier = identifier) ;) (goto_statement "goto LAB_00020f18;" goto statement_identifier ;) })) (labeled_statement "LAB_0002112c:\n    top_node = (Idx)(auStackY_138 + 0x3c);" statement_identifier : (expression_statement "top_node = (Idx)(auStackY_138 + 0x3c);" (assignment_expression "top_node = (Idx)(auStackY_138 + 0x3c)" identifier = (call_expression "(Idx)(auStackY_138 + 0x3c)" (parenthesized_expression "(Idx)" ( identifier )) (argument_list "(auStackY_138 + 0x3c)" ( (binary_expression "auStackY_138 + 0x3c" identifier + number_literal) )))) ;)) (expression_statement "free_fail_stack_return(fs);" (call_expression "free_fail_stack_return(fs)" identifier (argument_list "(fs)" ( identifier ))) ;) (expression_statement "puVar43 = puVar41;" (assignment_expression "puVar43 = puVar41" identifier = identifier) ;) }) (else_clause "else {\n    fs = (re_fail_stack_t *)(auStackY_138 + 0x48);\n    iStackY_e8 = (**(code **)(puVar40 + 0x1b614))(0x30);\n    puVar43 = auStackY_150;\n    if (iStackY_e8 != 0) {\n      prVar34 = (re_dfa_t *)piVar38[0x12];\n      if (0xfbf < (uint)((int)prVar25 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      auStackY_138._28_4_ = (int)prVar25 << 3;\n      auStackY_138._68_4_ = 0;\n      auStackY_138._64_4_ = 0;\n      auStackY_138._60_4_ = 0;\n      puVar41 = auStackY_150 + (int)prVar25 * -8;\n      auStackY_138._16_4_ = 0;\n      auStackY_138._20_4_ = auStackY_138 + (int)prVar25 * -8;\nLAB_00020d6c:\n      top_node = (Idx)(auStackY_138 + 0x3c);\n      prVar5 = context;\n      prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n      (**(code **)(auStackY_138._0_4_ + -0x7db8))(auStackY_138._20_4_);\n      auStackY_138._56_4_ = (re_dfa_t *)context->nodes;\n      auStackY_138._24_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x12ec);\n      auStackY_138._52_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x5d30);\n      auStackY_138._36_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x7b38);\nLAB_00020db0:\n      prVar35 = (re_dfa_t *)context->nodes_alloc;\n      auStackY_138._40_4_ = *(undefined4 *)(auStackY_138._0_4_ + -0x7ee8);\n      auStackY_138._32_4_ = *(undefined4 *)(auStackY_138._0_4_ + -0x7ee8);\n      pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);\n      puVar40 = (undefined *)auStackY_138._0_4_;\n      puVar42 = puVar41;\n      if ((int)auStackY_138._56_4_ <= (int)prVar35) {\n        do {\n          input = prVar34;\n          prVar34 = (re_dfa_t *)((int)input * 8);\n          prVar15 = (re_dfa_t *)0x8;\n          piVar10 = (int *)((int)prVar34->word_char + *piVar38 + -0x60);\n          prVar5 = (re_dfa_t *)(uint)*(byte *)(piVar10 + 1);\n          prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n          if (prVar5 == (re_dfa_t *)0x8) {\n            iVar8 = *piVar10;\n            prVar5 = (re_dfa_t *)(uint)(iVar8 + 1 < (int)prVar25);\n            if (prVar5 != (re_dfa_t *)0x0) {\n              (context->word_char + iVar8 * 2 + -0x16)[1] = 0xffffffff;\n              context->word_char[iVar8 * 2 + -0x16] = auStackY_138._56_4_;\n              prVar35 = (re_dfa_t *)context->nodes_alloc;\n            }\n          }\n          else {\n            prVar15 = (re_dfa_t *)&DAT_00000009;\n            if (prVar5 == (re_dfa_t *)&DAT_00000009) {\n              prVar15 = (re_dfa_t *)(uint)(*piVar10 + 1 < (int)prVar25);\n              prVar5 = (re_dfa_t *)(*piVar10 * 8 + 8);\n              if (prVar15 != (re_dfa_t *)0x0) {\n                piVar32 = (int *)((int)(((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8) +\n                                 (int)((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))->word_char + 0xffffffa0U);\n                pcVar18 = *(code **)(puVar40 + -0x7db8);\n                if (*piVar32 < (int)auStackY_138._56_4_) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)auStackY_138._20_4_;\n                  prVar5 = context;\n                }\n                else if (((piVar10[1] & 0x1000U) == 0) ||\n                        (pbVar3 = prVar5->word_char, prVar35 = context,\n                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1)) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)context->nodes_alloc;\n                  goto LAB_00020df8;\n                }\n                prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                auStackY_138._44_4_ = prVar34;\n                auStackY_138._48_4_ = auStackY_138._56_4_;\n                (*pcVar18)(prVar35);\n                prVar35 = (re_dfa_t *)context->nodes_alloc;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar34 = (re_dfa_t *)auStackY_138._44_4_;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n              }\n            }\n          }\nLAB_00020df8:\n          uVar33 = auStackY_138._24_4_;\n          if ((prVar27 == prVar35) && ((re_dfa_t *)mctx_01->word_char[0] == input)) {\n            pcVar18 = *(code **)(puVar40 + -0x7db0);\n            if (fs == (re_fail_stack_t *)0x0) {\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ == 0) goto LAB_00020f14;\n              (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              rVar11 = _REG_NOERROR;\n              goto LAB_00020f18;\n            }\n            prVar34 = (re_dfa_t *)0x0;\n            if (prVar25 == (re_dfa_t *)0x0) {\nLAB_000212c0:\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ != 0) {\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              }\n              goto LAB_00020f00;\n            }\n            prVar5 = (re_dfa_t *)0xffffffff;\n            prVar35 = context;\n            while (((int)prVar35->nodes < 0 || (prVar35->nodes_alloc != 0xffffffff))) {\n              prVar34 = (re_dfa_t *)((int)&prVar34->nodes + 1);\n              prVar35 = (re_dfa_t *)&prVar35->nodes_len;\n              if (prVar25 == prVar34) {\n                pcVar18 = *(code **)(puVar40 + -0x7db0);\n                goto LAB_000212c0;\n              }\n            }\n            *(Idx *)(puVar41 + 0x14) = top_node;\n            *(re_dfa_t **)(puVar41 + 0x10) = context;\n            prVar27 = prVar25;\n            input = (re_dfa_t *)(*(code *)uVar33)(fs,&fs->stack,auStackY_138 + 0x38);\n            prVar34 = (re_dfa_t *)((int)input << 3);\n            puVar40 = (undefined *)auStackY_138._0_4_;\n          }\n          prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n          prVar30 = (re_dfa_t *)mctx_01->completed_bkref_map;\n          prVar22 = (re_dfa_t *)prVar30->nodes;\n          prVar5 = (re_dfa_t *)\n                   ((int)(((re_dfa_t *)\n                          (((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))->\n                          word_char + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U);\n          prVar15 = (re_dfa_t *)(uint)*(byte *)&prVar5->nodes_alloc;\n          if ((*(byte *)&prVar5->nodes_alloc & 8) == 0) {\n            if ((prVar5->nodes_alloc & 0x800) == 0) {\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n              if (prVar15 != (re_dfa_t *)0x4) goto LAB_00020e44;\n              pprVar2 = &prVar5->nodes;\n              prVar5 = (re_dfa_t *)(context->word_char + (int)*pprVar2 * 2 + -0x16)[1];\n              bVar23 = context->word_char[(int)*pprVar2 * 2 + -0x16];\n              prVar27 = (re_dfa_t *)((int)prVar5 - bVar23);\n              if (fs == (re_fail_stack_t *)0x0) {\n                if (prVar27 == (re_dfa_t *)0x0) goto LAB_00021318;\n              }\n              else {\n                prVar22 = input;\n                if ((bVar23 == 0xffffffff) ||\n                   (prVar15 = (re_dfa_t *)(auStackY_138 + 0x38), prVar5 == (re_dfa_t *)0xffffffff))\n                goto LAB_00020f7c;\n                if (prVar27 == (re_dfa_t *)0x0) {\nLAB_00021318:\n                  prVar5 = input;\n                  auStackY_138._44_4_ = prVar34;\n                  auStackY_138._48_4_ = prVar30;\n                  iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n                  prVar34 = input;\n                  if (iVar8 == 0) goto LAB_000213ac;\n                  pprVar1 = (re_node_set **)(auStackY_138._48_4_ + 0x14);\n                  auStackY_138._8_4_ = auStackY_138._48_4_;\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n                  prVar34 = (re_dfa_t *)*(*pprVar1)[(int)input].elems;\n                  prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n                  prVar15 = prVar34;\n                  iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n                  puVar40 = (undefined *)auStackY_138._0_4_;\n                  if (iVar8 != 0) goto LAB_00020ecc;\n                  prVar5 = (re_dfa_t *)\n                           ((int)(auStackY_138._44_4_ + 0x60) +\n                           (int)(*(re_token_t **)auStackY_138._8_4_ + -0xc));\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  prVar30 = (re_dfa_t *)auStackY_138._8_4_;\n                  goto LAB_00020e44;\n                }\n                prVar5 = (re_dfa_t *)\n                         ((int)(auStackY_138._56_4_ + 0x60) + (mctx_01->nodes_alloc - 0x60));\n                auStackY_138._44_4_ = prVar30;\n                auStackY_138._48_4_ = prVar27;\n                iVar8 = (**(code **)(puVar40 + -0x7dd0))(mctx_01->nodes_alloc + bVar23);\n                prVar15 = prVar27;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar30 = (re_dfa_t *)auStackY_138._44_4_;\n                prVar22 = prVar35;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if (iVar8 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              auStackY_138._56_4_ =\n                   (int)(((re_dfa_t *)\n                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))->word_char\n                        + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U;\n              prVar34 = *(re_dfa_t **)(((re_node_set *)&prVar30->nexts)->alloc + (int)input * 4);\n              input = prVar35;\n            }\n            else {\n              prVar5 = (re_dfa_t *)&prVar30->syntax;\n              auStackY_138._48_4_ = prVar30;\n              auStackY_138._44_4_ = prVar34;\n              *(undefined4 *)(puVar41 + 0x10) = auStackY_138._56_4_;\n              prVar15 = input;\n              prVar27 = (re_dfa_t *)\n                        check_node_accept_bytes\n                                  (prVar22,(Idx)prVar5,(re_string_t *)input,(Idx)mctx_01,\n                                   *(re_dfa_t **)(puVar41 + 0x10));\n              prVar30 = (re_dfa_t *)auStackY_138._48_4_;\n              prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (prVar27 != (re_dfa_t *)0x0) goto LAB_00021258;\n              prVar5 = (re_dfa_t *)\n                       ((int)(auStackY_138._44_4_ + 0x60) +\n                       (int)(*(re_token_t **)auStackY_138._48_4_ + -0xc));\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_00020e44:\n              prVar15 = prVar27;\n              auStackY_138._44_4_ = prVar30;\n              auStackY_138._48_4_ = prVar15;\n              _Var14 = check_node_accept((re_match_context_t *)mctx_01,(re_token_t *)prVar5,\n                                         (Idx)prVar15);\n              prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (CONCAT31(extraout_var,_Var14) == 0) goto LAB_00020f6c;\n              auStackY_138._56_4_ = (int)(re_token_t **)auStackY_138._48_4_ + 1;\n              input = (re_dfa_t *)\n                      (((re_node_set *)(auStackY_138._44_4_ + 0xc))->alloc + (int)input * 4);\n              prVar34 = (re_dfa_t *)input->nodes;\n            }\n            if (fs != (re_fail_stack_t *)0x0) {\n              prVar22 = input;\n              if ((mctx_01->mb_cur_max < (int)auStackY_138._56_4_) ||\n                 (iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4), iVar8 == 0))\n              goto LAB_00020f7c;\n              prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n              prVar15 = prVar34;\n              iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (iVar8 == 0) goto LAB_00020f7c;\n            }\n            auStackY_138._64_4_ = 0;\n          }\n          else {\n            prVar34 = (re_dfa_t *)(prVar30->edests + (int)input);\n            iVar13 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n            iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n            prVar5 = input;\n            if (iVar8 == 0) {\nLAB_000213ac:\n              input = prVar34;\n              pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);\n              goto LAB_000213b0;\n            }\n            sVar28 = prVar34->nodes_alloc;\n            input = prVar34;\n            puVar40 = (undefined *)auStackY_138._0_4_;\n            if ((int)sVar28 < 1) goto LAB_00020f6c;\n            uVar33 = *(undefined4 *)(iVar13 + 8);\n            pIVar31 = (Idx *)prVar34->nodes_len;\n            sVar29 = 0;\n            prVar22 = (re_dfa_t *)0xffffffff;\n            prVar35 = (re_dfa_t *)(iVar13 + 0xc);\n            prVar30 = (re_dfa_t *)0xffffffff;\n            do {\n              prVar5 = prVar35;\n              input = (re_dfa_t *)*pIVar31;\n              prVar15 = input;\n              prVar35 = prVar5;\n              iVar8 = (*(code *)auStackY_138._52_4_)(uVar33);\n              prVar34 = prVar30;\n              if ((iVar8 != 0) && (prVar34 = input, prVar30 != prVar22)) {\n                prVar5 = (re_dfa_t *)(auStackY_138 + 0x44);\n                prVar15 = prVar30;\n                iVar8 = (*(code *)auStackY_138._52_4_)(auStackY_138._64_4_);\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if ((iVar8 != 0) || (prVar34 = prVar30, fs == (re_fail_stack_t *)0x0)) break;\n                prVar15 = (re_dfa_t *)fs->num;\n                prVar5 = (re_dfa_t *)((int)&prVar15->nodes + 1);\n                fs->num = (Idx)prVar5;\n                if (prVar5 == (re_dfa_t *)fs->alloc) {\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  prVar5 = (re_dfa_t *)((int)prVar5 * 0x30);\n                  auStackY_138._44_4_ = prVar15;\n                  prVar12 = (re_fail_stack_ent_t *)\n                            (**(code **)(auStackY_138._0_4_ + -0x7e18))(fs->stack);\n                  if (prVar12 != (re_fail_stack_ent_t *)0x0) {\n                    fs->stack = prVar12;\n                    fs->alloc = fs->alloc << 1;\n                    prVar15 = (re_dfa_t *)auStackY_138._44_4_;\n                    prVar34 = (re_dfa_t *)auStackY_138._48_4_;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  prVar12 = fs->stack;\n                  prVar34 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_000210a0:\n                  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7e1c);\n                  auStackY_138._48_4_ = prVar12 + (int)prVar15;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes = (re_token_t *)prVar34;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes_alloc = (size_t)input;\n                  pIVar31 = (Idx *)(*pcVar18)(auStackY_138._28_4_);\n                  *(Idx **)(auStackY_138._48_4_ + 8) = pIVar31;\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  if (pIVar31 != (Idx *)0x0) {\n                    prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                    (**(code **)(auStackY_138._0_4_ + -0x7db8))(pIVar31,context);\n                    prVar5 = (re_dfa_t *)top_node;\n                    prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                    rVar11 = re_node_set_init_copy\n                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node);\n                    prVar34 = prVar30;\n                    puVar40 = (undefined *)auStackY_138._0_4_;\n                    if (rVar11 == _REG_NOERROR) break;\n                  }\n                }\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._68_4_);\n                if (auStackY_138._16_4_ != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              sVar29 = sVar29 + 1;\n              pIVar31 = pIVar31 + 1;\n              prVar30 = prVar34;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n            } while (sVar28 != sVar29);\n          }\nLAB_00020ecc:\n          if ((int)prVar34 < 0) goto LAB_00020f60;\n          prVar35 = (re_dfa_t *)context->nodes_alloc;\n          pcVar18 = *(code **)(puVar40 + -0x7db0);\n          if ((int)prVar35 < (int)auStackY_138._56_4_) break;\n        } while( true );\n      }\n      prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n      (*pcVar18)(auStackY_138._68_4_);\n      if (auStackY_138._16_4_ == 0) {\n        rVar11 = _REG_NOERROR;\n        if (fs == (re_fail_stack_t *)0x0) goto LAB_00020f18;\n      }\n      else {\n        (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n        if (fs == (re_fail_stack_t *)0x0) {\n          rVar11 = _REG_NOERROR;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      free_fail_stack_return(fs);\nLAB_00020f14:\n      rVar11 = _REG_NOERROR;\n      goto LAB_00020f18;\n    }\n  }" else (compound_statement "{\n    fs = (re_fail_stack_t *)(auStackY_138 + 0x48);\n    iStackY_e8 = (**(code **)(puVar40 + 0x1b614))(0x30);\n    puVar43 = auStackY_150;\n    if (iStackY_e8 != 0) {\n      prVar34 = (re_dfa_t *)piVar38[0x12];\n      if (0xfbf < (uint)((int)prVar25 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      auStackY_138._28_4_ = (int)prVar25 << 3;\n      auStackY_138._68_4_ = 0;\n      auStackY_138._64_4_ = 0;\n      auStackY_138._60_4_ = 0;\n      puVar41 = auStackY_150 + (int)prVar25 * -8;\n      auStackY_138._16_4_ = 0;\n      auStackY_138._20_4_ = auStackY_138 + (int)prVar25 * -8;\nLAB_00020d6c:\n      top_node = (Idx)(auStackY_138 + 0x3c);\n      prVar5 = context;\n      prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n      (**(code **)(auStackY_138._0_4_ + -0x7db8))(auStackY_138._20_4_);\n      auStackY_138._56_4_ = (re_dfa_t *)context->nodes;\n      auStackY_138._24_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x12ec);\n      auStackY_138._52_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x5d30);\n      auStackY_138._36_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x7b38);\nLAB_00020db0:\n      prVar35 = (re_dfa_t *)context->nodes_alloc;\n      auStackY_138._40_4_ = *(undefined4 *)(auStackY_138._0_4_ + -0x7ee8);\n      auStackY_138._32_4_ = *(undefined4 *)(auStackY_138._0_4_ + -0x7ee8);\n      pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);\n      puVar40 = (undefined *)auStackY_138._0_4_;\n      puVar42 = puVar41;\n      if ((int)auStackY_138._56_4_ <= (int)prVar35) {\n        do {\n          input = prVar34;\n          prVar34 = (re_dfa_t *)((int)input * 8);\n          prVar15 = (re_dfa_t *)0x8;\n          piVar10 = (int *)((int)prVar34->word_char + *piVar38 + -0x60);\n          prVar5 = (re_dfa_t *)(uint)*(byte *)(piVar10 + 1);\n          prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n          if (prVar5 == (re_dfa_t *)0x8) {\n            iVar8 = *piVar10;\n            prVar5 = (re_dfa_t *)(uint)(iVar8 + 1 < (int)prVar25);\n            if (prVar5 != (re_dfa_t *)0x0) {\n              (context->word_char + iVar8 * 2 + -0x16)[1] = 0xffffffff;\n              context->word_char[iVar8 * 2 + -0x16] = auStackY_138._56_4_;\n              prVar35 = (re_dfa_t *)context->nodes_alloc;\n            }\n          }\n          else {\n            prVar15 = (re_dfa_t *)&DAT_00000009;\n            if (prVar5 == (re_dfa_t *)&DAT_00000009) {\n              prVar15 = (re_dfa_t *)(uint)(*piVar10 + 1 < (int)prVar25);\n              prVar5 = (re_dfa_t *)(*piVar10 * 8 + 8);\n              if (prVar15 != (re_dfa_t *)0x0) {\n                piVar32 = (int *)((int)(((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8) +\n                                 (int)((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))->word_char + 0xffffffa0U);\n                pcVar18 = *(code **)(puVar40 + -0x7db8);\n                if (*piVar32 < (int)auStackY_138._56_4_) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)auStackY_138._20_4_;\n                  prVar5 = context;\n                }\n                else if (((piVar10[1] & 0x1000U) == 0) ||\n                        (pbVar3 = prVar5->word_char, prVar35 = context,\n                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1)) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)context->nodes_alloc;\n                  goto LAB_00020df8;\n                }\n                prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                auStackY_138._44_4_ = prVar34;\n                auStackY_138._48_4_ = auStackY_138._56_4_;\n                (*pcVar18)(prVar35);\n                prVar35 = (re_dfa_t *)context->nodes_alloc;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar34 = (re_dfa_t *)auStackY_138._44_4_;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n              }\n            }\n          }\nLAB_00020df8:\n          uVar33 = auStackY_138._24_4_;\n          if ((prVar27 == prVar35) && ((re_dfa_t *)mctx_01->word_char[0] == input)) {\n            pcVar18 = *(code **)(puVar40 + -0x7db0);\n            if (fs == (re_fail_stack_t *)0x0) {\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ == 0) goto LAB_00020f14;\n              (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              rVar11 = _REG_NOERROR;\n              goto LAB_00020f18;\n            }\n            prVar34 = (re_dfa_t *)0x0;\n            if (prVar25 == (re_dfa_t *)0x0) {\nLAB_000212c0:\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ != 0) {\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              }\n              goto LAB_00020f00;\n            }\n            prVar5 = (re_dfa_t *)0xffffffff;\n            prVar35 = context;\n            while (((int)prVar35->nodes < 0 || (prVar35->nodes_alloc != 0xffffffff))) {\n              prVar34 = (re_dfa_t *)((int)&prVar34->nodes + 1);\n              prVar35 = (re_dfa_t *)&prVar35->nodes_len;\n              if (prVar25 == prVar34) {\n                pcVar18 = *(code **)(puVar40 + -0x7db0);\n                goto LAB_000212c0;\n              }\n            }\n            *(Idx *)(puVar41 + 0x14) = top_node;\n            *(re_dfa_t **)(puVar41 + 0x10) = context;\n            prVar27 = prVar25;\n            input = (re_dfa_t *)(*(code *)uVar33)(fs,&fs->stack,auStackY_138 + 0x38);\n            prVar34 = (re_dfa_t *)((int)input << 3);\n            puVar40 = (undefined *)auStackY_138._0_4_;\n          }\n          prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n          prVar30 = (re_dfa_t *)mctx_01->completed_bkref_map;\n          prVar22 = (re_dfa_t *)prVar30->nodes;\n          prVar5 = (re_dfa_t *)\n                   ((int)(((re_dfa_t *)\n                          (((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))->\n                          word_char + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U);\n          prVar15 = (re_dfa_t *)(uint)*(byte *)&prVar5->nodes_alloc;\n          if ((*(byte *)&prVar5->nodes_alloc & 8) == 0) {\n            if ((prVar5->nodes_alloc & 0x800) == 0) {\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n              if (prVar15 != (re_dfa_t *)0x4) goto LAB_00020e44;\n              pprVar2 = &prVar5->nodes;\n              prVar5 = (re_dfa_t *)(context->word_char + (int)*pprVar2 * 2 + -0x16)[1];\n              bVar23 = context->word_char[(int)*pprVar2 * 2 + -0x16];\n              prVar27 = (re_dfa_t *)((int)prVar5 - bVar23);\n              if (fs == (re_fail_stack_t *)0x0) {\n                if (prVar27 == (re_dfa_t *)0x0) goto LAB_00021318;\n              }\n              else {\n                prVar22 = input;\n                if ((bVar23 == 0xffffffff) ||\n                   (prVar15 = (re_dfa_t *)(auStackY_138 + 0x38), prVar5 == (re_dfa_t *)0xffffffff))\n                goto LAB_00020f7c;\n                if (prVar27 == (re_dfa_t *)0x0) {\nLAB_00021318:\n                  prVar5 = input;\n                  auStackY_138._44_4_ = prVar34;\n                  auStackY_138._48_4_ = prVar30;\n                  iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n                  prVar34 = input;\n                  if (iVar8 == 0) goto LAB_000213ac;\n                  pprVar1 = (re_node_set **)(auStackY_138._48_4_ + 0x14);\n                  auStackY_138._8_4_ = auStackY_138._48_4_;\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n                  prVar34 = (re_dfa_t *)*(*pprVar1)[(int)input].elems;\n                  prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n                  prVar15 = prVar34;\n                  iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n                  puVar40 = (undefined *)auStackY_138._0_4_;\n                  if (iVar8 != 0) goto LAB_00020ecc;\n                  prVar5 = (re_dfa_t *)\n                           ((int)(auStackY_138._44_4_ + 0x60) +\n                           (int)(*(re_token_t **)auStackY_138._8_4_ + -0xc));\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  prVar30 = (re_dfa_t *)auStackY_138._8_4_;\n                  goto LAB_00020e44;\n                }\n                prVar5 = (re_dfa_t *)\n                         ((int)(auStackY_138._56_4_ + 0x60) + (mctx_01->nodes_alloc - 0x60));\n                auStackY_138._44_4_ = prVar30;\n                auStackY_138._48_4_ = prVar27;\n                iVar8 = (**(code **)(puVar40 + -0x7dd0))(mctx_01->nodes_alloc + bVar23);\n                prVar15 = prVar27;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar30 = (re_dfa_t *)auStackY_138._44_4_;\n                prVar22 = prVar35;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if (iVar8 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              auStackY_138._56_4_ =\n                   (int)(((re_dfa_t *)\n                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))->word_char\n                        + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U;\n              prVar34 = *(re_dfa_t **)(((re_node_set *)&prVar30->nexts)->alloc + (int)input * 4);\n              input = prVar35;\n            }\n            else {\n              prVar5 = (re_dfa_t *)&prVar30->syntax;\n              auStackY_138._48_4_ = prVar30;\n              auStackY_138._44_4_ = prVar34;\n              *(undefined4 *)(puVar41 + 0x10) = auStackY_138._56_4_;\n              prVar15 = input;\n              prVar27 = (re_dfa_t *)\n                        check_node_accept_bytes\n                                  (prVar22,(Idx)prVar5,(re_string_t *)input,(Idx)mctx_01,\n                                   *(re_dfa_t **)(puVar41 + 0x10));\n              prVar30 = (re_dfa_t *)auStackY_138._48_4_;\n              prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (prVar27 != (re_dfa_t *)0x0) goto LAB_00021258;\n              prVar5 = (re_dfa_t *)\n                       ((int)(auStackY_138._44_4_ + 0x60) +\n                       (int)(*(re_token_t **)auStackY_138._48_4_ + -0xc));\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_00020e44:\n              prVar15 = prVar27;\n              auStackY_138._44_4_ = prVar30;\n              auStackY_138._48_4_ = prVar15;\n              _Var14 = check_node_accept((re_match_context_t *)mctx_01,(re_token_t *)prVar5,\n                                         (Idx)prVar15);\n              prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (CONCAT31(extraout_var,_Var14) == 0) goto LAB_00020f6c;\n              auStackY_138._56_4_ = (int)(re_token_t **)auStackY_138._48_4_ + 1;\n              input = (re_dfa_t *)\n                      (((re_node_set *)(auStackY_138._44_4_ + 0xc))->alloc + (int)input * 4);\n              prVar34 = (re_dfa_t *)input->nodes;\n            }\n            if (fs != (re_fail_stack_t *)0x0) {\n              prVar22 = input;\n              if ((mctx_01->mb_cur_max < (int)auStackY_138._56_4_) ||\n                 (iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4), iVar8 == 0))\n              goto LAB_00020f7c;\n              prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n              prVar15 = prVar34;\n              iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (iVar8 == 0) goto LAB_00020f7c;\n            }\n            auStackY_138._64_4_ = 0;\n          }\n          else {\n            prVar34 = (re_dfa_t *)(prVar30->edests + (int)input);\n            iVar13 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n            iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n            prVar5 = input;\n            if (iVar8 == 0) {\nLAB_000213ac:\n              input = prVar34;\n              pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);\n              goto LAB_000213b0;\n            }\n            sVar28 = prVar34->nodes_alloc;\n            input = prVar34;\n            puVar40 = (undefined *)auStackY_138._0_4_;\n            if ((int)sVar28 < 1) goto LAB_00020f6c;\n            uVar33 = *(undefined4 *)(iVar13 + 8);\n            pIVar31 = (Idx *)prVar34->nodes_len;\n            sVar29 = 0;\n            prVar22 = (re_dfa_t *)0xffffffff;\n            prVar35 = (re_dfa_t *)(iVar13 + 0xc);\n            prVar30 = (re_dfa_t *)0xffffffff;\n            do {\n              prVar5 = prVar35;\n              input = (re_dfa_t *)*pIVar31;\n              prVar15 = input;\n              prVar35 = prVar5;\n              iVar8 = (*(code *)auStackY_138._52_4_)(uVar33);\n              prVar34 = prVar30;\n              if ((iVar8 != 0) && (prVar34 = input, prVar30 != prVar22)) {\n                prVar5 = (re_dfa_t *)(auStackY_138 + 0x44);\n                prVar15 = prVar30;\n                iVar8 = (*(code *)auStackY_138._52_4_)(auStackY_138._64_4_);\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if ((iVar8 != 0) || (prVar34 = prVar30, fs == (re_fail_stack_t *)0x0)) break;\n                prVar15 = (re_dfa_t *)fs->num;\n                prVar5 = (re_dfa_t *)((int)&prVar15->nodes + 1);\n                fs->num = (Idx)prVar5;\n                if (prVar5 == (re_dfa_t *)fs->alloc) {\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  prVar5 = (re_dfa_t *)((int)prVar5 * 0x30);\n                  auStackY_138._44_4_ = prVar15;\n                  prVar12 = (re_fail_stack_ent_t *)\n                            (**(code **)(auStackY_138._0_4_ + -0x7e18))(fs->stack);\n                  if (prVar12 != (re_fail_stack_ent_t *)0x0) {\n                    fs->stack = prVar12;\n                    fs->alloc = fs->alloc << 1;\n                    prVar15 = (re_dfa_t *)auStackY_138._44_4_;\n                    prVar34 = (re_dfa_t *)auStackY_138._48_4_;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  prVar12 = fs->stack;\n                  prVar34 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_000210a0:\n                  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7e1c);\n                  auStackY_138._48_4_ = prVar12 + (int)prVar15;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes = (re_token_t *)prVar34;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes_alloc = (size_t)input;\n                  pIVar31 = (Idx *)(*pcVar18)(auStackY_138._28_4_);\n                  *(Idx **)(auStackY_138._48_4_ + 8) = pIVar31;\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  if (pIVar31 != (Idx *)0x0) {\n                    prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                    (**(code **)(auStackY_138._0_4_ + -0x7db8))(pIVar31,context);\n                    prVar5 = (re_dfa_t *)top_node;\n                    prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                    rVar11 = re_node_set_init_copy\n                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node);\n                    prVar34 = prVar30;\n                    puVar40 = (undefined *)auStackY_138._0_4_;\n                    if (rVar11 == _REG_NOERROR) break;\n                  }\n                }\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._68_4_);\n                if (auStackY_138._16_4_ != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              sVar29 = sVar29 + 1;\n              pIVar31 = pIVar31 + 1;\n              prVar30 = prVar34;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n            } while (sVar28 != sVar29);\n          }\nLAB_00020ecc:\n          if ((int)prVar34 < 0) goto LAB_00020f60;\n          prVar35 = (re_dfa_t *)context->nodes_alloc;\n          pcVar18 = *(code **)(puVar40 + -0x7db0);\n          if ((int)prVar35 < (int)auStackY_138._56_4_) break;\n        } while( true );\n      }\n      prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n      (*pcVar18)(auStackY_138._68_4_);\n      if (auStackY_138._16_4_ == 0) {\n        rVar11 = _REG_NOERROR;\n        if (fs == (re_fail_stack_t *)0x0) goto LAB_00020f18;\n      }\n      else {\n        (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n        if (fs == (re_fail_stack_t *)0x0) {\n          rVar11 = _REG_NOERROR;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      free_fail_stack_return(fs);\nLAB_00020f14:\n      rVar11 = _REG_NOERROR;\n      goto LAB_00020f18;\n    }\n  }" { (expression_statement "fs = (re_fail_stack_t *)(auStackY_138 + 0x48);" (assignment_expression "fs = (re_fail_stack_t *)(auStackY_138 + 0x48)" identifier = (cast_expression "(re_fail_stack_t *)(auStackY_138 + 0x48)" ( (type_descriptor "re_fail_stack_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStackY_138 + 0x48)" ( (binary_expression "auStackY_138 + 0x48" identifier + number_literal) )))) ;) (expression_statement "iStackY_e8 = (**(code **)(puVar40 + 0x1b614))(0x30);" (assignment_expression "iStackY_e8 = (**(code **)(puVar40 + 0x1b614))(0x30)" identifier = (call_expression "(**(code **)(puVar40 + 0x1b614))(0x30)" (parenthesized_expression "(**(code **)(puVar40 + 0x1b614))" ( (pointer_expression "**(code **)(puVar40 + 0x1b614)" * (pointer_expression "*(code **)(puVar40 + 0x1b614)" * (cast_expression "(code **)(puVar40 + 0x1b614)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + 0x1b614)" ( (binary_expression "puVar40 + 0x1b614" identifier + number_literal) ))))) )) (argument_list "(0x30)" ( number_literal )))) ;) (expression_statement "puVar43 = auStackY_150;" (assignment_expression "puVar43 = auStackY_150" identifier = identifier) ;) (if_statement "if (iStackY_e8 != 0) {\n      prVar34 = (re_dfa_t *)piVar38[0x12];\n      if (0xfbf < (uint)((int)prVar25 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      auStackY_138._28_4_ = (int)prVar25 << 3;\n      auStackY_138._68_4_ = 0;\n      auStackY_138._64_4_ = 0;\n      auStackY_138._60_4_ = 0;\n      puVar41 = auStackY_150 + (int)prVar25 * -8;\n      auStackY_138._16_4_ = 0;\n      auStackY_138._20_4_ = auStackY_138 + (int)prVar25 * -8;\nLAB_00020d6c:\n      top_node = (Idx)(auStackY_138 + 0x3c);\n      prVar5 = context;\n      prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n      (**(code **)(auStackY_138._0_4_ + -0x7db8))(auStackY_138._20_4_);\n      auStackY_138._56_4_ = (re_dfa_t *)context->nodes;\n      auStackY_138._24_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x12ec);\n      auStackY_138._52_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x5d30);\n      auStackY_138._36_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x7b38);\nLAB_00020db0:\n      prVar35 = (re_dfa_t *)context->nodes_alloc;\n      auStackY_138._40_4_ = *(undefined4 *)(auStackY_138._0_4_ + -0x7ee8);\n      auStackY_138._32_4_ = *(undefined4 *)(auStackY_138._0_4_ + -0x7ee8);\n      pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);\n      puVar40 = (undefined *)auStackY_138._0_4_;\n      puVar42 = puVar41;\n      if ((int)auStackY_138._56_4_ <= (int)prVar35) {\n        do {\n          input = prVar34;\n          prVar34 = (re_dfa_t *)((int)input * 8);\n          prVar15 = (re_dfa_t *)0x8;\n          piVar10 = (int *)((int)prVar34->word_char + *piVar38 + -0x60);\n          prVar5 = (re_dfa_t *)(uint)*(byte *)(piVar10 + 1);\n          prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n          if (prVar5 == (re_dfa_t *)0x8) {\n            iVar8 = *piVar10;\n            prVar5 = (re_dfa_t *)(uint)(iVar8 + 1 < (int)prVar25);\n            if (prVar5 != (re_dfa_t *)0x0) {\n              (context->word_char + iVar8 * 2 + -0x16)[1] = 0xffffffff;\n              context->word_char[iVar8 * 2 + -0x16] = auStackY_138._56_4_;\n              prVar35 = (re_dfa_t *)context->nodes_alloc;\n            }\n          }\n          else {\n            prVar15 = (re_dfa_t *)&DAT_00000009;\n            if (prVar5 == (re_dfa_t *)&DAT_00000009) {\n              prVar15 = (re_dfa_t *)(uint)(*piVar10 + 1 < (int)prVar25);\n              prVar5 = (re_dfa_t *)(*piVar10 * 8 + 8);\n              if (prVar15 != (re_dfa_t *)0x0) {\n                piVar32 = (int *)((int)(((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8) +\n                                 (int)((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))->word_char + 0xffffffa0U);\n                pcVar18 = *(code **)(puVar40 + -0x7db8);\n                if (*piVar32 < (int)auStackY_138._56_4_) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)auStackY_138._20_4_;\n                  prVar5 = context;\n                }\n                else if (((piVar10[1] & 0x1000U) == 0) ||\n                        (pbVar3 = prVar5->word_char, prVar35 = context,\n                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1)) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)context->nodes_alloc;\n                  goto LAB_00020df8;\n                }\n                prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                auStackY_138._44_4_ = prVar34;\n                auStackY_138._48_4_ = auStackY_138._56_4_;\n                (*pcVar18)(prVar35);\n                prVar35 = (re_dfa_t *)context->nodes_alloc;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar34 = (re_dfa_t *)auStackY_138._44_4_;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n              }\n            }\n          }\nLAB_00020df8:\n          uVar33 = auStackY_138._24_4_;\n          if ((prVar27 == prVar35) && ((re_dfa_t *)mctx_01->word_char[0] == input)) {\n            pcVar18 = *(code **)(puVar40 + -0x7db0);\n            if (fs == (re_fail_stack_t *)0x0) {\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ == 0) goto LAB_00020f14;\n              (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              rVar11 = _REG_NOERROR;\n              goto LAB_00020f18;\n            }\n            prVar34 = (re_dfa_t *)0x0;\n            if (prVar25 == (re_dfa_t *)0x0) {\nLAB_000212c0:\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ != 0) {\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              }\n              goto LAB_00020f00;\n            }\n            prVar5 = (re_dfa_t *)0xffffffff;\n            prVar35 = context;\n            while (((int)prVar35->nodes < 0 || (prVar35->nodes_alloc != 0xffffffff))) {\n              prVar34 = (re_dfa_t *)((int)&prVar34->nodes + 1);\n              prVar35 = (re_dfa_t *)&prVar35->nodes_len;\n              if (prVar25 == prVar34) {\n                pcVar18 = *(code **)(puVar40 + -0x7db0);\n                goto LAB_000212c0;\n              }\n            }\n            *(Idx *)(puVar41 + 0x14) = top_node;\n            *(re_dfa_t **)(puVar41 + 0x10) = context;\n            prVar27 = prVar25;\n            input = (re_dfa_t *)(*(code *)uVar33)(fs,&fs->stack,auStackY_138 + 0x38);\n            prVar34 = (re_dfa_t *)((int)input << 3);\n            puVar40 = (undefined *)auStackY_138._0_4_;\n          }\n          prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n          prVar30 = (re_dfa_t *)mctx_01->completed_bkref_map;\n          prVar22 = (re_dfa_t *)prVar30->nodes;\n          prVar5 = (re_dfa_t *)\n                   ((int)(((re_dfa_t *)\n                          (((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))->\n                          word_char + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U);\n          prVar15 = (re_dfa_t *)(uint)*(byte *)&prVar5->nodes_alloc;\n          if ((*(byte *)&prVar5->nodes_alloc & 8) == 0) {\n            if ((prVar5->nodes_alloc & 0x800) == 0) {\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n              if (prVar15 != (re_dfa_t *)0x4) goto LAB_00020e44;\n              pprVar2 = &prVar5->nodes;\n              prVar5 = (re_dfa_t *)(context->word_char + (int)*pprVar2 * 2 + -0x16)[1];\n              bVar23 = context->word_char[(int)*pprVar2 * 2 + -0x16];\n              prVar27 = (re_dfa_t *)((int)prVar5 - bVar23);\n              if (fs == (re_fail_stack_t *)0x0) {\n                if (prVar27 == (re_dfa_t *)0x0) goto LAB_00021318;\n              }\n              else {\n                prVar22 = input;\n                if ((bVar23 == 0xffffffff) ||\n                   (prVar15 = (re_dfa_t *)(auStackY_138 + 0x38), prVar5 == (re_dfa_t *)0xffffffff))\n                goto LAB_00020f7c;\n                if (prVar27 == (re_dfa_t *)0x0) {\nLAB_00021318:\n                  prVar5 = input;\n                  auStackY_138._44_4_ = prVar34;\n                  auStackY_138._48_4_ = prVar30;\n                  iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n                  prVar34 = input;\n                  if (iVar8 == 0) goto LAB_000213ac;\n                  pprVar1 = (re_node_set **)(auStackY_138._48_4_ + 0x14);\n                  auStackY_138._8_4_ = auStackY_138._48_4_;\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n                  prVar34 = (re_dfa_t *)*(*pprVar1)[(int)input].elems;\n                  prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n                  prVar15 = prVar34;\n                  iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n                  puVar40 = (undefined *)auStackY_138._0_4_;\n                  if (iVar8 != 0) goto LAB_00020ecc;\n                  prVar5 = (re_dfa_t *)\n                           ((int)(auStackY_138._44_4_ + 0x60) +\n                           (int)(*(re_token_t **)auStackY_138._8_4_ + -0xc));\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  prVar30 = (re_dfa_t *)auStackY_138._8_4_;\n                  goto LAB_00020e44;\n                }\n                prVar5 = (re_dfa_t *)\n                         ((int)(auStackY_138._56_4_ + 0x60) + (mctx_01->nodes_alloc - 0x60));\n                auStackY_138._44_4_ = prVar30;\n                auStackY_138._48_4_ = prVar27;\n                iVar8 = (**(code **)(puVar40 + -0x7dd0))(mctx_01->nodes_alloc + bVar23);\n                prVar15 = prVar27;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar30 = (re_dfa_t *)auStackY_138._44_4_;\n                prVar22 = prVar35;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if (iVar8 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              auStackY_138._56_4_ =\n                   (int)(((re_dfa_t *)\n                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))->word_char\n                        + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U;\n              prVar34 = *(re_dfa_t **)(((re_node_set *)&prVar30->nexts)->alloc + (int)input * 4);\n              input = prVar35;\n            }\n            else {\n              prVar5 = (re_dfa_t *)&prVar30->syntax;\n              auStackY_138._48_4_ = prVar30;\n              auStackY_138._44_4_ = prVar34;\n              *(undefined4 *)(puVar41 + 0x10) = auStackY_138._56_4_;\n              prVar15 = input;\n              prVar27 = (re_dfa_t *)\n                        check_node_accept_bytes\n                                  (prVar22,(Idx)prVar5,(re_string_t *)input,(Idx)mctx_01,\n                                   *(re_dfa_t **)(puVar41 + 0x10));\n              prVar30 = (re_dfa_t *)auStackY_138._48_4_;\n              prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (prVar27 != (re_dfa_t *)0x0) goto LAB_00021258;\n              prVar5 = (re_dfa_t *)\n                       ((int)(auStackY_138._44_4_ + 0x60) +\n                       (int)(*(re_token_t **)auStackY_138._48_4_ + -0xc));\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_00020e44:\n              prVar15 = prVar27;\n              auStackY_138._44_4_ = prVar30;\n              auStackY_138._48_4_ = prVar15;\n              _Var14 = check_node_accept((re_match_context_t *)mctx_01,(re_token_t *)prVar5,\n                                         (Idx)prVar15);\n              prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (CONCAT31(extraout_var,_Var14) == 0) goto LAB_00020f6c;\n              auStackY_138._56_4_ = (int)(re_token_t **)auStackY_138._48_4_ + 1;\n              input = (re_dfa_t *)\n                      (((re_node_set *)(auStackY_138._44_4_ + 0xc))->alloc + (int)input * 4);\n              prVar34 = (re_dfa_t *)input->nodes;\n            }\n            if (fs != (re_fail_stack_t *)0x0) {\n              prVar22 = input;\n              if ((mctx_01->mb_cur_max < (int)auStackY_138._56_4_) ||\n                 (iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4), iVar8 == 0))\n              goto LAB_00020f7c;\n              prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n              prVar15 = prVar34;\n              iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (iVar8 == 0) goto LAB_00020f7c;\n            }\n            auStackY_138._64_4_ = 0;\n          }\n          else {\n            prVar34 = (re_dfa_t *)(prVar30->edests + (int)input);\n            iVar13 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n            iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n            prVar5 = input;\n            if (iVar8 == 0) {\nLAB_000213ac:\n              input = prVar34;\n              pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);\n              goto LAB_000213b0;\n            }\n            sVar28 = prVar34->nodes_alloc;\n            input = prVar34;\n            puVar40 = (undefined *)auStackY_138._0_4_;\n            if ((int)sVar28 < 1) goto LAB_00020f6c;\n            uVar33 = *(undefined4 *)(iVar13 + 8);\n            pIVar31 = (Idx *)prVar34->nodes_len;\n            sVar29 = 0;\n            prVar22 = (re_dfa_t *)0xffffffff;\n            prVar35 = (re_dfa_t *)(iVar13 + 0xc);\n            prVar30 = (re_dfa_t *)0xffffffff;\n            do {\n              prVar5 = prVar35;\n              input = (re_dfa_t *)*pIVar31;\n              prVar15 = input;\n              prVar35 = prVar5;\n              iVar8 = (*(code *)auStackY_138._52_4_)(uVar33);\n              prVar34 = prVar30;\n              if ((iVar8 != 0) && (prVar34 = input, prVar30 != prVar22)) {\n                prVar5 = (re_dfa_t *)(auStackY_138 + 0x44);\n                prVar15 = prVar30;\n                iVar8 = (*(code *)auStackY_138._52_4_)(auStackY_138._64_4_);\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if ((iVar8 != 0) || (prVar34 = prVar30, fs == (re_fail_stack_t *)0x0)) break;\n                prVar15 = (re_dfa_t *)fs->num;\n                prVar5 = (re_dfa_t *)((int)&prVar15->nodes + 1);\n                fs->num = (Idx)prVar5;\n                if (prVar5 == (re_dfa_t *)fs->alloc) {\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  prVar5 = (re_dfa_t *)((int)prVar5 * 0x30);\n                  auStackY_138._44_4_ = prVar15;\n                  prVar12 = (re_fail_stack_ent_t *)\n                            (**(code **)(auStackY_138._0_4_ + -0x7e18))(fs->stack);\n                  if (prVar12 != (re_fail_stack_ent_t *)0x0) {\n                    fs->stack = prVar12;\n                    fs->alloc = fs->alloc << 1;\n                    prVar15 = (re_dfa_t *)auStackY_138._44_4_;\n                    prVar34 = (re_dfa_t *)auStackY_138._48_4_;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  prVar12 = fs->stack;\n                  prVar34 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_000210a0:\n                  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7e1c);\n                  auStackY_138._48_4_ = prVar12 + (int)prVar15;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes = (re_token_t *)prVar34;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes_alloc = (size_t)input;\n                  pIVar31 = (Idx *)(*pcVar18)(auStackY_138._28_4_);\n                  *(Idx **)(auStackY_138._48_4_ + 8) = pIVar31;\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  if (pIVar31 != (Idx *)0x0) {\n                    prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                    (**(code **)(auStackY_138._0_4_ + -0x7db8))(pIVar31,context);\n                    prVar5 = (re_dfa_t *)top_node;\n                    prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                    rVar11 = re_node_set_init_copy\n                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node);\n                    prVar34 = prVar30;\n                    puVar40 = (undefined *)auStackY_138._0_4_;\n                    if (rVar11 == _REG_NOERROR) break;\n                  }\n                }\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._68_4_);\n                if (auStackY_138._16_4_ != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              sVar29 = sVar29 + 1;\n              pIVar31 = pIVar31 + 1;\n              prVar30 = prVar34;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n            } while (sVar28 != sVar29);\n          }\nLAB_00020ecc:\n          if ((int)prVar34 < 0) goto LAB_00020f60;\n          prVar35 = (re_dfa_t *)context->nodes_alloc;\n          pcVar18 = *(code **)(puVar40 + -0x7db0);\n          if ((int)prVar35 < (int)auStackY_138._56_4_) break;\n        } while( true );\n      }\n      prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n      (*pcVar18)(auStackY_138._68_4_);\n      if (auStackY_138._16_4_ == 0) {\n        rVar11 = _REG_NOERROR;\n        if (fs == (re_fail_stack_t *)0x0) goto LAB_00020f18;\n      }\n      else {\n        (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n        if (fs == (re_fail_stack_t *)0x0) {\n          rVar11 = _REG_NOERROR;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      free_fail_stack_return(fs);\nLAB_00020f14:\n      rVar11 = _REG_NOERROR;\n      goto LAB_00020f18;\n    }" if (parenthesized_expression "(iStackY_e8 != 0)" ( (binary_expression "iStackY_e8 != 0" identifier != number_literal) )) (compound_statement "{\n      prVar34 = (re_dfa_t *)piVar38[0x12];\n      if (0xfbf < (uint)((int)prVar25 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      auStackY_138._28_4_ = (int)prVar25 << 3;\n      auStackY_138._68_4_ = 0;\n      auStackY_138._64_4_ = 0;\n      auStackY_138._60_4_ = 0;\n      puVar41 = auStackY_150 + (int)prVar25 * -8;\n      auStackY_138._16_4_ = 0;\n      auStackY_138._20_4_ = auStackY_138 + (int)prVar25 * -8;\nLAB_00020d6c:\n      top_node = (Idx)(auStackY_138 + 0x3c);\n      prVar5 = context;\n      prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n      (**(code **)(auStackY_138._0_4_ + -0x7db8))(auStackY_138._20_4_);\n      auStackY_138._56_4_ = (re_dfa_t *)context->nodes;\n      auStackY_138._24_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x12ec);\n      auStackY_138._52_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x5d30);\n      auStackY_138._36_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x7b38);\nLAB_00020db0:\n      prVar35 = (re_dfa_t *)context->nodes_alloc;\n      auStackY_138._40_4_ = *(undefined4 *)(auStackY_138._0_4_ + -0x7ee8);\n      auStackY_138._32_4_ = *(undefined4 *)(auStackY_138._0_4_ + -0x7ee8);\n      pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);\n      puVar40 = (undefined *)auStackY_138._0_4_;\n      puVar42 = puVar41;\n      if ((int)auStackY_138._56_4_ <= (int)prVar35) {\n        do {\n          input = prVar34;\n          prVar34 = (re_dfa_t *)((int)input * 8);\n          prVar15 = (re_dfa_t *)0x8;\n          piVar10 = (int *)((int)prVar34->word_char + *piVar38 + -0x60);\n          prVar5 = (re_dfa_t *)(uint)*(byte *)(piVar10 + 1);\n          prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n          if (prVar5 == (re_dfa_t *)0x8) {\n            iVar8 = *piVar10;\n            prVar5 = (re_dfa_t *)(uint)(iVar8 + 1 < (int)prVar25);\n            if (prVar5 != (re_dfa_t *)0x0) {\n              (context->word_char + iVar8 * 2 + -0x16)[1] = 0xffffffff;\n              context->word_char[iVar8 * 2 + -0x16] = auStackY_138._56_4_;\n              prVar35 = (re_dfa_t *)context->nodes_alloc;\n            }\n          }\n          else {\n            prVar15 = (re_dfa_t *)&DAT_00000009;\n            if (prVar5 == (re_dfa_t *)&DAT_00000009) {\n              prVar15 = (re_dfa_t *)(uint)(*piVar10 + 1 < (int)prVar25);\n              prVar5 = (re_dfa_t *)(*piVar10 * 8 + 8);\n              if (prVar15 != (re_dfa_t *)0x0) {\n                piVar32 = (int *)((int)(((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8) +\n                                 (int)((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))->word_char + 0xffffffa0U);\n                pcVar18 = *(code **)(puVar40 + -0x7db8);\n                if (*piVar32 < (int)auStackY_138._56_4_) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)auStackY_138._20_4_;\n                  prVar5 = context;\n                }\n                else if (((piVar10[1] & 0x1000U) == 0) ||\n                        (pbVar3 = prVar5->word_char, prVar35 = context,\n                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1)) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)context->nodes_alloc;\n                  goto LAB_00020df8;\n                }\n                prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                auStackY_138._44_4_ = prVar34;\n                auStackY_138._48_4_ = auStackY_138._56_4_;\n                (*pcVar18)(prVar35);\n                prVar35 = (re_dfa_t *)context->nodes_alloc;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar34 = (re_dfa_t *)auStackY_138._44_4_;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n              }\n            }\n          }\nLAB_00020df8:\n          uVar33 = auStackY_138._24_4_;\n          if ((prVar27 == prVar35) && ((re_dfa_t *)mctx_01->word_char[0] == input)) {\n            pcVar18 = *(code **)(puVar40 + -0x7db0);\n            if (fs == (re_fail_stack_t *)0x0) {\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ == 0) goto LAB_00020f14;\n              (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              rVar11 = _REG_NOERROR;\n              goto LAB_00020f18;\n            }\n            prVar34 = (re_dfa_t *)0x0;\n            if (prVar25 == (re_dfa_t *)0x0) {\nLAB_000212c0:\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ != 0) {\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              }\n              goto LAB_00020f00;\n            }\n            prVar5 = (re_dfa_t *)0xffffffff;\n            prVar35 = context;\n            while (((int)prVar35->nodes < 0 || (prVar35->nodes_alloc != 0xffffffff))) {\n              prVar34 = (re_dfa_t *)((int)&prVar34->nodes + 1);\n              prVar35 = (re_dfa_t *)&prVar35->nodes_len;\n              if (prVar25 == prVar34) {\n                pcVar18 = *(code **)(puVar40 + -0x7db0);\n                goto LAB_000212c0;\n              }\n            }\n            *(Idx *)(puVar41 + 0x14) = top_node;\n            *(re_dfa_t **)(puVar41 + 0x10) = context;\n            prVar27 = prVar25;\n            input = (re_dfa_t *)(*(code *)uVar33)(fs,&fs->stack,auStackY_138 + 0x38);\n            prVar34 = (re_dfa_t *)((int)input << 3);\n            puVar40 = (undefined *)auStackY_138._0_4_;\n          }\n          prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n          prVar30 = (re_dfa_t *)mctx_01->completed_bkref_map;\n          prVar22 = (re_dfa_t *)prVar30->nodes;\n          prVar5 = (re_dfa_t *)\n                   ((int)(((re_dfa_t *)\n                          (((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))->\n                          word_char + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U);\n          prVar15 = (re_dfa_t *)(uint)*(byte *)&prVar5->nodes_alloc;\n          if ((*(byte *)&prVar5->nodes_alloc & 8) == 0) {\n            if ((prVar5->nodes_alloc & 0x800) == 0) {\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n              if (prVar15 != (re_dfa_t *)0x4) goto LAB_00020e44;\n              pprVar2 = &prVar5->nodes;\n              prVar5 = (re_dfa_t *)(context->word_char + (int)*pprVar2 * 2 + -0x16)[1];\n              bVar23 = context->word_char[(int)*pprVar2 * 2 + -0x16];\n              prVar27 = (re_dfa_t *)((int)prVar5 - bVar23);\n              if (fs == (re_fail_stack_t *)0x0) {\n                if (prVar27 == (re_dfa_t *)0x0) goto LAB_00021318;\n              }\n              else {\n                prVar22 = input;\n                if ((bVar23 == 0xffffffff) ||\n                   (prVar15 = (re_dfa_t *)(auStackY_138 + 0x38), prVar5 == (re_dfa_t *)0xffffffff))\n                goto LAB_00020f7c;\n                if (prVar27 == (re_dfa_t *)0x0) {\nLAB_00021318:\n                  prVar5 = input;\n                  auStackY_138._44_4_ = prVar34;\n                  auStackY_138._48_4_ = prVar30;\n                  iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n                  prVar34 = input;\n                  if (iVar8 == 0) goto LAB_000213ac;\n                  pprVar1 = (re_node_set **)(auStackY_138._48_4_ + 0x14);\n                  auStackY_138._8_4_ = auStackY_138._48_4_;\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n                  prVar34 = (re_dfa_t *)*(*pprVar1)[(int)input].elems;\n                  prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n                  prVar15 = prVar34;\n                  iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n                  puVar40 = (undefined *)auStackY_138._0_4_;\n                  if (iVar8 != 0) goto LAB_00020ecc;\n                  prVar5 = (re_dfa_t *)\n                           ((int)(auStackY_138._44_4_ + 0x60) +\n                           (int)(*(re_token_t **)auStackY_138._8_4_ + -0xc));\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  prVar30 = (re_dfa_t *)auStackY_138._8_4_;\n                  goto LAB_00020e44;\n                }\n                prVar5 = (re_dfa_t *)\n                         ((int)(auStackY_138._56_4_ + 0x60) + (mctx_01->nodes_alloc - 0x60));\n                auStackY_138._44_4_ = prVar30;\n                auStackY_138._48_4_ = prVar27;\n                iVar8 = (**(code **)(puVar40 + -0x7dd0))(mctx_01->nodes_alloc + bVar23);\n                prVar15 = prVar27;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar30 = (re_dfa_t *)auStackY_138._44_4_;\n                prVar22 = prVar35;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if (iVar8 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              auStackY_138._56_4_ =\n                   (int)(((re_dfa_t *)\n                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))->word_char\n                        + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U;\n              prVar34 = *(re_dfa_t **)(((re_node_set *)&prVar30->nexts)->alloc + (int)input * 4);\n              input = prVar35;\n            }\n            else {\n              prVar5 = (re_dfa_t *)&prVar30->syntax;\n              auStackY_138._48_4_ = prVar30;\n              auStackY_138._44_4_ = prVar34;\n              *(undefined4 *)(puVar41 + 0x10) = auStackY_138._56_4_;\n              prVar15 = input;\n              prVar27 = (re_dfa_t *)\n                        check_node_accept_bytes\n                                  (prVar22,(Idx)prVar5,(re_string_t *)input,(Idx)mctx_01,\n                                   *(re_dfa_t **)(puVar41 + 0x10));\n              prVar30 = (re_dfa_t *)auStackY_138._48_4_;\n              prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (prVar27 != (re_dfa_t *)0x0) goto LAB_00021258;\n              prVar5 = (re_dfa_t *)\n                       ((int)(auStackY_138._44_4_ + 0x60) +\n                       (int)(*(re_token_t **)auStackY_138._48_4_ + -0xc));\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_00020e44:\n              prVar15 = prVar27;\n              auStackY_138._44_4_ = prVar30;\n              auStackY_138._48_4_ = prVar15;\n              _Var14 = check_node_accept((re_match_context_t *)mctx_01,(re_token_t *)prVar5,\n                                         (Idx)prVar15);\n              prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (CONCAT31(extraout_var,_Var14) == 0) goto LAB_00020f6c;\n              auStackY_138._56_4_ = (int)(re_token_t **)auStackY_138._48_4_ + 1;\n              input = (re_dfa_t *)\n                      (((re_node_set *)(auStackY_138._44_4_ + 0xc))->alloc + (int)input * 4);\n              prVar34 = (re_dfa_t *)input->nodes;\n            }\n            if (fs != (re_fail_stack_t *)0x0) {\n              prVar22 = input;\n              if ((mctx_01->mb_cur_max < (int)auStackY_138._56_4_) ||\n                 (iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4), iVar8 == 0))\n              goto LAB_00020f7c;\n              prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n              prVar15 = prVar34;\n              iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (iVar8 == 0) goto LAB_00020f7c;\n            }\n            auStackY_138._64_4_ = 0;\n          }\n          else {\n            prVar34 = (re_dfa_t *)(prVar30->edests + (int)input);\n            iVar13 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n            iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n            prVar5 = input;\n            if (iVar8 == 0) {\nLAB_000213ac:\n              input = prVar34;\n              pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);\n              goto LAB_000213b0;\n            }\n            sVar28 = prVar34->nodes_alloc;\n            input = prVar34;\n            puVar40 = (undefined *)auStackY_138._0_4_;\n            if ((int)sVar28 < 1) goto LAB_00020f6c;\n            uVar33 = *(undefined4 *)(iVar13 + 8);\n            pIVar31 = (Idx *)prVar34->nodes_len;\n            sVar29 = 0;\n            prVar22 = (re_dfa_t *)0xffffffff;\n            prVar35 = (re_dfa_t *)(iVar13 + 0xc);\n            prVar30 = (re_dfa_t *)0xffffffff;\n            do {\n              prVar5 = prVar35;\n              input = (re_dfa_t *)*pIVar31;\n              prVar15 = input;\n              prVar35 = prVar5;\n              iVar8 = (*(code *)auStackY_138._52_4_)(uVar33);\n              prVar34 = prVar30;\n              if ((iVar8 != 0) && (prVar34 = input, prVar30 != prVar22)) {\n                prVar5 = (re_dfa_t *)(auStackY_138 + 0x44);\n                prVar15 = prVar30;\n                iVar8 = (*(code *)auStackY_138._52_4_)(auStackY_138._64_4_);\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if ((iVar8 != 0) || (prVar34 = prVar30, fs == (re_fail_stack_t *)0x0)) break;\n                prVar15 = (re_dfa_t *)fs->num;\n                prVar5 = (re_dfa_t *)((int)&prVar15->nodes + 1);\n                fs->num = (Idx)prVar5;\n                if (prVar5 == (re_dfa_t *)fs->alloc) {\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  prVar5 = (re_dfa_t *)((int)prVar5 * 0x30);\n                  auStackY_138._44_4_ = prVar15;\n                  prVar12 = (re_fail_stack_ent_t *)\n                            (**(code **)(auStackY_138._0_4_ + -0x7e18))(fs->stack);\n                  if (prVar12 != (re_fail_stack_ent_t *)0x0) {\n                    fs->stack = prVar12;\n                    fs->alloc = fs->alloc << 1;\n                    prVar15 = (re_dfa_t *)auStackY_138._44_4_;\n                    prVar34 = (re_dfa_t *)auStackY_138._48_4_;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  prVar12 = fs->stack;\n                  prVar34 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_000210a0:\n                  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7e1c);\n                  auStackY_138._48_4_ = prVar12 + (int)prVar15;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes = (re_token_t *)prVar34;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes_alloc = (size_t)input;\n                  pIVar31 = (Idx *)(*pcVar18)(auStackY_138._28_4_);\n                  *(Idx **)(auStackY_138._48_4_ + 8) = pIVar31;\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  if (pIVar31 != (Idx *)0x0) {\n                    prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                    (**(code **)(auStackY_138._0_4_ + -0x7db8))(pIVar31,context);\n                    prVar5 = (re_dfa_t *)top_node;\n                    prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                    rVar11 = re_node_set_init_copy\n                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node);\n                    prVar34 = prVar30;\n                    puVar40 = (undefined *)auStackY_138._0_4_;\n                    if (rVar11 == _REG_NOERROR) break;\n                  }\n                }\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._68_4_);\n                if (auStackY_138._16_4_ != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              sVar29 = sVar29 + 1;\n              pIVar31 = pIVar31 + 1;\n              prVar30 = prVar34;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n            } while (sVar28 != sVar29);\n          }\nLAB_00020ecc:\n          if ((int)prVar34 < 0) goto LAB_00020f60;\n          prVar35 = (re_dfa_t *)context->nodes_alloc;\n          pcVar18 = *(code **)(puVar40 + -0x7db0);\n          if ((int)prVar35 < (int)auStackY_138._56_4_) break;\n        } while( true );\n      }\n      prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n      (*pcVar18)(auStackY_138._68_4_);\n      if (auStackY_138._16_4_ == 0) {\n        rVar11 = _REG_NOERROR;\n        if (fs == (re_fail_stack_t *)0x0) goto LAB_00020f18;\n      }\n      else {\n        (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n        if (fs == (re_fail_stack_t *)0x0) {\n          rVar11 = _REG_NOERROR;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      free_fail_stack_return(fs);\nLAB_00020f14:\n      rVar11 = _REG_NOERROR;\n      goto LAB_00020f18;\n    }" { (expression_statement "prVar34 = (re_dfa_t *)piVar38[0x12];" (assignment_expression "prVar34 = (re_dfa_t *)piVar38[0x12]" identifier = (cast_expression "(re_dfa_t *)piVar38[0x12]" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar38[0x12]" identifier [ number_literal ]))) ;) (if_statement "if (0xfbf < (uint)((int)prVar25 << 3)) goto LAB_00021488;" if (parenthesized_expression "(0xfbf < (uint)((int)prVar25 << 3))" ( (binary_expression "0xfbf < (uint)((int)prVar25 << 3)" number_literal < (call_expression "(uint)((int)prVar25 << 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)prVar25 << 3)" ( (binary_expression "(int)prVar25 << 3" (cast_expression "(int)prVar25" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) )) (goto_statement "goto LAB_00021488;" goto statement_identifier ;)) (labeled_statement "LAB_00020d5c:\n      auStackY_138._28_4_ = (int)prVar25 << 3;" statement_identifier : (expression_statement "auStackY_138._28_4_ = (int)prVar25 << 3;" (assignment_expression "auStackY_138._28_4_ = (int)prVar25 << 3" (field_expression "auStackY_138._28_4_" identifier . field_identifier) = (binary_expression "(int)prVar25 << 3" (cast_expression "(int)prVar25" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;)) (expression_statement "auStackY_138._68_4_ = 0;" (assignment_expression "auStackY_138._68_4_ = 0" (field_expression "auStackY_138._68_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "auStackY_138._64_4_ = 0;" (assignment_expression "auStackY_138._64_4_ = 0" (field_expression "auStackY_138._64_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "auStackY_138._60_4_ = 0;" (assignment_expression "auStackY_138._60_4_ = 0" (field_expression "auStackY_138._60_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "puVar41 = auStackY_150 + (int)prVar25 * -8;" (assignment_expression "puVar41 = auStackY_150 + (int)prVar25 * -8" identifier = (binary_expression "auStackY_150 + (int)prVar25 * -8" identifier + (binary_expression "(int)prVar25 * -8" (cast_expression "(int)prVar25" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "auStackY_138._16_4_ = 0;" (assignment_expression "auStackY_138._16_4_ = 0" (field_expression "auStackY_138._16_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "auStackY_138._20_4_ = auStackY_138 + (int)prVar25 * -8;" (assignment_expression "auStackY_138._20_4_ = auStackY_138 + (int)prVar25 * -8" (field_expression "auStackY_138._20_4_" identifier . field_identifier) = (binary_expression "auStackY_138 + (int)prVar25 * -8" identifier + (binary_expression "(int)prVar25 * -8" (cast_expression "(int)prVar25" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (labeled_statement "LAB_00020d6c:\n      top_node = (Idx)(auStackY_138 + 0x3c);" statement_identifier : (expression_statement "top_node = (Idx)(auStackY_138 + 0x3c);" (assignment_expression "top_node = (Idx)(auStackY_138 + 0x3c)" identifier = (call_expression "(Idx)(auStackY_138 + 0x3c)" (parenthesized_expression "(Idx)" ( identifier )) (argument_list "(auStackY_138 + 0x3c)" ( (binary_expression "auStackY_138 + 0x3c" identifier + number_literal) )))) ;)) (expression_statement "prVar5 = context;" (assignment_expression "prVar5 = context" identifier = identifier) ;) (expression_statement "prVar15 = (re_dfa_t *)auStackY_138._28_4_;" (assignment_expression "prVar15 = (re_dfa_t *)auStackY_138._28_4_" identifier = (cast_expression "(re_dfa_t *)auStackY_138._28_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._28_4_" identifier . field_identifier))) ;) (expression_statement "(**(code **)(auStackY_138._0_4_ + -0x7db8))(auStackY_138._20_4_);" (call_expression "(**(code **)(auStackY_138._0_4_ + -0x7db8))(auStackY_138._20_4_)" (parenthesized_expression "(**(code **)(auStackY_138._0_4_ + -0x7db8))" ( (pointer_expression "**(code **)(auStackY_138._0_4_ + -0x7db8)" * (pointer_expression "*(code **)(auStackY_138._0_4_ + -0x7db8)" * (cast_expression "(code **)(auStackY_138._0_4_ + -0x7db8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStackY_138._0_4_ + -0x7db8)" ( (binary_expression "auStackY_138._0_4_ + -0x7db8" (field_expression "auStackY_138._0_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(auStackY_138._20_4_)" ( (field_expression "auStackY_138._20_4_" identifier . field_identifier) ))) ;) (expression_statement "auStackY_138._56_4_ = (re_dfa_t *)context->nodes;" (assignment_expression "auStackY_138._56_4_ = (re_dfa_t *)context->nodes" (field_expression "auStackY_138._56_4_" identifier . field_identifier) = (cast_expression "(re_dfa_t *)context->nodes" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "context->nodes" identifier -> field_identifier))) ;) (expression_statement "auStackY_138._24_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x12ec);" (assignment_expression "auStackY_138._24_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x12ec)" (field_expression "auStackY_138._24_4_" identifier . field_identifier) = (cast_expression "(code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x12ec)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x12ec)" ( (binary_expression "*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x12ec" (pointer_expression "*(int *)(auStackY_138._0_4_ + -0x7ee8)" * (cast_expression "(int *)(auStackY_138._0_4_ + -0x7ee8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStackY_138._0_4_ + -0x7ee8)" ( (binary_expression "auStackY_138._0_4_ + -0x7ee8" (field_expression "auStackY_138._0_4_" identifier . field_identifier) + number_literal) )))) + number_literal) )))) ;) (expression_statement "auStackY_138._52_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x5d30);" (assignment_expression "auStackY_138._52_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x5d30)" (field_expression "auStackY_138._52_4_" identifier . field_identifier) = (cast_expression "(code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x5d30)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x5d30)" ( (binary_expression "*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x5d30" (pointer_expression "*(int *)(auStackY_138._0_4_ + -0x7ee8)" * (cast_expression "(int *)(auStackY_138._0_4_ + -0x7ee8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStackY_138._0_4_ + -0x7ee8)" ( (binary_expression "auStackY_138._0_4_ + -0x7ee8" (field_expression "auStackY_138._0_4_" identifier . field_identifier) + number_literal) )))) + number_literal) )))) ;) (expression_statement "auStackY_138._36_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x7b38);" (assignment_expression "auStackY_138._36_4_ = (code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x7b38)" (field_expression "auStackY_138._36_4_" identifier . field_identifier) = (cast_expression "(code *)(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x7b38)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x7b38)" ( (binary_expression "*(int *)(auStackY_138._0_4_ + -0x7ee8) + -0x7b38" (pointer_expression "*(int *)(auStackY_138._0_4_ + -0x7ee8)" * (cast_expression "(int *)(auStackY_138._0_4_ + -0x7ee8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStackY_138._0_4_ + -0x7ee8)" ( (binary_expression "auStackY_138._0_4_ + -0x7ee8" (field_expression "auStackY_138._0_4_" identifier . field_identifier) + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_00020db0:\n      prVar35 = (re_dfa_t *)context->nodes_alloc;" statement_identifier : (expression_statement "prVar35 = (re_dfa_t *)context->nodes_alloc;" (assignment_expression "prVar35 = (re_dfa_t *)context->nodes_alloc" identifier = (cast_expression "(re_dfa_t *)context->nodes_alloc" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "context->nodes_alloc" identifier -> field_identifier))) ;)) (expression_statement "auStackY_138._40_4_ = *(undefined4 *)(auStackY_138._0_4_ + -0x7ee8);" (assignment_expression "auStackY_138._40_4_ = *(undefined4 *)(auStackY_138._0_4_ + -0x7ee8)" (field_expression "auStackY_138._40_4_" identifier . field_identifier) = (pointer_expression "*(undefined4 *)(auStackY_138._0_4_ + -0x7ee8)" * (cast_expression "(undefined4 *)(auStackY_138._0_4_ + -0x7ee8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStackY_138._0_4_ + -0x7ee8)" ( (binary_expression "auStackY_138._0_4_ + -0x7ee8" (field_expression "auStackY_138._0_4_" identifier . field_identifier) + number_literal) ))))) ;) (expression_statement "auStackY_138._32_4_ = *(undefined4 *)(auStackY_138._0_4_ + -0x7ee8);" (assignment_expression "auStackY_138._32_4_ = *(undefined4 *)(auStackY_138._0_4_ + -0x7ee8)" (field_expression "auStackY_138._32_4_" identifier . field_identifier) = (pointer_expression "*(undefined4 *)(auStackY_138._0_4_ + -0x7ee8)" * (cast_expression "(undefined4 *)(auStackY_138._0_4_ + -0x7ee8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStackY_138._0_4_ + -0x7ee8)" ( (binary_expression "auStackY_138._0_4_ + -0x7ee8" (field_expression "auStackY_138._0_4_" identifier . field_identifier) + number_literal) ))))) ;) (expression_statement "pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);" (assignment_expression "pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0)" identifier = (pointer_expression "*(code **)(auStackY_138._0_4_ + -0x7db0)" * (cast_expression "(code **)(auStackY_138._0_4_ + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStackY_138._0_4_ + -0x7db0)" ( (binary_expression "auStackY_138._0_4_ + -0x7db0" (field_expression "auStackY_138._0_4_" identifier . field_identifier) + number_literal) ))))) ;) (expression_statement "puVar40 = (undefined *)auStackY_138._0_4_;" (assignment_expression "puVar40 = (undefined *)auStackY_138._0_4_" identifier = (cast_expression "(undefined *)auStackY_138._0_4_" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._0_4_" identifier . field_identifier))) ;) (expression_statement "puVar42 = puVar41;" (assignment_expression "puVar42 = puVar41" identifier = identifier) ;) (if_statement "if ((int)auStackY_138._56_4_ <= (int)prVar35) {\n        do {\n          input = prVar34;\n          prVar34 = (re_dfa_t *)((int)input * 8);\n          prVar15 = (re_dfa_t *)0x8;\n          piVar10 = (int *)((int)prVar34->word_char + *piVar38 + -0x60);\n          prVar5 = (re_dfa_t *)(uint)*(byte *)(piVar10 + 1);\n          prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n          if (prVar5 == (re_dfa_t *)0x8) {\n            iVar8 = *piVar10;\n            prVar5 = (re_dfa_t *)(uint)(iVar8 + 1 < (int)prVar25);\n            if (prVar5 != (re_dfa_t *)0x0) {\n              (context->word_char + iVar8 * 2 + -0x16)[1] = 0xffffffff;\n              context->word_char[iVar8 * 2 + -0x16] = auStackY_138._56_4_;\n              prVar35 = (re_dfa_t *)context->nodes_alloc;\n            }\n          }\n          else {\n            prVar15 = (re_dfa_t *)&DAT_00000009;\n            if (prVar5 == (re_dfa_t *)&DAT_00000009) {\n              prVar15 = (re_dfa_t *)(uint)(*piVar10 + 1 < (int)prVar25);\n              prVar5 = (re_dfa_t *)(*piVar10 * 8 + 8);\n              if (prVar15 != (re_dfa_t *)0x0) {\n                piVar32 = (int *)((int)(((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8) +\n                                 (int)((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))->word_char + 0xffffffa0U);\n                pcVar18 = *(code **)(puVar40 + -0x7db8);\n                if (*piVar32 < (int)auStackY_138._56_4_) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)auStackY_138._20_4_;\n                  prVar5 = context;\n                }\n                else if (((piVar10[1] & 0x1000U) == 0) ||\n                        (pbVar3 = prVar5->word_char, prVar35 = context,\n                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1)) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)context->nodes_alloc;\n                  goto LAB_00020df8;\n                }\n                prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                auStackY_138._44_4_ = prVar34;\n                auStackY_138._48_4_ = auStackY_138._56_4_;\n                (*pcVar18)(prVar35);\n                prVar35 = (re_dfa_t *)context->nodes_alloc;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar34 = (re_dfa_t *)auStackY_138._44_4_;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n              }\n            }\n          }\nLAB_00020df8:\n          uVar33 = auStackY_138._24_4_;\n          if ((prVar27 == prVar35) && ((re_dfa_t *)mctx_01->word_char[0] == input)) {\n            pcVar18 = *(code **)(puVar40 + -0x7db0);\n            if (fs == (re_fail_stack_t *)0x0) {\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ == 0) goto LAB_00020f14;\n              (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              rVar11 = _REG_NOERROR;\n              goto LAB_00020f18;\n            }\n            prVar34 = (re_dfa_t *)0x0;\n            if (prVar25 == (re_dfa_t *)0x0) {\nLAB_000212c0:\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ != 0) {\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              }\n              goto LAB_00020f00;\n            }\n            prVar5 = (re_dfa_t *)0xffffffff;\n            prVar35 = context;\n            while (((int)prVar35->nodes < 0 || (prVar35->nodes_alloc != 0xffffffff))) {\n              prVar34 = (re_dfa_t *)((int)&prVar34->nodes + 1);\n              prVar35 = (re_dfa_t *)&prVar35->nodes_len;\n              if (prVar25 == prVar34) {\n                pcVar18 = *(code **)(puVar40 + -0x7db0);\n                goto LAB_000212c0;\n              }\n            }\n            *(Idx *)(puVar41 + 0x14) = top_node;\n            *(re_dfa_t **)(puVar41 + 0x10) = context;\n            prVar27 = prVar25;\n            input = (re_dfa_t *)(*(code *)uVar33)(fs,&fs->stack,auStackY_138 + 0x38);\n            prVar34 = (re_dfa_t *)((int)input << 3);\n            puVar40 = (undefined *)auStackY_138._0_4_;\n          }\n          prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n          prVar30 = (re_dfa_t *)mctx_01->completed_bkref_map;\n          prVar22 = (re_dfa_t *)prVar30->nodes;\n          prVar5 = (re_dfa_t *)\n                   ((int)(((re_dfa_t *)\n                          (((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))->\n                          word_char + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U);\n          prVar15 = (re_dfa_t *)(uint)*(byte *)&prVar5->nodes_alloc;\n          if ((*(byte *)&prVar5->nodes_alloc & 8) == 0) {\n            if ((prVar5->nodes_alloc & 0x800) == 0) {\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n              if (prVar15 != (re_dfa_t *)0x4) goto LAB_00020e44;\n              pprVar2 = &prVar5->nodes;\n              prVar5 = (re_dfa_t *)(context->word_char + (int)*pprVar2 * 2 + -0x16)[1];\n              bVar23 = context->word_char[(int)*pprVar2 * 2 + -0x16];\n              prVar27 = (re_dfa_t *)((int)prVar5 - bVar23);\n              if (fs == (re_fail_stack_t *)0x0) {\n                if (prVar27 == (re_dfa_t *)0x0) goto LAB_00021318;\n              }\n              else {\n                prVar22 = input;\n                if ((bVar23 == 0xffffffff) ||\n                   (prVar15 = (re_dfa_t *)(auStackY_138 + 0x38), prVar5 == (re_dfa_t *)0xffffffff))\n                goto LAB_00020f7c;\n                if (prVar27 == (re_dfa_t *)0x0) {\nLAB_00021318:\n                  prVar5 = input;\n                  auStackY_138._44_4_ = prVar34;\n                  auStackY_138._48_4_ = prVar30;\n                  iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n                  prVar34 = input;\n                  if (iVar8 == 0) goto LAB_000213ac;\n                  pprVar1 = (re_node_set **)(auStackY_138._48_4_ + 0x14);\n                  auStackY_138._8_4_ = auStackY_138._48_4_;\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n                  prVar34 = (re_dfa_t *)*(*pprVar1)[(int)input].elems;\n                  prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n                  prVar15 = prVar34;\n                  iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n                  puVar40 = (undefined *)auStackY_138._0_4_;\n                  if (iVar8 != 0) goto LAB_00020ecc;\n                  prVar5 = (re_dfa_t *)\n                           ((int)(auStackY_138._44_4_ + 0x60) +\n                           (int)(*(re_token_t **)auStackY_138._8_4_ + -0xc));\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  prVar30 = (re_dfa_t *)auStackY_138._8_4_;\n                  goto LAB_00020e44;\n                }\n                prVar5 = (re_dfa_t *)\n                         ((int)(auStackY_138._56_4_ + 0x60) + (mctx_01->nodes_alloc - 0x60));\n                auStackY_138._44_4_ = prVar30;\n                auStackY_138._48_4_ = prVar27;\n                iVar8 = (**(code **)(puVar40 + -0x7dd0))(mctx_01->nodes_alloc + bVar23);\n                prVar15 = prVar27;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar30 = (re_dfa_t *)auStackY_138._44_4_;\n                prVar22 = prVar35;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if (iVar8 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              auStackY_138._56_4_ =\n                   (int)(((re_dfa_t *)\n                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))->word_char\n                        + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U;\n              prVar34 = *(re_dfa_t **)(((re_node_set *)&prVar30->nexts)->alloc + (int)input * 4);\n              input = prVar35;\n            }\n            else {\n              prVar5 = (re_dfa_t *)&prVar30->syntax;\n              auStackY_138._48_4_ = prVar30;\n              auStackY_138._44_4_ = prVar34;\n              *(undefined4 *)(puVar41 + 0x10) = auStackY_138._56_4_;\n              prVar15 = input;\n              prVar27 = (re_dfa_t *)\n                        check_node_accept_bytes\n                                  (prVar22,(Idx)prVar5,(re_string_t *)input,(Idx)mctx_01,\n                                   *(re_dfa_t **)(puVar41 + 0x10));\n              prVar30 = (re_dfa_t *)auStackY_138._48_4_;\n              prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (prVar27 != (re_dfa_t *)0x0) goto LAB_00021258;\n              prVar5 = (re_dfa_t *)\n                       ((int)(auStackY_138._44_4_ + 0x60) +\n                       (int)(*(re_token_t **)auStackY_138._48_4_ + -0xc));\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_00020e44:\n              prVar15 = prVar27;\n              auStackY_138._44_4_ = prVar30;\n              auStackY_138._48_4_ = prVar15;\n              _Var14 = check_node_accept((re_match_context_t *)mctx_01,(re_token_t *)prVar5,\n                                         (Idx)prVar15);\n              prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (CONCAT31(extraout_var,_Var14) == 0) goto LAB_00020f6c;\n              auStackY_138._56_4_ = (int)(re_token_t **)auStackY_138._48_4_ + 1;\n              input = (re_dfa_t *)\n                      (((re_node_set *)(auStackY_138._44_4_ + 0xc))->alloc + (int)input * 4);\n              prVar34 = (re_dfa_t *)input->nodes;\n            }\n            if (fs != (re_fail_stack_t *)0x0) {\n              prVar22 = input;\n              if ((mctx_01->mb_cur_max < (int)auStackY_138._56_4_) ||\n                 (iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4), iVar8 == 0))\n              goto LAB_00020f7c;\n              prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n              prVar15 = prVar34;\n              iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (iVar8 == 0) goto LAB_00020f7c;\n            }\n            auStackY_138._64_4_ = 0;\n          }\n          else {\n            prVar34 = (re_dfa_t *)(prVar30->edests + (int)input);\n            iVar13 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n            iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n            prVar5 = input;\n            if (iVar8 == 0) {\nLAB_000213ac:\n              input = prVar34;\n              pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);\n              goto LAB_000213b0;\n            }\n            sVar28 = prVar34->nodes_alloc;\n            input = prVar34;\n            puVar40 = (undefined *)auStackY_138._0_4_;\n            if ((int)sVar28 < 1) goto LAB_00020f6c;\n            uVar33 = *(undefined4 *)(iVar13 + 8);\n            pIVar31 = (Idx *)prVar34->nodes_len;\n            sVar29 = 0;\n            prVar22 = (re_dfa_t *)0xffffffff;\n            prVar35 = (re_dfa_t *)(iVar13 + 0xc);\n            prVar30 = (re_dfa_t *)0xffffffff;\n            do {\n              prVar5 = prVar35;\n              input = (re_dfa_t *)*pIVar31;\n              prVar15 = input;\n              prVar35 = prVar5;\n              iVar8 = (*(code *)auStackY_138._52_4_)(uVar33);\n              prVar34 = prVar30;\n              if ((iVar8 != 0) && (prVar34 = input, prVar30 != prVar22)) {\n                prVar5 = (re_dfa_t *)(auStackY_138 + 0x44);\n                prVar15 = prVar30;\n                iVar8 = (*(code *)auStackY_138._52_4_)(auStackY_138._64_4_);\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if ((iVar8 != 0) || (prVar34 = prVar30, fs == (re_fail_stack_t *)0x0)) break;\n                prVar15 = (re_dfa_t *)fs->num;\n                prVar5 = (re_dfa_t *)((int)&prVar15->nodes + 1);\n                fs->num = (Idx)prVar5;\n                if (prVar5 == (re_dfa_t *)fs->alloc) {\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  prVar5 = (re_dfa_t *)((int)prVar5 * 0x30);\n                  auStackY_138._44_4_ = prVar15;\n                  prVar12 = (re_fail_stack_ent_t *)\n                            (**(code **)(auStackY_138._0_4_ + -0x7e18))(fs->stack);\n                  if (prVar12 != (re_fail_stack_ent_t *)0x0) {\n                    fs->stack = prVar12;\n                    fs->alloc = fs->alloc << 1;\n                    prVar15 = (re_dfa_t *)auStackY_138._44_4_;\n                    prVar34 = (re_dfa_t *)auStackY_138._48_4_;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  prVar12 = fs->stack;\n                  prVar34 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_000210a0:\n                  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7e1c);\n                  auStackY_138._48_4_ = prVar12 + (int)prVar15;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes = (re_token_t *)prVar34;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes_alloc = (size_t)input;\n                  pIVar31 = (Idx *)(*pcVar18)(auStackY_138._28_4_);\n                  *(Idx **)(auStackY_138._48_4_ + 8) = pIVar31;\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  if (pIVar31 != (Idx *)0x0) {\n                    prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                    (**(code **)(auStackY_138._0_4_ + -0x7db8))(pIVar31,context);\n                    prVar5 = (re_dfa_t *)top_node;\n                    prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                    rVar11 = re_node_set_init_copy\n                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node);\n                    prVar34 = prVar30;\n                    puVar40 = (undefined *)auStackY_138._0_4_;\n                    if (rVar11 == _REG_NOERROR) break;\n                  }\n                }\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._68_4_);\n                if (auStackY_138._16_4_ != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              sVar29 = sVar29 + 1;\n              pIVar31 = pIVar31 + 1;\n              prVar30 = prVar34;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n            } while (sVar28 != sVar29);\n          }\nLAB_00020ecc:\n          if ((int)prVar34 < 0) goto LAB_00020f60;\n          prVar35 = (re_dfa_t *)context->nodes_alloc;\n          pcVar18 = *(code **)(puVar40 + -0x7db0);\n          if ((int)prVar35 < (int)auStackY_138._56_4_) break;\n        } while( true );\n      }" if (parenthesized_expression "((int)auStackY_138._56_4_ <= (int)prVar35)" ( (binary_expression "(int)auStackY_138._56_4_ <= (int)prVar35" (cast_expression "(int)auStackY_138._56_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "auStackY_138._56_4_" identifier . field_identifier)) <= (cast_expression "(int)prVar35" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        do {\n          input = prVar34;\n          prVar34 = (re_dfa_t *)((int)input * 8);\n          prVar15 = (re_dfa_t *)0x8;\n          piVar10 = (int *)((int)prVar34->word_char + *piVar38 + -0x60);\n          prVar5 = (re_dfa_t *)(uint)*(byte *)(piVar10 + 1);\n          prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n          if (prVar5 == (re_dfa_t *)0x8) {\n            iVar8 = *piVar10;\n            prVar5 = (re_dfa_t *)(uint)(iVar8 + 1 < (int)prVar25);\n            if (prVar5 != (re_dfa_t *)0x0) {\n              (context->word_char + iVar8 * 2 + -0x16)[1] = 0xffffffff;\n              context->word_char[iVar8 * 2 + -0x16] = auStackY_138._56_4_;\n              prVar35 = (re_dfa_t *)context->nodes_alloc;\n            }\n          }\n          else {\n            prVar15 = (re_dfa_t *)&DAT_00000009;\n            if (prVar5 == (re_dfa_t *)&DAT_00000009) {\n              prVar15 = (re_dfa_t *)(uint)(*piVar10 + 1 < (int)prVar25);\n              prVar5 = (re_dfa_t *)(*piVar10 * 8 + 8);\n              if (prVar15 != (re_dfa_t *)0x0) {\n                piVar32 = (int *)((int)(((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8) +\n                                 (int)((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))->word_char + 0xffffffa0U);\n                pcVar18 = *(code **)(puVar40 + -0x7db8);\n                if (*piVar32 < (int)auStackY_138._56_4_) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)auStackY_138._20_4_;\n                  prVar5 = context;\n                }\n                else if (((piVar10[1] & 0x1000U) == 0) ||\n                        (pbVar3 = prVar5->word_char, prVar35 = context,\n                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1)) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)context->nodes_alloc;\n                  goto LAB_00020df8;\n                }\n                prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                auStackY_138._44_4_ = prVar34;\n                auStackY_138._48_4_ = auStackY_138._56_4_;\n                (*pcVar18)(prVar35);\n                prVar35 = (re_dfa_t *)context->nodes_alloc;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar34 = (re_dfa_t *)auStackY_138._44_4_;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n              }\n            }\n          }\nLAB_00020df8:\n          uVar33 = auStackY_138._24_4_;\n          if ((prVar27 == prVar35) && ((re_dfa_t *)mctx_01->word_char[0] == input)) {\n            pcVar18 = *(code **)(puVar40 + -0x7db0);\n            if (fs == (re_fail_stack_t *)0x0) {\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ == 0) goto LAB_00020f14;\n              (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              rVar11 = _REG_NOERROR;\n              goto LAB_00020f18;\n            }\n            prVar34 = (re_dfa_t *)0x0;\n            if (prVar25 == (re_dfa_t *)0x0) {\nLAB_000212c0:\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ != 0) {\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              }\n              goto LAB_00020f00;\n            }\n            prVar5 = (re_dfa_t *)0xffffffff;\n            prVar35 = context;\n            while (((int)prVar35->nodes < 0 || (prVar35->nodes_alloc != 0xffffffff))) {\n              prVar34 = (re_dfa_t *)((int)&prVar34->nodes + 1);\n              prVar35 = (re_dfa_t *)&prVar35->nodes_len;\n              if (prVar25 == prVar34) {\n                pcVar18 = *(code **)(puVar40 + -0x7db0);\n                goto LAB_000212c0;\n              }\n            }\n            *(Idx *)(puVar41 + 0x14) = top_node;\n            *(re_dfa_t **)(puVar41 + 0x10) = context;\n            prVar27 = prVar25;\n            input = (re_dfa_t *)(*(code *)uVar33)(fs,&fs->stack,auStackY_138 + 0x38);\n            prVar34 = (re_dfa_t *)((int)input << 3);\n            puVar40 = (undefined *)auStackY_138._0_4_;\n          }\n          prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n          prVar30 = (re_dfa_t *)mctx_01->completed_bkref_map;\n          prVar22 = (re_dfa_t *)prVar30->nodes;\n          prVar5 = (re_dfa_t *)\n                   ((int)(((re_dfa_t *)\n                          (((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))->\n                          word_char + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U);\n          prVar15 = (re_dfa_t *)(uint)*(byte *)&prVar5->nodes_alloc;\n          if ((*(byte *)&prVar5->nodes_alloc & 8) == 0) {\n            if ((prVar5->nodes_alloc & 0x800) == 0) {\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n              if (prVar15 != (re_dfa_t *)0x4) goto LAB_00020e44;\n              pprVar2 = &prVar5->nodes;\n              prVar5 = (re_dfa_t *)(context->word_char + (int)*pprVar2 * 2 + -0x16)[1];\n              bVar23 = context->word_char[(int)*pprVar2 * 2 + -0x16];\n              prVar27 = (re_dfa_t *)((int)prVar5 - bVar23);\n              if (fs == (re_fail_stack_t *)0x0) {\n                if (prVar27 == (re_dfa_t *)0x0) goto LAB_00021318;\n              }\n              else {\n                prVar22 = input;\n                if ((bVar23 == 0xffffffff) ||\n                   (prVar15 = (re_dfa_t *)(auStackY_138 + 0x38), prVar5 == (re_dfa_t *)0xffffffff))\n                goto LAB_00020f7c;\n                if (prVar27 == (re_dfa_t *)0x0) {\nLAB_00021318:\n                  prVar5 = input;\n                  auStackY_138._44_4_ = prVar34;\n                  auStackY_138._48_4_ = prVar30;\n                  iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n                  prVar34 = input;\n                  if (iVar8 == 0) goto LAB_000213ac;\n                  pprVar1 = (re_node_set **)(auStackY_138._48_4_ + 0x14);\n                  auStackY_138._8_4_ = auStackY_138._48_4_;\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n                  prVar34 = (re_dfa_t *)*(*pprVar1)[(int)input].elems;\n                  prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n                  prVar15 = prVar34;\n                  iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n                  puVar40 = (undefined *)auStackY_138._0_4_;\n                  if (iVar8 != 0) goto LAB_00020ecc;\n                  prVar5 = (re_dfa_t *)\n                           ((int)(auStackY_138._44_4_ + 0x60) +\n                           (int)(*(re_token_t **)auStackY_138._8_4_ + -0xc));\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  prVar30 = (re_dfa_t *)auStackY_138._8_4_;\n                  goto LAB_00020e44;\n                }\n                prVar5 = (re_dfa_t *)\n                         ((int)(auStackY_138._56_4_ + 0x60) + (mctx_01->nodes_alloc - 0x60));\n                auStackY_138._44_4_ = prVar30;\n                auStackY_138._48_4_ = prVar27;\n                iVar8 = (**(code **)(puVar40 + -0x7dd0))(mctx_01->nodes_alloc + bVar23);\n                prVar15 = prVar27;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar30 = (re_dfa_t *)auStackY_138._44_4_;\n                prVar22 = prVar35;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if (iVar8 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              auStackY_138._56_4_ =\n                   (int)(((re_dfa_t *)\n                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))->word_char\n                        + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U;\n              prVar34 = *(re_dfa_t **)(((re_node_set *)&prVar30->nexts)->alloc + (int)input * 4);\n              input = prVar35;\n            }\n            else {\n              prVar5 = (re_dfa_t *)&prVar30->syntax;\n              auStackY_138._48_4_ = prVar30;\n              auStackY_138._44_4_ = prVar34;\n              *(undefined4 *)(puVar41 + 0x10) = auStackY_138._56_4_;\n              prVar15 = input;\n              prVar27 = (re_dfa_t *)\n                        check_node_accept_bytes\n                                  (prVar22,(Idx)prVar5,(re_string_t *)input,(Idx)mctx_01,\n                                   *(re_dfa_t **)(puVar41 + 0x10));\n              prVar30 = (re_dfa_t *)auStackY_138._48_4_;\n              prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (prVar27 != (re_dfa_t *)0x0) goto LAB_00021258;\n              prVar5 = (re_dfa_t *)\n                       ((int)(auStackY_138._44_4_ + 0x60) +\n                       (int)(*(re_token_t **)auStackY_138._48_4_ + -0xc));\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_00020e44:\n              prVar15 = prVar27;\n              auStackY_138._44_4_ = prVar30;\n              auStackY_138._48_4_ = prVar15;\n              _Var14 = check_node_accept((re_match_context_t *)mctx_01,(re_token_t *)prVar5,\n                                         (Idx)prVar15);\n              prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (CONCAT31(extraout_var,_Var14) == 0) goto LAB_00020f6c;\n              auStackY_138._56_4_ = (int)(re_token_t **)auStackY_138._48_4_ + 1;\n              input = (re_dfa_t *)\n                      (((re_node_set *)(auStackY_138._44_4_ + 0xc))->alloc + (int)input * 4);\n              prVar34 = (re_dfa_t *)input->nodes;\n            }\n            if (fs != (re_fail_stack_t *)0x0) {\n              prVar22 = input;\n              if ((mctx_01->mb_cur_max < (int)auStackY_138._56_4_) ||\n                 (iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4), iVar8 == 0))\n              goto LAB_00020f7c;\n              prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n              prVar15 = prVar34;\n              iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (iVar8 == 0) goto LAB_00020f7c;\n            }\n            auStackY_138._64_4_ = 0;\n          }\n          else {\n            prVar34 = (re_dfa_t *)(prVar30->edests + (int)input);\n            iVar13 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n            iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n            prVar5 = input;\n            if (iVar8 == 0) {\nLAB_000213ac:\n              input = prVar34;\n              pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);\n              goto LAB_000213b0;\n            }\n            sVar28 = prVar34->nodes_alloc;\n            input = prVar34;\n            puVar40 = (undefined *)auStackY_138._0_4_;\n            if ((int)sVar28 < 1) goto LAB_00020f6c;\n            uVar33 = *(undefined4 *)(iVar13 + 8);\n            pIVar31 = (Idx *)prVar34->nodes_len;\n            sVar29 = 0;\n            prVar22 = (re_dfa_t *)0xffffffff;\n            prVar35 = (re_dfa_t *)(iVar13 + 0xc);\n            prVar30 = (re_dfa_t *)0xffffffff;\n            do {\n              prVar5 = prVar35;\n              input = (re_dfa_t *)*pIVar31;\n              prVar15 = input;\n              prVar35 = prVar5;\n              iVar8 = (*(code *)auStackY_138._52_4_)(uVar33);\n              prVar34 = prVar30;\n              if ((iVar8 != 0) && (prVar34 = input, prVar30 != prVar22)) {\n                prVar5 = (re_dfa_t *)(auStackY_138 + 0x44);\n                prVar15 = prVar30;\n                iVar8 = (*(code *)auStackY_138._52_4_)(auStackY_138._64_4_);\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if ((iVar8 != 0) || (prVar34 = prVar30, fs == (re_fail_stack_t *)0x0)) break;\n                prVar15 = (re_dfa_t *)fs->num;\n                prVar5 = (re_dfa_t *)((int)&prVar15->nodes + 1);\n                fs->num = (Idx)prVar5;\n                if (prVar5 == (re_dfa_t *)fs->alloc) {\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  prVar5 = (re_dfa_t *)((int)prVar5 * 0x30);\n                  auStackY_138._44_4_ = prVar15;\n                  prVar12 = (re_fail_stack_ent_t *)\n                            (**(code **)(auStackY_138._0_4_ + -0x7e18))(fs->stack);\n                  if (prVar12 != (re_fail_stack_ent_t *)0x0) {\n                    fs->stack = prVar12;\n                    fs->alloc = fs->alloc << 1;\n                    prVar15 = (re_dfa_t *)auStackY_138._44_4_;\n                    prVar34 = (re_dfa_t *)auStackY_138._48_4_;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  prVar12 = fs->stack;\n                  prVar34 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_000210a0:\n                  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7e1c);\n                  auStackY_138._48_4_ = prVar12 + (int)prVar15;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes = (re_token_t *)prVar34;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes_alloc = (size_t)input;\n                  pIVar31 = (Idx *)(*pcVar18)(auStackY_138._28_4_);\n                  *(Idx **)(auStackY_138._48_4_ + 8) = pIVar31;\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  if (pIVar31 != (Idx *)0x0) {\n                    prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                    (**(code **)(auStackY_138._0_4_ + -0x7db8))(pIVar31,context);\n                    prVar5 = (re_dfa_t *)top_node;\n                    prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                    rVar11 = re_node_set_init_copy\n                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node);\n                    prVar34 = prVar30;\n                    puVar40 = (undefined *)auStackY_138._0_4_;\n                    if (rVar11 == _REG_NOERROR) break;\n                  }\n                }\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._68_4_);\n                if (auStackY_138._16_4_ != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              sVar29 = sVar29 + 1;\n              pIVar31 = pIVar31 + 1;\n              prVar30 = prVar34;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n            } while (sVar28 != sVar29);\n          }\nLAB_00020ecc:\n          if ((int)prVar34 < 0) goto LAB_00020f60;\n          prVar35 = (re_dfa_t *)context->nodes_alloc;\n          pcVar18 = *(code **)(puVar40 + -0x7db0);\n          if ((int)prVar35 < (int)auStackY_138._56_4_) break;\n        } while( true );\n      }" { (do_statement "do {\n          input = prVar34;\n          prVar34 = (re_dfa_t *)((int)input * 8);\n          prVar15 = (re_dfa_t *)0x8;\n          piVar10 = (int *)((int)prVar34->word_char + *piVar38 + -0x60);\n          prVar5 = (re_dfa_t *)(uint)*(byte *)(piVar10 + 1);\n          prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n          if (prVar5 == (re_dfa_t *)0x8) {\n            iVar8 = *piVar10;\n            prVar5 = (re_dfa_t *)(uint)(iVar8 + 1 < (int)prVar25);\n            if (prVar5 != (re_dfa_t *)0x0) {\n              (context->word_char + iVar8 * 2 + -0x16)[1] = 0xffffffff;\n              context->word_char[iVar8 * 2 + -0x16] = auStackY_138._56_4_;\n              prVar35 = (re_dfa_t *)context->nodes_alloc;\n            }\n          }\n          else {\n            prVar15 = (re_dfa_t *)&DAT_00000009;\n            if (prVar5 == (re_dfa_t *)&DAT_00000009) {\n              prVar15 = (re_dfa_t *)(uint)(*piVar10 + 1 < (int)prVar25);\n              prVar5 = (re_dfa_t *)(*piVar10 * 8 + 8);\n              if (prVar15 != (re_dfa_t *)0x0) {\n                piVar32 = (int *)((int)(((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8) +\n                                 (int)((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))->word_char + 0xffffffa0U);\n                pcVar18 = *(code **)(puVar40 + -0x7db8);\n                if (*piVar32 < (int)auStackY_138._56_4_) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)auStackY_138._20_4_;\n                  prVar5 = context;\n                }\n                else if (((piVar10[1] & 0x1000U) == 0) ||\n                        (pbVar3 = prVar5->word_char, prVar35 = context,\n                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1)) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)context->nodes_alloc;\n                  goto LAB_00020df8;\n                }\n                prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                auStackY_138._44_4_ = prVar34;\n                auStackY_138._48_4_ = auStackY_138._56_4_;\n                (*pcVar18)(prVar35);\n                prVar35 = (re_dfa_t *)context->nodes_alloc;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar34 = (re_dfa_t *)auStackY_138._44_4_;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n              }\n            }\n          }\nLAB_00020df8:\n          uVar33 = auStackY_138._24_4_;\n          if ((prVar27 == prVar35) && ((re_dfa_t *)mctx_01->word_char[0] == input)) {\n            pcVar18 = *(code **)(puVar40 + -0x7db0);\n            if (fs == (re_fail_stack_t *)0x0) {\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ == 0) goto LAB_00020f14;\n              (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              rVar11 = _REG_NOERROR;\n              goto LAB_00020f18;\n            }\n            prVar34 = (re_dfa_t *)0x0;\n            if (prVar25 == (re_dfa_t *)0x0) {\nLAB_000212c0:\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ != 0) {\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              }\n              goto LAB_00020f00;\n            }\n            prVar5 = (re_dfa_t *)0xffffffff;\n            prVar35 = context;\n            while (((int)prVar35->nodes < 0 || (prVar35->nodes_alloc != 0xffffffff))) {\n              prVar34 = (re_dfa_t *)((int)&prVar34->nodes + 1);\n              prVar35 = (re_dfa_t *)&prVar35->nodes_len;\n              if (prVar25 == prVar34) {\n                pcVar18 = *(code **)(puVar40 + -0x7db0);\n                goto LAB_000212c0;\n              }\n            }\n            *(Idx *)(puVar41 + 0x14) = top_node;\n            *(re_dfa_t **)(puVar41 + 0x10) = context;\n            prVar27 = prVar25;\n            input = (re_dfa_t *)(*(code *)uVar33)(fs,&fs->stack,auStackY_138 + 0x38);\n            prVar34 = (re_dfa_t *)((int)input << 3);\n            puVar40 = (undefined *)auStackY_138._0_4_;\n          }\n          prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n          prVar30 = (re_dfa_t *)mctx_01->completed_bkref_map;\n          prVar22 = (re_dfa_t *)prVar30->nodes;\n          prVar5 = (re_dfa_t *)\n                   ((int)(((re_dfa_t *)\n                          (((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))->\n                          word_char + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U);\n          prVar15 = (re_dfa_t *)(uint)*(byte *)&prVar5->nodes_alloc;\n          if ((*(byte *)&prVar5->nodes_alloc & 8) == 0) {\n            if ((prVar5->nodes_alloc & 0x800) == 0) {\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n              if (prVar15 != (re_dfa_t *)0x4) goto LAB_00020e44;\n              pprVar2 = &prVar5->nodes;\n              prVar5 = (re_dfa_t *)(context->word_char + (int)*pprVar2 * 2 + -0x16)[1];\n              bVar23 = context->word_char[(int)*pprVar2 * 2 + -0x16];\n              prVar27 = (re_dfa_t *)((int)prVar5 - bVar23);\n              if (fs == (re_fail_stack_t *)0x0) {\n                if (prVar27 == (re_dfa_t *)0x0) goto LAB_00021318;\n              }\n              else {\n                prVar22 = input;\n                if ((bVar23 == 0xffffffff) ||\n                   (prVar15 = (re_dfa_t *)(auStackY_138 + 0x38), prVar5 == (re_dfa_t *)0xffffffff))\n                goto LAB_00020f7c;\n                if (prVar27 == (re_dfa_t *)0x0) {\nLAB_00021318:\n                  prVar5 = input;\n                  auStackY_138._44_4_ = prVar34;\n                  auStackY_138._48_4_ = prVar30;\n                  iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n                  prVar34 = input;\n                  if (iVar8 == 0) goto LAB_000213ac;\n                  pprVar1 = (re_node_set **)(auStackY_138._48_4_ + 0x14);\n                  auStackY_138._8_4_ = auStackY_138._48_4_;\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n                  prVar34 = (re_dfa_t *)*(*pprVar1)[(int)input].elems;\n                  prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n                  prVar15 = prVar34;\n                  iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n                  puVar40 = (undefined *)auStackY_138._0_4_;\n                  if (iVar8 != 0) goto LAB_00020ecc;\n                  prVar5 = (re_dfa_t *)\n                           ((int)(auStackY_138._44_4_ + 0x60) +\n                           (int)(*(re_token_t **)auStackY_138._8_4_ + -0xc));\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  prVar30 = (re_dfa_t *)auStackY_138._8_4_;\n                  goto LAB_00020e44;\n                }\n                prVar5 = (re_dfa_t *)\n                         ((int)(auStackY_138._56_4_ + 0x60) + (mctx_01->nodes_alloc - 0x60));\n                auStackY_138._44_4_ = prVar30;\n                auStackY_138._48_4_ = prVar27;\n                iVar8 = (**(code **)(puVar40 + -0x7dd0))(mctx_01->nodes_alloc + bVar23);\n                prVar15 = prVar27;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar30 = (re_dfa_t *)auStackY_138._44_4_;\n                prVar22 = prVar35;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if (iVar8 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              auStackY_138._56_4_ =\n                   (int)(((re_dfa_t *)\n                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))->word_char\n                        + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U;\n              prVar34 = *(re_dfa_t **)(((re_node_set *)&prVar30->nexts)->alloc + (int)input * 4);\n              input = prVar35;\n            }\n            else {\n              prVar5 = (re_dfa_t *)&prVar30->syntax;\n              auStackY_138._48_4_ = prVar30;\n              auStackY_138._44_4_ = prVar34;\n              *(undefined4 *)(puVar41 + 0x10) = auStackY_138._56_4_;\n              prVar15 = input;\n              prVar27 = (re_dfa_t *)\n                        check_node_accept_bytes\n                                  (prVar22,(Idx)prVar5,(re_string_t *)input,(Idx)mctx_01,\n                                   *(re_dfa_t **)(puVar41 + 0x10));\n              prVar30 = (re_dfa_t *)auStackY_138._48_4_;\n              prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (prVar27 != (re_dfa_t *)0x0) goto LAB_00021258;\n              prVar5 = (re_dfa_t *)\n                       ((int)(auStackY_138._44_4_ + 0x60) +\n                       (int)(*(re_token_t **)auStackY_138._48_4_ + -0xc));\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_00020e44:\n              prVar15 = prVar27;\n              auStackY_138._44_4_ = prVar30;\n              auStackY_138._48_4_ = prVar15;\n              _Var14 = check_node_accept((re_match_context_t *)mctx_01,(re_token_t *)prVar5,\n                                         (Idx)prVar15);\n              prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (CONCAT31(extraout_var,_Var14) == 0) goto LAB_00020f6c;\n              auStackY_138._56_4_ = (int)(re_token_t **)auStackY_138._48_4_ + 1;\n              input = (re_dfa_t *)\n                      (((re_node_set *)(auStackY_138._44_4_ + 0xc))->alloc + (int)input * 4);\n              prVar34 = (re_dfa_t *)input->nodes;\n            }\n            if (fs != (re_fail_stack_t *)0x0) {\n              prVar22 = input;\n              if ((mctx_01->mb_cur_max < (int)auStackY_138._56_4_) ||\n                 (iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4), iVar8 == 0))\n              goto LAB_00020f7c;\n              prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n              prVar15 = prVar34;\n              iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (iVar8 == 0) goto LAB_00020f7c;\n            }\n            auStackY_138._64_4_ = 0;\n          }\n          else {\n            prVar34 = (re_dfa_t *)(prVar30->edests + (int)input);\n            iVar13 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n            iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n            prVar5 = input;\n            if (iVar8 == 0) {\nLAB_000213ac:\n              input = prVar34;\n              pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);\n              goto LAB_000213b0;\n            }\n            sVar28 = prVar34->nodes_alloc;\n            input = prVar34;\n            puVar40 = (undefined *)auStackY_138._0_4_;\n            if ((int)sVar28 < 1) goto LAB_00020f6c;\n            uVar33 = *(undefined4 *)(iVar13 + 8);\n            pIVar31 = (Idx *)prVar34->nodes_len;\n            sVar29 = 0;\n            prVar22 = (re_dfa_t *)0xffffffff;\n            prVar35 = (re_dfa_t *)(iVar13 + 0xc);\n            prVar30 = (re_dfa_t *)0xffffffff;\n            do {\n              prVar5 = prVar35;\n              input = (re_dfa_t *)*pIVar31;\n              prVar15 = input;\n              prVar35 = prVar5;\n              iVar8 = (*(code *)auStackY_138._52_4_)(uVar33);\n              prVar34 = prVar30;\n              if ((iVar8 != 0) && (prVar34 = input, prVar30 != prVar22)) {\n                prVar5 = (re_dfa_t *)(auStackY_138 + 0x44);\n                prVar15 = prVar30;\n                iVar8 = (*(code *)auStackY_138._52_4_)(auStackY_138._64_4_);\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if ((iVar8 != 0) || (prVar34 = prVar30, fs == (re_fail_stack_t *)0x0)) break;\n                prVar15 = (re_dfa_t *)fs->num;\n                prVar5 = (re_dfa_t *)((int)&prVar15->nodes + 1);\n                fs->num = (Idx)prVar5;\n                if (prVar5 == (re_dfa_t *)fs->alloc) {\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  prVar5 = (re_dfa_t *)((int)prVar5 * 0x30);\n                  auStackY_138._44_4_ = prVar15;\n                  prVar12 = (re_fail_stack_ent_t *)\n                            (**(code **)(auStackY_138._0_4_ + -0x7e18))(fs->stack);\n                  if (prVar12 != (re_fail_stack_ent_t *)0x0) {\n                    fs->stack = prVar12;\n                    fs->alloc = fs->alloc << 1;\n                    prVar15 = (re_dfa_t *)auStackY_138._44_4_;\n                    prVar34 = (re_dfa_t *)auStackY_138._48_4_;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  prVar12 = fs->stack;\n                  prVar34 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_000210a0:\n                  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7e1c);\n                  auStackY_138._48_4_ = prVar12 + (int)prVar15;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes = (re_token_t *)prVar34;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes_alloc = (size_t)input;\n                  pIVar31 = (Idx *)(*pcVar18)(auStackY_138._28_4_);\n                  *(Idx **)(auStackY_138._48_4_ + 8) = pIVar31;\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  if (pIVar31 != (Idx *)0x0) {\n                    prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                    (**(code **)(auStackY_138._0_4_ + -0x7db8))(pIVar31,context);\n                    prVar5 = (re_dfa_t *)top_node;\n                    prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                    rVar11 = re_node_set_init_copy\n                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node);\n                    prVar34 = prVar30;\n                    puVar40 = (undefined *)auStackY_138._0_4_;\n                    if (rVar11 == _REG_NOERROR) break;\n                  }\n                }\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._68_4_);\n                if (auStackY_138._16_4_ != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              sVar29 = sVar29 + 1;\n              pIVar31 = pIVar31 + 1;\n              prVar30 = prVar34;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n            } while (sVar28 != sVar29);\n          }\nLAB_00020ecc:\n          if ((int)prVar34 < 0) goto LAB_00020f60;\n          prVar35 = (re_dfa_t *)context->nodes_alloc;\n          pcVar18 = *(code **)(puVar40 + -0x7db0);\n          if ((int)prVar35 < (int)auStackY_138._56_4_) break;\n        } while( true );" do (compound_statement "{\n          input = prVar34;\n          prVar34 = (re_dfa_t *)((int)input * 8);\n          prVar15 = (re_dfa_t *)0x8;\n          piVar10 = (int *)((int)prVar34->word_char + *piVar38 + -0x60);\n          prVar5 = (re_dfa_t *)(uint)*(byte *)(piVar10 + 1);\n          prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n          if (prVar5 == (re_dfa_t *)0x8) {\n            iVar8 = *piVar10;\n            prVar5 = (re_dfa_t *)(uint)(iVar8 + 1 < (int)prVar25);\n            if (prVar5 != (re_dfa_t *)0x0) {\n              (context->word_char + iVar8 * 2 + -0x16)[1] = 0xffffffff;\n              context->word_char[iVar8 * 2 + -0x16] = auStackY_138._56_4_;\n              prVar35 = (re_dfa_t *)context->nodes_alloc;\n            }\n          }\n          else {\n            prVar15 = (re_dfa_t *)&DAT_00000009;\n            if (prVar5 == (re_dfa_t *)&DAT_00000009) {\n              prVar15 = (re_dfa_t *)(uint)(*piVar10 + 1 < (int)prVar25);\n              prVar5 = (re_dfa_t *)(*piVar10 * 8 + 8);\n              if (prVar15 != (re_dfa_t *)0x0) {\n                piVar32 = (int *)((int)(((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8) +\n                                 (int)((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))->word_char + 0xffffffa0U);\n                pcVar18 = *(code **)(puVar40 + -0x7db8);\n                if (*piVar32 < (int)auStackY_138._56_4_) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)auStackY_138._20_4_;\n                  prVar5 = context;\n                }\n                else if (((piVar10[1] & 0x1000U) == 0) ||\n                        (pbVar3 = prVar5->word_char, prVar35 = context,\n                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1)) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)context->nodes_alloc;\n                  goto LAB_00020df8;\n                }\n                prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                auStackY_138._44_4_ = prVar34;\n                auStackY_138._48_4_ = auStackY_138._56_4_;\n                (*pcVar18)(prVar35);\n                prVar35 = (re_dfa_t *)context->nodes_alloc;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar34 = (re_dfa_t *)auStackY_138._44_4_;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n              }\n            }\n          }\nLAB_00020df8:\n          uVar33 = auStackY_138._24_4_;\n          if ((prVar27 == prVar35) && ((re_dfa_t *)mctx_01->word_char[0] == input)) {\n            pcVar18 = *(code **)(puVar40 + -0x7db0);\n            if (fs == (re_fail_stack_t *)0x0) {\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ == 0) goto LAB_00020f14;\n              (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              rVar11 = _REG_NOERROR;\n              goto LAB_00020f18;\n            }\n            prVar34 = (re_dfa_t *)0x0;\n            if (prVar25 == (re_dfa_t *)0x0) {\nLAB_000212c0:\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ != 0) {\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              }\n              goto LAB_00020f00;\n            }\n            prVar5 = (re_dfa_t *)0xffffffff;\n            prVar35 = context;\n            while (((int)prVar35->nodes < 0 || (prVar35->nodes_alloc != 0xffffffff))) {\n              prVar34 = (re_dfa_t *)((int)&prVar34->nodes + 1);\n              prVar35 = (re_dfa_t *)&prVar35->nodes_len;\n              if (prVar25 == prVar34) {\n                pcVar18 = *(code **)(puVar40 + -0x7db0);\n                goto LAB_000212c0;\n              }\n            }\n            *(Idx *)(puVar41 + 0x14) = top_node;\n            *(re_dfa_t **)(puVar41 + 0x10) = context;\n            prVar27 = prVar25;\n            input = (re_dfa_t *)(*(code *)uVar33)(fs,&fs->stack,auStackY_138 + 0x38);\n            prVar34 = (re_dfa_t *)((int)input << 3);\n            puVar40 = (undefined *)auStackY_138._0_4_;\n          }\n          prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n          prVar30 = (re_dfa_t *)mctx_01->completed_bkref_map;\n          prVar22 = (re_dfa_t *)prVar30->nodes;\n          prVar5 = (re_dfa_t *)\n                   ((int)(((re_dfa_t *)\n                          (((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))->\n                          word_char + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U);\n          prVar15 = (re_dfa_t *)(uint)*(byte *)&prVar5->nodes_alloc;\n          if ((*(byte *)&prVar5->nodes_alloc & 8) == 0) {\n            if ((prVar5->nodes_alloc & 0x800) == 0) {\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n              if (prVar15 != (re_dfa_t *)0x4) goto LAB_00020e44;\n              pprVar2 = &prVar5->nodes;\n              prVar5 = (re_dfa_t *)(context->word_char + (int)*pprVar2 * 2 + -0x16)[1];\n              bVar23 = context->word_char[(int)*pprVar2 * 2 + -0x16];\n              prVar27 = (re_dfa_t *)((int)prVar5 - bVar23);\n              if (fs == (re_fail_stack_t *)0x0) {\n                if (prVar27 == (re_dfa_t *)0x0) goto LAB_00021318;\n              }\n              else {\n                prVar22 = input;\n                if ((bVar23 == 0xffffffff) ||\n                   (prVar15 = (re_dfa_t *)(auStackY_138 + 0x38), prVar5 == (re_dfa_t *)0xffffffff))\n                goto LAB_00020f7c;\n                if (prVar27 == (re_dfa_t *)0x0) {\nLAB_00021318:\n                  prVar5 = input;\n                  auStackY_138._44_4_ = prVar34;\n                  auStackY_138._48_4_ = prVar30;\n                  iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n                  prVar34 = input;\n                  if (iVar8 == 0) goto LAB_000213ac;\n                  pprVar1 = (re_node_set **)(auStackY_138._48_4_ + 0x14);\n                  auStackY_138._8_4_ = auStackY_138._48_4_;\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n                  prVar34 = (re_dfa_t *)*(*pprVar1)[(int)input].elems;\n                  prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n                  prVar15 = prVar34;\n                  iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n                  puVar40 = (undefined *)auStackY_138._0_4_;\n                  if (iVar8 != 0) goto LAB_00020ecc;\n                  prVar5 = (re_dfa_t *)\n                           ((int)(auStackY_138._44_4_ + 0x60) +\n                           (int)(*(re_token_t **)auStackY_138._8_4_ + -0xc));\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  prVar30 = (re_dfa_t *)auStackY_138._8_4_;\n                  goto LAB_00020e44;\n                }\n                prVar5 = (re_dfa_t *)\n                         ((int)(auStackY_138._56_4_ + 0x60) + (mctx_01->nodes_alloc - 0x60));\n                auStackY_138._44_4_ = prVar30;\n                auStackY_138._48_4_ = prVar27;\n                iVar8 = (**(code **)(puVar40 + -0x7dd0))(mctx_01->nodes_alloc + bVar23);\n                prVar15 = prVar27;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar30 = (re_dfa_t *)auStackY_138._44_4_;\n                prVar22 = prVar35;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if (iVar8 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              auStackY_138._56_4_ =\n                   (int)(((re_dfa_t *)\n                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))->word_char\n                        + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U;\n              prVar34 = *(re_dfa_t **)(((re_node_set *)&prVar30->nexts)->alloc + (int)input * 4);\n              input = prVar35;\n            }\n            else {\n              prVar5 = (re_dfa_t *)&prVar30->syntax;\n              auStackY_138._48_4_ = prVar30;\n              auStackY_138._44_4_ = prVar34;\n              *(undefined4 *)(puVar41 + 0x10) = auStackY_138._56_4_;\n              prVar15 = input;\n              prVar27 = (re_dfa_t *)\n                        check_node_accept_bytes\n                                  (prVar22,(Idx)prVar5,(re_string_t *)input,(Idx)mctx_01,\n                                   *(re_dfa_t **)(puVar41 + 0x10));\n              prVar30 = (re_dfa_t *)auStackY_138._48_4_;\n              prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (prVar27 != (re_dfa_t *)0x0) goto LAB_00021258;\n              prVar5 = (re_dfa_t *)\n                       ((int)(auStackY_138._44_4_ + 0x60) +\n                       (int)(*(re_token_t **)auStackY_138._48_4_ + -0xc));\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_00020e44:\n              prVar15 = prVar27;\n              auStackY_138._44_4_ = prVar30;\n              auStackY_138._48_4_ = prVar15;\n              _Var14 = check_node_accept((re_match_context_t *)mctx_01,(re_token_t *)prVar5,\n                                         (Idx)prVar15);\n              prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (CONCAT31(extraout_var,_Var14) == 0) goto LAB_00020f6c;\n              auStackY_138._56_4_ = (int)(re_token_t **)auStackY_138._48_4_ + 1;\n              input = (re_dfa_t *)\n                      (((re_node_set *)(auStackY_138._44_4_ + 0xc))->alloc + (int)input * 4);\n              prVar34 = (re_dfa_t *)input->nodes;\n            }\n            if (fs != (re_fail_stack_t *)0x0) {\n              prVar22 = input;\n              if ((mctx_01->mb_cur_max < (int)auStackY_138._56_4_) ||\n                 (iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4), iVar8 == 0))\n              goto LAB_00020f7c;\n              prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n              prVar15 = prVar34;\n              iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (iVar8 == 0) goto LAB_00020f7c;\n            }\n            auStackY_138._64_4_ = 0;\n          }\n          else {\n            prVar34 = (re_dfa_t *)(prVar30->edests + (int)input);\n            iVar13 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n            iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n            prVar5 = input;\n            if (iVar8 == 0) {\nLAB_000213ac:\n              input = prVar34;\n              pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);\n              goto LAB_000213b0;\n            }\n            sVar28 = prVar34->nodes_alloc;\n            input = prVar34;\n            puVar40 = (undefined *)auStackY_138._0_4_;\n            if ((int)sVar28 < 1) goto LAB_00020f6c;\n            uVar33 = *(undefined4 *)(iVar13 + 8);\n            pIVar31 = (Idx *)prVar34->nodes_len;\n            sVar29 = 0;\n            prVar22 = (re_dfa_t *)0xffffffff;\n            prVar35 = (re_dfa_t *)(iVar13 + 0xc);\n            prVar30 = (re_dfa_t *)0xffffffff;\n            do {\n              prVar5 = prVar35;\n              input = (re_dfa_t *)*pIVar31;\n              prVar15 = input;\n              prVar35 = prVar5;\n              iVar8 = (*(code *)auStackY_138._52_4_)(uVar33);\n              prVar34 = prVar30;\n              if ((iVar8 != 0) && (prVar34 = input, prVar30 != prVar22)) {\n                prVar5 = (re_dfa_t *)(auStackY_138 + 0x44);\n                prVar15 = prVar30;\n                iVar8 = (*(code *)auStackY_138._52_4_)(auStackY_138._64_4_);\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if ((iVar8 != 0) || (prVar34 = prVar30, fs == (re_fail_stack_t *)0x0)) break;\n                prVar15 = (re_dfa_t *)fs->num;\n                prVar5 = (re_dfa_t *)((int)&prVar15->nodes + 1);\n                fs->num = (Idx)prVar5;\n                if (prVar5 == (re_dfa_t *)fs->alloc) {\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  prVar5 = (re_dfa_t *)((int)prVar5 * 0x30);\n                  auStackY_138._44_4_ = prVar15;\n                  prVar12 = (re_fail_stack_ent_t *)\n                            (**(code **)(auStackY_138._0_4_ + -0x7e18))(fs->stack);\n                  if (prVar12 != (re_fail_stack_ent_t *)0x0) {\n                    fs->stack = prVar12;\n                    fs->alloc = fs->alloc << 1;\n                    prVar15 = (re_dfa_t *)auStackY_138._44_4_;\n                    prVar34 = (re_dfa_t *)auStackY_138._48_4_;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  prVar12 = fs->stack;\n                  prVar34 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_000210a0:\n                  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7e1c);\n                  auStackY_138._48_4_ = prVar12 + (int)prVar15;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes = (re_token_t *)prVar34;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes_alloc = (size_t)input;\n                  pIVar31 = (Idx *)(*pcVar18)(auStackY_138._28_4_);\n                  *(Idx **)(auStackY_138._48_4_ + 8) = pIVar31;\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  if (pIVar31 != (Idx *)0x0) {\n                    prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                    (**(code **)(auStackY_138._0_4_ + -0x7db8))(pIVar31,context);\n                    prVar5 = (re_dfa_t *)top_node;\n                    prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                    rVar11 = re_node_set_init_copy\n                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node);\n                    prVar34 = prVar30;\n                    puVar40 = (undefined *)auStackY_138._0_4_;\n                    if (rVar11 == _REG_NOERROR) break;\n                  }\n                }\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._68_4_);\n                if (auStackY_138._16_4_ != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              sVar29 = sVar29 + 1;\n              pIVar31 = pIVar31 + 1;\n              prVar30 = prVar34;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n            } while (sVar28 != sVar29);\n          }\nLAB_00020ecc:\n          if ((int)prVar34 < 0) goto LAB_00020f60;\n          prVar35 = (re_dfa_t *)context->nodes_alloc;\n          pcVar18 = *(code **)(puVar40 + -0x7db0);\n          if ((int)prVar35 < (int)auStackY_138._56_4_) break;\n        }" { (expression_statement "input = prVar34;" (assignment_expression "input = prVar34" identifier = identifier) ;) (expression_statement "prVar34 = (re_dfa_t *)((int)input * 8);" (assignment_expression "prVar34 = (re_dfa_t *)((int)input * 8)" identifier = (cast_expression "(re_dfa_t *)((int)input * 8)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)input * 8)" ( (binary_expression "(int)input * 8" (cast_expression "(int)input" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "prVar15 = (re_dfa_t *)0x8;" (assignment_expression "prVar15 = (re_dfa_t *)0x8" identifier = (cast_expression "(re_dfa_t *)0x8" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar10 = (int *)((int)prVar34->word_char + *piVar38 + -0x60);" (assignment_expression "piVar10 = (int *)((int)prVar34->word_char + *piVar38 + -0x60)" identifier = (cast_expression "(int *)((int)prVar34->word_char + *piVar38 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)prVar34->word_char + *piVar38 + -0x60)" ( (binary_expression "(int)prVar34->word_char + *piVar38 + -0x60" (binary_expression "(int)prVar34->word_char + *piVar38" (cast_expression "(int)prVar34->word_char" ( (type_descriptor "int" primitive_type) ) (field_expression "prVar34->word_char" identifier -> field_identifier)) + (pointer_expression "*piVar38" * identifier)) + number_literal) )))) ;) (expression_statement "prVar5 = (re_dfa_t *)(uint)*(byte *)(piVar10 + 1);" (assignment_expression "prVar5 = (re_dfa_t *)(uint)*(byte *)(piVar10 + 1)" identifier = (binary_expression "(re_dfa_t *)(uint)*(byte *)(piVar10 + 1)" (cast_expression "(re_dfa_t *)(uint)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(piVar10 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar10 + 1)" ( (binary_expression "piVar10 + 1" identifier + number_literal) ))))) ;) (expression_statement "prVar27 = (re_dfa_t *)auStackY_138._56_4_;" (assignment_expression "prVar27 = (re_dfa_t *)auStackY_138._56_4_" identifier = (cast_expression "(re_dfa_t *)auStackY_138._56_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._56_4_" identifier . field_identifier))) ;) (if_statement "if (prVar5 == (re_dfa_t *)0x8) {\n            iVar8 = *piVar10;\n            prVar5 = (re_dfa_t *)(uint)(iVar8 + 1 < (int)prVar25);\n            if (prVar5 != (re_dfa_t *)0x0) {\n              (context->word_char + iVar8 * 2 + -0x16)[1] = 0xffffffff;\n              context->word_char[iVar8 * 2 + -0x16] = auStackY_138._56_4_;\n              prVar35 = (re_dfa_t *)context->nodes_alloc;\n            }\n          }\n          else {\n            prVar15 = (re_dfa_t *)&DAT_00000009;\n            if (prVar5 == (re_dfa_t *)&DAT_00000009) {\n              prVar15 = (re_dfa_t *)(uint)(*piVar10 + 1 < (int)prVar25);\n              prVar5 = (re_dfa_t *)(*piVar10 * 8 + 8);\n              if (prVar15 != (re_dfa_t *)0x0) {\n                piVar32 = (int *)((int)(((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8) +\n                                 (int)((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))->word_char + 0xffffffa0U);\n                pcVar18 = *(code **)(puVar40 + -0x7db8);\n                if (*piVar32 < (int)auStackY_138._56_4_) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)auStackY_138._20_4_;\n                  prVar5 = context;\n                }\n                else if (((piVar10[1] & 0x1000U) == 0) ||\n                        (pbVar3 = prVar5->word_char, prVar35 = context,\n                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1)) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)context->nodes_alloc;\n                  goto LAB_00020df8;\n                }\n                prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                auStackY_138._44_4_ = prVar34;\n                auStackY_138._48_4_ = auStackY_138._56_4_;\n                (*pcVar18)(prVar35);\n                prVar35 = (re_dfa_t *)context->nodes_alloc;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar34 = (re_dfa_t *)auStackY_138._44_4_;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n              }\n            }\n          }" if (parenthesized_expression "(prVar5 == (re_dfa_t *)0x8)" ( (binary_expression "prVar5 == (re_dfa_t *)0x8" identifier == (cast_expression "(re_dfa_t *)0x8" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar8 = *piVar10;\n            prVar5 = (re_dfa_t *)(uint)(iVar8 + 1 < (int)prVar25);\n            if (prVar5 != (re_dfa_t *)0x0) {\n              (context->word_char + iVar8 * 2 + -0x16)[1] = 0xffffffff;\n              context->word_char[iVar8 * 2 + -0x16] = auStackY_138._56_4_;\n              prVar35 = (re_dfa_t *)context->nodes_alloc;\n            }\n          }" { (expression_statement "iVar8 = *piVar10;" (assignment_expression "iVar8 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "prVar5 = (re_dfa_t *)(uint)(iVar8 + 1 < (int)prVar25);" (assignment_expression "prVar5 = (re_dfa_t *)(uint)(iVar8 + 1 < (int)prVar25)" identifier = (cast_expression "(re_dfa_t *)(uint)(iVar8 + 1 < (int)prVar25)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(iVar8 + 1 < (int)prVar25)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar8 + 1 < (int)prVar25)" ( (binary_expression "iVar8 + 1 < (int)prVar25" (binary_expression "iVar8 + 1" identifier + number_literal) < (cast_expression "(int)prVar25" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (prVar5 != (re_dfa_t *)0x0) {\n              (context->word_char + iVar8 * 2 + -0x16)[1] = 0xffffffff;\n              context->word_char[iVar8 * 2 + -0x16] = auStackY_138._56_4_;\n              prVar35 = (re_dfa_t *)context->nodes_alloc;\n            }" if (parenthesized_expression "(prVar5 != (re_dfa_t *)0x0)" ( (binary_expression "prVar5 != (re_dfa_t *)0x0" identifier != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              (context->word_char + iVar8 * 2 + -0x16)[1] = 0xffffffff;\n              context->word_char[iVar8 * 2 + -0x16] = auStackY_138._56_4_;\n              prVar35 = (re_dfa_t *)context->nodes_alloc;\n            }" { (expression_statement "(context->word_char + iVar8 * 2 + -0x16)[1] = 0xffffffff;" (assignment_expression "(context->word_char + iVar8 * 2 + -0x16)[1] = 0xffffffff" (subscript_expression "(context->word_char + iVar8 * 2 + -0x16)[1]" (parenthesized_expression "(context->word_char + iVar8 * 2 + -0x16)" ( (binary_expression "context->word_char + iVar8 * 2 + -0x16" (binary_expression "context->word_char + iVar8 * 2" (field_expression "context->word_char" identifier -> field_identifier) + (binary_expression "iVar8 * 2" identifier * number_literal)) + number_literal) )) [ number_literal ]) = number_literal) ;) (expression_statement "context->word_char[iVar8 * 2 + -0x16] = auStackY_138._56_4_;" (assignment_expression "context->word_char[iVar8 * 2 + -0x16] = auStackY_138._56_4_" (subscript_expression "context->word_char[iVar8 * 2 + -0x16]" (field_expression "context->word_char" identifier -> field_identifier) [ (binary_expression "iVar8 * 2 + -0x16" (binary_expression "iVar8 * 2" identifier * number_literal) + number_literal) ]) = (field_expression "auStackY_138._56_4_" identifier . field_identifier)) ;) (expression_statement "prVar35 = (re_dfa_t *)context->nodes_alloc;" (assignment_expression "prVar35 = (re_dfa_t *)context->nodes_alloc" identifier = (cast_expression "(re_dfa_t *)context->nodes_alloc" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "context->nodes_alloc" identifier -> field_identifier))) ;) })) }) (else_clause "else {\n            prVar15 = (re_dfa_t *)&DAT_00000009;\n            if (prVar5 == (re_dfa_t *)&DAT_00000009) {\n              prVar15 = (re_dfa_t *)(uint)(*piVar10 + 1 < (int)prVar25);\n              prVar5 = (re_dfa_t *)(*piVar10 * 8 + 8);\n              if (prVar15 != (re_dfa_t *)0x0) {\n                piVar32 = (int *)((int)(((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8) +\n                                 (int)((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))->word_char + 0xffffffa0U);\n                pcVar18 = *(code **)(puVar40 + -0x7db8);\n                if (*piVar32 < (int)auStackY_138._56_4_) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)auStackY_138._20_4_;\n                  prVar5 = context;\n                }\n                else if (((piVar10[1] & 0x1000U) == 0) ||\n                        (pbVar3 = prVar5->word_char, prVar35 = context,\n                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1)) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)context->nodes_alloc;\n                  goto LAB_00020df8;\n                }\n                prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                auStackY_138._44_4_ = prVar34;\n                auStackY_138._48_4_ = auStackY_138._56_4_;\n                (*pcVar18)(prVar35);\n                prVar35 = (re_dfa_t *)context->nodes_alloc;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar34 = (re_dfa_t *)auStackY_138._44_4_;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n              }\n            }\n          }" else (compound_statement "{\n            prVar15 = (re_dfa_t *)&DAT_00000009;\n            if (prVar5 == (re_dfa_t *)&DAT_00000009) {\n              prVar15 = (re_dfa_t *)(uint)(*piVar10 + 1 < (int)prVar25);\n              prVar5 = (re_dfa_t *)(*piVar10 * 8 + 8);\n              if (prVar15 != (re_dfa_t *)0x0) {\n                piVar32 = (int *)((int)(((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8) +\n                                 (int)((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))->word_char + 0xffffffa0U);\n                pcVar18 = *(code **)(puVar40 + -0x7db8);\n                if (*piVar32 < (int)auStackY_138._56_4_) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)auStackY_138._20_4_;\n                  prVar5 = context;\n                }\n                else if (((piVar10[1] & 0x1000U) == 0) ||\n                        (pbVar3 = prVar5->word_char, prVar35 = context,\n                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1)) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)context->nodes_alloc;\n                  goto LAB_00020df8;\n                }\n                prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                auStackY_138._44_4_ = prVar34;\n                auStackY_138._48_4_ = auStackY_138._56_4_;\n                (*pcVar18)(prVar35);\n                prVar35 = (re_dfa_t *)context->nodes_alloc;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar34 = (re_dfa_t *)auStackY_138._44_4_;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n              }\n            }\n          }" { (expression_statement "prVar15 = (re_dfa_t *)&DAT_00000009;" (assignment_expression "prVar15 = (re_dfa_t *)&DAT_00000009" identifier = (cast_expression "(re_dfa_t *)&DAT_00000009" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000009" & identifier))) ;) (if_statement "if (prVar5 == (re_dfa_t *)&DAT_00000009) {\n              prVar15 = (re_dfa_t *)(uint)(*piVar10 + 1 < (int)prVar25);\n              prVar5 = (re_dfa_t *)(*piVar10 * 8 + 8);\n              if (prVar15 != (re_dfa_t *)0x0) {\n                piVar32 = (int *)((int)(((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8) +\n                                 (int)((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))->word_char + 0xffffffa0U);\n                pcVar18 = *(code **)(puVar40 + -0x7db8);\n                if (*piVar32 < (int)auStackY_138._56_4_) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)auStackY_138._20_4_;\n                  prVar5 = context;\n                }\n                else if (((piVar10[1] & 0x1000U) == 0) ||\n                        (pbVar3 = prVar5->word_char, prVar35 = context,\n                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1)) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)context->nodes_alloc;\n                  goto LAB_00020df8;\n                }\n                prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                auStackY_138._44_4_ = prVar34;\n                auStackY_138._48_4_ = auStackY_138._56_4_;\n                (*pcVar18)(prVar35);\n                prVar35 = (re_dfa_t *)context->nodes_alloc;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar34 = (re_dfa_t *)auStackY_138._44_4_;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n              }\n            }" if (parenthesized_expression "(prVar5 == (re_dfa_t *)&DAT_00000009)" ( (binary_expression "prVar5 == (re_dfa_t *)&DAT_00000009" identifier == (cast_expression "(re_dfa_t *)&DAT_00000009" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000009" & identifier))) )) (compound_statement "{\n              prVar15 = (re_dfa_t *)(uint)(*piVar10 + 1 < (int)prVar25);\n              prVar5 = (re_dfa_t *)(*piVar10 * 8 + 8);\n              if (prVar15 != (re_dfa_t *)0x0) {\n                piVar32 = (int *)((int)(((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8) +\n                                 (int)((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))->word_char + 0xffffffa0U);\n                pcVar18 = *(code **)(puVar40 + -0x7db8);\n                if (*piVar32 < (int)auStackY_138._56_4_) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)auStackY_138._20_4_;\n                  prVar5 = context;\n                }\n                else if (((piVar10[1] & 0x1000U) == 0) ||\n                        (pbVar3 = prVar5->word_char, prVar35 = context,\n                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1)) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)context->nodes_alloc;\n                  goto LAB_00020df8;\n                }\n                prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                auStackY_138._44_4_ = prVar34;\n                auStackY_138._48_4_ = auStackY_138._56_4_;\n                (*pcVar18)(prVar35);\n                prVar35 = (re_dfa_t *)context->nodes_alloc;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar34 = (re_dfa_t *)auStackY_138._44_4_;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n              }\n            }" { (expression_statement "prVar15 = (re_dfa_t *)(uint)(*piVar10 + 1 < (int)prVar25);" (assignment_expression "prVar15 = (re_dfa_t *)(uint)(*piVar10 + 1 < (int)prVar25)" identifier = (cast_expression "(re_dfa_t *)(uint)(*piVar10 + 1 < (int)prVar25)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(*piVar10 + 1 < (int)prVar25)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*piVar10 + 1 < (int)prVar25)" ( (binary_expression "*piVar10 + 1 < (int)prVar25" (binary_expression "*piVar10 + 1" (pointer_expression "*piVar10" * identifier) + number_literal) < (cast_expression "(int)prVar25" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "prVar5 = (re_dfa_t *)(*piVar10 * 8 + 8);" (assignment_expression "prVar5 = (re_dfa_t *)(*piVar10 * 8 + 8)" identifier = (cast_expression "(re_dfa_t *)(*piVar10 * 8 + 8)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar10 * 8 + 8)" ( (binary_expression "*piVar10 * 8 + 8" (binary_expression "*piVar10 * 8" (pointer_expression "*piVar10" * identifier) * number_literal) + number_literal) )))) ;) (if_statement "if (prVar15 != (re_dfa_t *)0x0) {\n                piVar32 = (int *)((int)(((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8) +\n                                 (int)((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))->word_char + 0xffffffa0U);\n                pcVar18 = *(code **)(puVar40 + -0x7db8);\n                if (*piVar32 < (int)auStackY_138._56_4_) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)auStackY_138._20_4_;\n                  prVar5 = context;\n                }\n                else if (((piVar10[1] & 0x1000U) == 0) ||\n                        (pbVar3 = prVar5->word_char, prVar35 = context,\n                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1)) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)context->nodes_alloc;\n                  goto LAB_00020df8;\n                }\n                prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                auStackY_138._44_4_ = prVar34;\n                auStackY_138._48_4_ = auStackY_138._56_4_;\n                (*pcVar18)(prVar35);\n                prVar35 = (re_dfa_t *)context->nodes_alloc;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar34 = (re_dfa_t *)auStackY_138._44_4_;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n              }" if (parenthesized_expression "(prVar15 != (re_dfa_t *)0x0)" ( (binary_expression "prVar15 != (re_dfa_t *)0x0" identifier != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                piVar32 = (int *)((int)(((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8) +\n                                 (int)((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))->word_char + 0xffffffa0U);\n                pcVar18 = *(code **)(puVar40 + -0x7db8);\n                if (*piVar32 < (int)auStackY_138._56_4_) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)auStackY_138._20_4_;\n                  prVar5 = context;\n                }\n                else if (((piVar10[1] & 0x1000U) == 0) ||\n                        (pbVar3 = prVar5->word_char, prVar35 = context,\n                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1)) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)context->nodes_alloc;\n                  goto LAB_00020df8;\n                }\n                prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                auStackY_138._44_4_ = prVar34;\n                auStackY_138._48_4_ = auStackY_138._56_4_;\n                (*pcVar18)(prVar35);\n                prVar35 = (re_dfa_t *)context->nodes_alloc;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar34 = (re_dfa_t *)auStackY_138._44_4_;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n              }" { (expression_statement "piVar32 = (int *)((int)(((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8) +\n                                 (int)((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))->word_char + 0xffffffa0U);" (assignment_expression "piVar32 = (int *)((int)(((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8) +\n                                 (int)((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))->word_char + 0xffffffa0U)" identifier = (cast_expression "(int *)((int)(((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8) +\n                                 (int)((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))->word_char + 0xffffffa0U)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8) +\n                                 (int)((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))->word_char + 0xffffffa0U)" ( (binary_expression "(int)(((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8) +\n                                 (int)((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))->word_char + 0xffffffa0U" (binary_expression "(int)(((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8) +\n                                 (int)((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))->word_char" (cast_expression "(int)(((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8)" ( (binary_expression "((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char + 0xffffffe8" (field_expression "((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18))" ( (cast_expression "(re_dfa_t *)\n                                        (((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18)" ( (binary_expression "((re_dfa_t *)(prVar5->word_char + -0x18))->word_char +\n                                        -0x18" (field_expression "((re_dfa_t *)(prVar5->word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)(prVar5->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)(prVar5->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prVar5->word_char + -0x18)" ( (binary_expression "prVar5->word_char + -0x18" (field_expression "prVar5->word_char" identifier -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) + (cast_expression "(int)((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))->word_char" ( (type_descriptor "int" primitive_type) ) (field_expression "((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18)" ( (binary_expression "((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char + -0x18" (field_expression "((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18))" ( (cast_expression "(re_dfa_t *)\n                                       (((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18)" ( (binary_expression "((re_dfa_t *)(context->word_char + -0x18))->word_char +\n                                       -0x18" (field_expression "((re_dfa_t *)(context->word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)(context->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)(context->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(context->word_char + -0x18)" ( (binary_expression "context->word_char + -0x18" (field_expression "context->word_char" identifier -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier))) + number_literal) )))) ;) (expression_statement "pcVar18 = *(code **)(puVar40 + -0x7db8);" (assignment_expression "pcVar18 = *(code **)(puVar40 + -0x7db8)" identifier = (pointer_expression "*(code **)(puVar40 + -0x7db8)" * (cast_expression "(code **)(puVar40 + -0x7db8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x7db8)" ( (binary_expression "puVar40 + -0x7db8" identifier + number_literal) ))))) ;) (if_statement "if (*piVar32 < (int)auStackY_138._56_4_) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)auStackY_138._20_4_;\n                  prVar5 = context;\n                }\n                else if (((piVar10[1] & 0x1000U) == 0) ||\n                        (pbVar3 = prVar5->word_char, prVar35 = context,\n                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1)) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)context->nodes_alloc;\n                  goto LAB_00020df8;\n                }" if (parenthesized_expression "(*piVar32 < (int)auStackY_138._56_4_)" ( (binary_expression "*piVar32 < (int)auStackY_138._56_4_" (pointer_expression "*piVar32" * identifier) < (cast_expression "(int)auStackY_138._56_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "auStackY_138._56_4_" identifier . field_identifier))) )) (compound_statement "{\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)auStackY_138._20_4_;\n                  prVar5 = context;\n                }" { (expression_statement "piVar32[1] = auStackY_138._56_4_;" (assignment_expression "piVar32[1] = auStackY_138._56_4_" (subscript_expression "piVar32[1]" identifier [ number_literal ]) = (field_expression "auStackY_138._56_4_" identifier . field_identifier)) ;) (expression_statement "prVar35 = (re_dfa_t *)auStackY_138._20_4_;" (assignment_expression "prVar35 = (re_dfa_t *)auStackY_138._20_4_" identifier = (cast_expression "(re_dfa_t *)auStackY_138._20_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._20_4_" identifier . field_identifier))) ;) (expression_statement "prVar5 = context;" (assignment_expression "prVar5 = context" identifier = identifier) ;) }) (else_clause "else if (((piVar10[1] & 0x1000U) == 0) ||\n                        (pbVar3 = prVar5->word_char, prVar35 = context,\n                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1)) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)context->nodes_alloc;\n                  goto LAB_00020df8;\n                }" else (if_statement "if (((piVar10[1] & 0x1000U) == 0) ||\n                        (pbVar3 = prVar5->word_char, prVar35 = context,\n                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1)) {\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)context->nodes_alloc;\n                  goto LAB_00020df8;\n                }" if (parenthesized_expression "(((piVar10[1] & 0x1000U) == 0) ||\n                        (pbVar3 = prVar5->word_char, prVar35 = context,\n                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1))" ( (binary_expression "((piVar10[1] & 0x1000U) == 0) ||\n                        (pbVar3 = prVar5->word_char, prVar35 = context,\n                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1)" (parenthesized_expression "((piVar10[1] & 0x1000U) == 0)" ( (binary_expression "(piVar10[1] & 0x1000U) == 0" (parenthesized_expression "(piVar10[1] & 0x1000U)" ( (binary_expression "piVar10[1] & 0x1000U" (subscript_expression "piVar10[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) || (parenthesized_expression "(pbVar3 = prVar5->word_char, prVar35 = context,\n                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1)" ( (comma_expression "pbVar3 = prVar5->word_char, prVar35 = context,\n                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1" (assignment_expression "pbVar3 = prVar5->word_char" identifier = (field_expression "prVar5->word_char" identifier -> field_identifier)) , (comma_expression "prVar35 = context,\n                        prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1" (assignment_expression "prVar35 = context" identifier = identifier) , (comma_expression "prVar5 = (re_dfa_t *)auStackY_138._20_4_,\n                        *(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1" (assignment_expression "prVar5 = (re_dfa_t *)auStackY_138._20_4_" identifier = (cast_expression "(re_dfa_t *)auStackY_138._20_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._20_4_" identifier . field_identifier))) , (binary_expression "*(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U) == -1" (pointer_expression "*(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U)" * (cast_expression "(int *)((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U)" ( (binary_expression "(int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char +\n                                0xffffffa0U" (binary_expression "(int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8) +\n                                (int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char" (cast_expression "(int)(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8)" ( (binary_expression "((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char + 0xffffffe8" (field_expression "((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))->\n                                       word_char" (parenthesized_expression "((re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)\n                                       (((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18)" ( (binary_expression "((re_dfa_t *)(pbVar3 + -0x18))->word_char + -0x18" (field_expression "((re_dfa_t *)(pbVar3 + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)(pbVar3 + -0x18))" ( (cast_expression "(re_dfa_t *)(pbVar3 + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + -0x18)" ( (binary_expression "pbVar3 + -0x18" identifier + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) + (cast_expression "(int)((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char" ( (type_descriptor "int" primitive_type) ) (field_expression "((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)\n                                     (((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18)" ( (binary_expression "((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char + -0x18" (field_expression "((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18))" ( (cast_expression "(re_dfa_t *)\n                                      (((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18)" ( (binary_expression "((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char + -0x18" (field_expression "((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))->\n                                       word_char" (parenthesized_expression "((re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18))" ( (cast_expression "(re_dfa_t *)\n                                       ((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18)" ( (binary_expression "(bitset_word_t *)(auStackY_138._20_4_ + 0x60) + -0x18" (cast_expression "(bitset_word_t *)(auStackY_138._20_4_ + 0x60)" ( (type_descriptor "bitset_word_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStackY_138._20_4_ + 0x60)" ( (binary_expression "auStackY_138._20_4_ + 0x60" (field_expression "auStackY_138._20_4_" identifier . field_identifier) + number_literal) ))) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier))) + number_literal) )))) == number_literal)))) ))) )) (compound_statement "{\n                  piVar32[1] = auStackY_138._56_4_;\n                  prVar35 = (re_dfa_t *)context->nodes_alloc;\n                  goto LAB_00020df8;\n                }" { (expression_statement "piVar32[1] = auStackY_138._56_4_;" (assignment_expression "piVar32[1] = auStackY_138._56_4_" (subscript_expression "piVar32[1]" identifier [ number_literal ]) = (field_expression "auStackY_138._56_4_" identifier . field_identifier)) ;) (expression_statement "prVar35 = (re_dfa_t *)context->nodes_alloc;" (assignment_expression "prVar35 = (re_dfa_t *)context->nodes_alloc" identifier = (cast_expression "(re_dfa_t *)context->nodes_alloc" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "context->nodes_alloc" identifier -> field_identifier))) ;) (goto_statement "goto LAB_00020df8;" goto statement_identifier ;) })))) (expression_statement "prVar15 = (re_dfa_t *)auStackY_138._28_4_;" (assignment_expression "prVar15 = (re_dfa_t *)auStackY_138._28_4_" identifier = (cast_expression "(re_dfa_t *)auStackY_138._28_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._28_4_" identifier . field_identifier))) ;) (expression_statement "auStackY_138._44_4_ = prVar34;" (assignment_expression "auStackY_138._44_4_ = prVar34" (field_expression "auStackY_138._44_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStackY_138._48_4_ = auStackY_138._56_4_;" (assignment_expression "auStackY_138._48_4_ = auStackY_138._56_4_" (field_expression "auStackY_138._48_4_" identifier . field_identifier) = (field_expression "auStackY_138._56_4_" identifier . field_identifier)) ;) (expression_statement "(*pcVar18)(prVar35);" (call_expression "(*pcVar18)(prVar35)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(prVar35)" ( identifier ))) ;) (expression_statement "prVar35 = (re_dfa_t *)context->nodes_alloc;" (assignment_expression "prVar35 = (re_dfa_t *)context->nodes_alloc" identifier = (cast_expression "(re_dfa_t *)context->nodes_alloc" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "context->nodes_alloc" identifier -> field_identifier))) ;) (expression_statement "prVar27 = (re_dfa_t *)auStackY_138._48_4_;" (assignment_expression "prVar27 = (re_dfa_t *)auStackY_138._48_4_" identifier = (cast_expression "(re_dfa_t *)auStackY_138._48_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._48_4_" identifier . field_identifier))) ;) (expression_statement "prVar34 = (re_dfa_t *)auStackY_138._44_4_;" (assignment_expression "prVar34 = (re_dfa_t *)auStackY_138._44_4_" identifier = (cast_expression "(re_dfa_t *)auStackY_138._44_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._44_4_" identifier . field_identifier))) ;) (expression_statement "puVar40 = (undefined *)auStackY_138._0_4_;" (assignment_expression "puVar40 = (undefined *)auStackY_138._0_4_" identifier = (cast_expression "(undefined *)auStackY_138._0_4_" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._0_4_" identifier . field_identifier))) ;) })) })) }))) (labeled_statement "LAB_00020df8:\n          uVar33 = auStackY_138._24_4_;" statement_identifier : (expression_statement "uVar33 = auStackY_138._24_4_;" (assignment_expression "uVar33 = auStackY_138._24_4_" identifier = (field_expression "auStackY_138._24_4_" identifier . field_identifier)) ;)) (if_statement "if ((prVar27 == prVar35) && ((re_dfa_t *)mctx_01->word_char[0] == input)) {\n            pcVar18 = *(code **)(puVar40 + -0x7db0);\n            if (fs == (re_fail_stack_t *)0x0) {\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ == 0) goto LAB_00020f14;\n              (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              rVar11 = _REG_NOERROR;\n              goto LAB_00020f18;\n            }\n            prVar34 = (re_dfa_t *)0x0;\n            if (prVar25 == (re_dfa_t *)0x0) {\nLAB_000212c0:\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ != 0) {\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              }\n              goto LAB_00020f00;\n            }\n            prVar5 = (re_dfa_t *)0xffffffff;\n            prVar35 = context;\n            while (((int)prVar35->nodes < 0 || (prVar35->nodes_alloc != 0xffffffff))) {\n              prVar34 = (re_dfa_t *)((int)&prVar34->nodes + 1);\n              prVar35 = (re_dfa_t *)&prVar35->nodes_len;\n              if (prVar25 == prVar34) {\n                pcVar18 = *(code **)(puVar40 + -0x7db0);\n                goto LAB_000212c0;\n              }\n            }\n            *(Idx *)(puVar41 + 0x14) = top_node;\n            *(re_dfa_t **)(puVar41 + 0x10) = context;\n            prVar27 = prVar25;\n            input = (re_dfa_t *)(*(code *)uVar33)(fs,&fs->stack,auStackY_138 + 0x38);\n            prVar34 = (re_dfa_t *)((int)input << 3);\n            puVar40 = (undefined *)auStackY_138._0_4_;\n          }" if (parenthesized_expression "((prVar27 == prVar35) && ((re_dfa_t *)mctx_01->word_char[0] == input))" ( (binary_expression "(prVar27 == prVar35) && ((re_dfa_t *)mctx_01->word_char[0] == input)" (parenthesized_expression "(prVar27 == prVar35)" ( (binary_expression "prVar27 == prVar35" identifier == identifier) )) && (parenthesized_expression "((re_dfa_t *)mctx_01->word_char[0] == input)" ( (binary_expression "(re_dfa_t *)mctx_01->word_char[0] == input" (cast_expression "(re_dfa_t *)mctx_01->word_char[0]" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "mctx_01->word_char[0]" (field_expression "mctx_01->word_char" identifier -> field_identifier) [ number_literal ])) == identifier) ))) )) (compound_statement "{\n            pcVar18 = *(code **)(puVar40 + -0x7db0);\n            if (fs == (re_fail_stack_t *)0x0) {\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ == 0) goto LAB_00020f14;\n              (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              rVar11 = _REG_NOERROR;\n              goto LAB_00020f18;\n            }\n            prVar34 = (re_dfa_t *)0x0;\n            if (prVar25 == (re_dfa_t *)0x0) {\nLAB_000212c0:\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ != 0) {\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              }\n              goto LAB_00020f00;\n            }\n            prVar5 = (re_dfa_t *)0xffffffff;\n            prVar35 = context;\n            while (((int)prVar35->nodes < 0 || (prVar35->nodes_alloc != 0xffffffff))) {\n              prVar34 = (re_dfa_t *)((int)&prVar34->nodes + 1);\n              prVar35 = (re_dfa_t *)&prVar35->nodes_len;\n              if (prVar25 == prVar34) {\n                pcVar18 = *(code **)(puVar40 + -0x7db0);\n                goto LAB_000212c0;\n              }\n            }\n            *(Idx *)(puVar41 + 0x14) = top_node;\n            *(re_dfa_t **)(puVar41 + 0x10) = context;\n            prVar27 = prVar25;\n            input = (re_dfa_t *)(*(code *)uVar33)(fs,&fs->stack,auStackY_138 + 0x38);\n            prVar34 = (re_dfa_t *)((int)input << 3);\n            puVar40 = (undefined *)auStackY_138._0_4_;\n          }" { (expression_statement "pcVar18 = *(code **)(puVar40 + -0x7db0);" (assignment_expression "pcVar18 = *(code **)(puVar40 + -0x7db0)" identifier = (pointer_expression "*(code **)(puVar40 + -0x7db0)" * (cast_expression "(code **)(puVar40 + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x7db0)" ( (binary_expression "puVar40 + -0x7db0" identifier + number_literal) ))))) ;) (if_statement "if (fs == (re_fail_stack_t *)0x0) {\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ == 0) goto LAB_00020f14;\n              (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              rVar11 = _REG_NOERROR;\n              goto LAB_00020f18;\n            }" if (parenthesized_expression "(fs == (re_fail_stack_t *)0x0)" ( (binary_expression "fs == (re_fail_stack_t *)0x0" identifier == (cast_expression "(re_fail_stack_t *)0x0" ( (type_descriptor "re_fail_stack_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ == 0) goto LAB_00020f14;\n              (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              rVar11 = _REG_NOERROR;\n              goto LAB_00020f18;\n            }" { (expression_statement "(*pcVar18)(auStackY_138._68_4_);" (call_expression "(*pcVar18)(auStackY_138._68_4_)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(auStackY_138._68_4_)" ( (field_expression "auStackY_138._68_4_" identifier . field_identifier) ))) ;) (if_statement "if (auStackY_138._16_4_ == 0) goto LAB_00020f14;" if (parenthesized_expression "(auStackY_138._16_4_ == 0)" ( (binary_expression "auStackY_138._16_4_ == 0" (field_expression "auStackY_138._16_4_" identifier . field_identifier) == number_literal) )) (goto_statement "goto LAB_00020f14;" goto statement_identifier ;)) (expression_statement "(**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);" (call_expression "(**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_)" (parenthesized_expression "(**(code **)(auStackY_138._0_4_ + -0x7db0))" ( (pointer_expression "**(code **)(auStackY_138._0_4_ + -0x7db0)" * (pointer_expression "*(code **)(auStackY_138._0_4_ + -0x7db0)" * (cast_expression "(code **)(auStackY_138._0_4_ + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStackY_138._0_4_ + -0x7db0)" ( (binary_expression "auStackY_138._0_4_ + -0x7db0" (field_expression "auStackY_138._0_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(auStackY_138._20_4_)" ( (field_expression "auStackY_138._20_4_" identifier . field_identifier) ))) ;) (expression_statement "rVar11 = _REG_NOERROR;" (assignment_expression "rVar11 = _REG_NOERROR" identifier = identifier) ;) (goto_statement "goto LAB_00020f18;" goto statement_identifier ;) })) (expression_statement "prVar34 = (re_dfa_t *)0x0;" (assignment_expression "prVar34 = (re_dfa_t *)0x0" identifier = (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (prVar25 == (re_dfa_t *)0x0) {\nLAB_000212c0:\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ != 0) {\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              }\n              goto LAB_00020f00;\n            }" if (parenthesized_expression "(prVar25 == (re_dfa_t *)0x0)" ( (binary_expression "prVar25 == (re_dfa_t *)0x0" identifier == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000212c0:\n              (*pcVar18)(auStackY_138._68_4_);\n              if (auStackY_138._16_4_ != 0) {\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              }\n              goto LAB_00020f00;\n            }" { (labeled_statement "LAB_000212c0:\n              (*pcVar18)(auStackY_138._68_4_);" statement_identifier : (expression_statement "(*pcVar18)(auStackY_138._68_4_);" (call_expression "(*pcVar18)(auStackY_138._68_4_)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(auStackY_138._68_4_)" ( (field_expression "auStackY_138._68_4_" identifier . field_identifier) ))) ;)) (if_statement "if (auStackY_138._16_4_ != 0) {\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              }" if (parenthesized_expression "(auStackY_138._16_4_ != 0)" ( (binary_expression "auStackY_138._16_4_ != 0" (field_expression "auStackY_138._16_4_" identifier . field_identifier) != number_literal) )) (compound_statement "{\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n              }" { (expression_statement "(**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);" (call_expression "(**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_)" (parenthesized_expression "(**(code **)(auStackY_138._0_4_ + -0x7db0))" ( (pointer_expression "**(code **)(auStackY_138._0_4_ + -0x7db0)" * (pointer_expression "*(code **)(auStackY_138._0_4_ + -0x7db0)" * (cast_expression "(code **)(auStackY_138._0_4_ + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStackY_138._0_4_ + -0x7db0)" ( (binary_expression "auStackY_138._0_4_ + -0x7db0" (field_expression "auStackY_138._0_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(auStackY_138._20_4_)" ( (field_expression "auStackY_138._20_4_" identifier . field_identifier) ))) ;) })) (goto_statement "goto LAB_00020f00;" goto statement_identifier ;) })) (expression_statement "prVar5 = (re_dfa_t *)0xffffffff;" (assignment_expression "prVar5 = (re_dfa_t *)0xffffffff" identifier = (cast_expression "(re_dfa_t *)0xffffffff" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "prVar35 = context;" (assignment_expression "prVar35 = context" identifier = identifier) ;) (while_statement "while (((int)prVar35->nodes < 0 || (prVar35->nodes_alloc != 0xffffffff))) {\n              prVar34 = (re_dfa_t *)((int)&prVar34->nodes + 1);\n              prVar35 = (re_dfa_t *)&prVar35->nodes_len;\n              if (prVar25 == prVar34) {\n                pcVar18 = *(code **)(puVar40 + -0x7db0);\n                goto LAB_000212c0;\n              }\n            }" while (parenthesized_expression "(((int)prVar35->nodes < 0 || (prVar35->nodes_alloc != 0xffffffff)))" ( (parenthesized_expression "((int)prVar35->nodes < 0 || (prVar35->nodes_alloc != 0xffffffff))" ( (binary_expression "(int)prVar35->nodes < 0 || (prVar35->nodes_alloc != 0xffffffff)" (binary_expression "(int)prVar35->nodes < 0" (cast_expression "(int)prVar35->nodes" ( (type_descriptor "int" primitive_type) ) (field_expression "prVar35->nodes" identifier -> field_identifier)) < number_literal) || (parenthesized_expression "(prVar35->nodes_alloc != 0xffffffff)" ( (binary_expression "prVar35->nodes_alloc != 0xffffffff" (field_expression "prVar35->nodes_alloc" identifier -> field_identifier) != number_literal) ))) )) )) (compound_statement "{\n              prVar34 = (re_dfa_t *)((int)&prVar34->nodes + 1);\n              prVar35 = (re_dfa_t *)&prVar35->nodes_len;\n              if (prVar25 == prVar34) {\n                pcVar18 = *(code **)(puVar40 + -0x7db0);\n                goto LAB_000212c0;\n              }\n            }" { (expression_statement "prVar34 = (re_dfa_t *)((int)&prVar34->nodes + 1);" (assignment_expression "prVar34 = (re_dfa_t *)((int)&prVar34->nodes + 1)" identifier = (cast_expression "(re_dfa_t *)((int)&prVar34->nodes + 1)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar34->nodes + 1)" ( (binary_expression "(int)&prVar34->nodes + 1" (cast_expression "(int)&prVar34->nodes" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar34->nodes" & (field_expression "prVar34->nodes" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "prVar35 = (re_dfa_t *)&prVar35->nodes_len;" (assignment_expression "prVar35 = (re_dfa_t *)&prVar35->nodes_len" identifier = (cast_expression "(re_dfa_t *)&prVar35->nodes_len" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar35->nodes_len" & (field_expression "prVar35->nodes_len" identifier -> field_identifier)))) ;) (if_statement "if (prVar25 == prVar34) {\n                pcVar18 = *(code **)(puVar40 + -0x7db0);\n                goto LAB_000212c0;\n              }" if (parenthesized_expression "(prVar25 == prVar34)" ( (binary_expression "prVar25 == prVar34" identifier == identifier) )) (compound_statement "{\n                pcVar18 = *(code **)(puVar40 + -0x7db0);\n                goto LAB_000212c0;\n              }" { (expression_statement "pcVar18 = *(code **)(puVar40 + -0x7db0);" (assignment_expression "pcVar18 = *(code **)(puVar40 + -0x7db0)" identifier = (pointer_expression "*(code **)(puVar40 + -0x7db0)" * (cast_expression "(code **)(puVar40 + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x7db0)" ( (binary_expression "puVar40 + -0x7db0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000212c0;" goto statement_identifier ;) })) })) (expression_statement "*(Idx *)(puVar41 + 0x14) = top_node;" (assignment_expression "*(Idx *)(puVar41 + 0x14) = top_node" (pointer_expression "*(Idx *)(puVar41 + 0x14)" * (cast_expression "(Idx *)(puVar41 + 0x14)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x14)" ( (binary_expression "puVar41 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(re_dfa_t **)(puVar41 + 0x10) = context;" (assignment_expression "*(re_dfa_t **)(puVar41 + 0x10) = context" (pointer_expression "*(re_dfa_t **)(puVar41 + 0x10)" * (cast_expression "(re_dfa_t **)(puVar41 + 0x10)" ( (type_descriptor "re_dfa_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x10)" ( (binary_expression "puVar41 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "prVar27 = prVar25;" (assignment_expression "prVar27 = prVar25" identifier = identifier) ;) (expression_statement "input = (re_dfa_t *)(*(code *)uVar33)(fs,&fs->stack,auStackY_138 + 0x38);" (assignment_expression "input = (re_dfa_t *)(*(code *)uVar33)(fs,&fs->stack,auStackY_138 + 0x38)" identifier = (cast_expression "(re_dfa_t *)(*(code *)uVar33)(fs,&fs->stack,auStackY_138 + 0x38)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)uVar33)(fs,&fs->stack,auStackY_138 + 0x38)" (parenthesized_expression "(*(code *)uVar33)" ( (pointer_expression "*(code *)uVar33" * (cast_expression "(code *)uVar33" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(fs,&fs->stack,auStackY_138 + 0x38)" ( identifier , (pointer_expression "&fs->stack" & (field_expression "fs->stack" identifier -> field_identifier)) , (binary_expression "auStackY_138 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "prVar34 = (re_dfa_t *)((int)input << 3);" (assignment_expression "prVar34 = (re_dfa_t *)((int)input << 3)" identifier = (cast_expression "(re_dfa_t *)((int)input << 3)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)input << 3)" ( (binary_expression "(int)input << 3" (cast_expression "(int)input" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "puVar40 = (undefined *)auStackY_138._0_4_;" (assignment_expression "puVar40 = (undefined *)auStackY_138._0_4_" identifier = (cast_expression "(undefined *)auStackY_138._0_4_" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._0_4_" identifier . field_identifier))) ;) })) (expression_statement "prVar35 = (re_dfa_t *)auStackY_138._56_4_;" (assignment_expression "prVar35 = (re_dfa_t *)auStackY_138._56_4_" identifier = (cast_expression "(re_dfa_t *)auStackY_138._56_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._56_4_" identifier . field_identifier))) ;) (expression_statement "prVar30 = (re_dfa_t *)mctx_01->completed_bkref_map;" (assignment_expression "prVar30 = (re_dfa_t *)mctx_01->completed_bkref_map" identifier = (cast_expression "(re_dfa_t *)mctx_01->completed_bkref_map" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "mctx_01->completed_bkref_map" identifier -> field_identifier))) ;) (expression_statement "prVar22 = (re_dfa_t *)prVar30->nodes;" (assignment_expression "prVar22 = (re_dfa_t *)prVar30->nodes" identifier = (cast_expression "(re_dfa_t *)prVar30->nodes" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prVar30->nodes" identifier -> field_identifier))) ;) (expression_statement "prVar5 = (re_dfa_t *)\n                   ((int)(((re_dfa_t *)\n                          (((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))->\n                          word_char + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U);" (assignment_expression "prVar5 = (re_dfa_t *)\n                   ((int)(((re_dfa_t *)\n                          (((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))->\n                          word_char + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U)" identifier = (cast_expression "(re_dfa_t *)\n                   ((int)(((re_dfa_t *)\n                          (((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))->\n                          word_char + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(((re_dfa_t *)\n                          (((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))->\n                          word_char + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U)" ( (binary_expression "(int)(((re_dfa_t *)\n                          (((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))->\n                          word_char + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U" (binary_expression "(int)(((re_dfa_t *)\n                          (((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))->\n                          word_char + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char" (cast_expression "(int)(((re_dfa_t *)\n                          (((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))->\n                          word_char + 0xffffffe8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((re_dfa_t *)\n                          (((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))->\n                          word_char + 0xffffffe8)" ( (binary_expression "((re_dfa_t *)\n                          (((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))->\n                          word_char + 0xffffffe8" (field_expression "((re_dfa_t *)\n                          (((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))->\n                          word_char" (parenthesized_expression "((re_dfa_t *)\n                          (((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)\n                          (((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18)" ( (binary_expression "((re_dfa_t *)(prVar34->word_char + -0x18))->word_char + -0x18" (field_expression "((re_dfa_t *)(prVar34->word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)(prVar34->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)(prVar34->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prVar34->word_char + -0x18)" ( (binary_expression "prVar34->word_char + -0x18" (field_expression "prVar34->word_char" identifier -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) + (cast_expression "(int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char" ( (type_descriptor "int" primitive_type) ) (field_expression "((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))" ( (cast_expression "(re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)\n                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18)" ( (binary_expression "((re_dfa_t *)\n                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18" (field_expression "((re_dfa_t *)\n                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)\n                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)\n                         (((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18)" ( (binary_expression "((re_dfa_t *)(prVar22->word_char + -0x18))->word_char + -0x18" (field_expression "((re_dfa_t *)(prVar22->word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)(prVar22->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)(prVar22->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prVar22->word_char + -0x18)" ( (binary_expression "prVar22->word_char + -0x18" (field_expression "prVar22->word_char" identifier -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier))) + number_literal) )))) ;) (expression_statement "prVar15 = (re_dfa_t *)(uint)*(byte *)&prVar5->nodes_alloc;" (assignment_expression "prVar15 = (re_dfa_t *)(uint)*(byte *)&prVar5->nodes_alloc" identifier = (binary_expression "(re_dfa_t *)(uint)*(byte *)&prVar5->nodes_alloc" (cast_expression "(re_dfa_t *)(uint)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)&prVar5->nodes_alloc" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar5->nodes_alloc" & (field_expression "prVar5->nodes_alloc" identifier -> field_identifier))))) ;) (if_statement "if ((*(byte *)&prVar5->nodes_alloc & 8) == 0) {\n            if ((prVar5->nodes_alloc & 0x800) == 0) {\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n              if (prVar15 != (re_dfa_t *)0x4) goto LAB_00020e44;\n              pprVar2 = &prVar5->nodes;\n              prVar5 = (re_dfa_t *)(context->word_char + (int)*pprVar2 * 2 + -0x16)[1];\n              bVar23 = context->word_char[(int)*pprVar2 * 2 + -0x16];\n              prVar27 = (re_dfa_t *)((int)prVar5 - bVar23);\n              if (fs == (re_fail_stack_t *)0x0) {\n                if (prVar27 == (re_dfa_t *)0x0) goto LAB_00021318;\n              }\n              else {\n                prVar22 = input;\n                if ((bVar23 == 0xffffffff) ||\n                   (prVar15 = (re_dfa_t *)(auStackY_138 + 0x38), prVar5 == (re_dfa_t *)0xffffffff))\n                goto LAB_00020f7c;\n                if (prVar27 == (re_dfa_t *)0x0) {\nLAB_00021318:\n                  prVar5 = input;\n                  auStackY_138._44_4_ = prVar34;\n                  auStackY_138._48_4_ = prVar30;\n                  iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n                  prVar34 = input;\n                  if (iVar8 == 0) goto LAB_000213ac;\n                  pprVar1 = (re_node_set **)(auStackY_138._48_4_ + 0x14);\n                  auStackY_138._8_4_ = auStackY_138._48_4_;\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n                  prVar34 = (re_dfa_t *)*(*pprVar1)[(int)input].elems;\n                  prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n                  prVar15 = prVar34;\n                  iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n                  puVar40 = (undefined *)auStackY_138._0_4_;\n                  if (iVar8 != 0) goto LAB_00020ecc;\n                  prVar5 = (re_dfa_t *)\n                           ((int)(auStackY_138._44_4_ + 0x60) +\n                           (int)(*(re_token_t **)auStackY_138._8_4_ + -0xc));\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  prVar30 = (re_dfa_t *)auStackY_138._8_4_;\n                  goto LAB_00020e44;\n                }\n                prVar5 = (re_dfa_t *)\n                         ((int)(auStackY_138._56_4_ + 0x60) + (mctx_01->nodes_alloc - 0x60));\n                auStackY_138._44_4_ = prVar30;\n                auStackY_138._48_4_ = prVar27;\n                iVar8 = (**(code **)(puVar40 + -0x7dd0))(mctx_01->nodes_alloc + bVar23);\n                prVar15 = prVar27;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar30 = (re_dfa_t *)auStackY_138._44_4_;\n                prVar22 = prVar35;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if (iVar8 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              auStackY_138._56_4_ =\n                   (int)(((re_dfa_t *)\n                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))->word_char\n                        + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U;\n              prVar34 = *(re_dfa_t **)(((re_node_set *)&prVar30->nexts)->alloc + (int)input * 4);\n              input = prVar35;\n            }\n            else {\n              prVar5 = (re_dfa_t *)&prVar30->syntax;\n              auStackY_138._48_4_ = prVar30;\n              auStackY_138._44_4_ = prVar34;\n              *(undefined4 *)(puVar41 + 0x10) = auStackY_138._56_4_;\n              prVar15 = input;\n              prVar27 = (re_dfa_t *)\n                        check_node_accept_bytes\n                                  (prVar22,(Idx)prVar5,(re_string_t *)input,(Idx)mctx_01,\n                                   *(re_dfa_t **)(puVar41 + 0x10));\n              prVar30 = (re_dfa_t *)auStackY_138._48_4_;\n              prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (prVar27 != (re_dfa_t *)0x0) goto LAB_00021258;\n              prVar5 = (re_dfa_t *)\n                       ((int)(auStackY_138._44_4_ + 0x60) +\n                       (int)(*(re_token_t **)auStackY_138._48_4_ + -0xc));\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_00020e44:\n              prVar15 = prVar27;\n              auStackY_138._44_4_ = prVar30;\n              auStackY_138._48_4_ = prVar15;\n              _Var14 = check_node_accept((re_match_context_t *)mctx_01,(re_token_t *)prVar5,\n                                         (Idx)prVar15);\n              prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (CONCAT31(extraout_var,_Var14) == 0) goto LAB_00020f6c;\n              auStackY_138._56_4_ = (int)(re_token_t **)auStackY_138._48_4_ + 1;\n              input = (re_dfa_t *)\n                      (((re_node_set *)(auStackY_138._44_4_ + 0xc))->alloc + (int)input * 4);\n              prVar34 = (re_dfa_t *)input->nodes;\n            }\n            if (fs != (re_fail_stack_t *)0x0) {\n              prVar22 = input;\n              if ((mctx_01->mb_cur_max < (int)auStackY_138._56_4_) ||\n                 (iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4), iVar8 == 0))\n              goto LAB_00020f7c;\n              prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n              prVar15 = prVar34;\n              iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (iVar8 == 0) goto LAB_00020f7c;\n            }\n            auStackY_138._64_4_ = 0;\n          }\n          else {\n            prVar34 = (re_dfa_t *)(prVar30->edests + (int)input);\n            iVar13 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n            iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n            prVar5 = input;\n            if (iVar8 == 0) {\nLAB_000213ac:\n              input = prVar34;\n              pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);\n              goto LAB_000213b0;\n            }\n            sVar28 = prVar34->nodes_alloc;\n            input = prVar34;\n            puVar40 = (undefined *)auStackY_138._0_4_;\n            if ((int)sVar28 < 1) goto LAB_00020f6c;\n            uVar33 = *(undefined4 *)(iVar13 + 8);\n            pIVar31 = (Idx *)prVar34->nodes_len;\n            sVar29 = 0;\n            prVar22 = (re_dfa_t *)0xffffffff;\n            prVar35 = (re_dfa_t *)(iVar13 + 0xc);\n            prVar30 = (re_dfa_t *)0xffffffff;\n            do {\n              prVar5 = prVar35;\n              input = (re_dfa_t *)*pIVar31;\n              prVar15 = input;\n              prVar35 = prVar5;\n              iVar8 = (*(code *)auStackY_138._52_4_)(uVar33);\n              prVar34 = prVar30;\n              if ((iVar8 != 0) && (prVar34 = input, prVar30 != prVar22)) {\n                prVar5 = (re_dfa_t *)(auStackY_138 + 0x44);\n                prVar15 = prVar30;\n                iVar8 = (*(code *)auStackY_138._52_4_)(auStackY_138._64_4_);\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if ((iVar8 != 0) || (prVar34 = prVar30, fs == (re_fail_stack_t *)0x0)) break;\n                prVar15 = (re_dfa_t *)fs->num;\n                prVar5 = (re_dfa_t *)((int)&prVar15->nodes + 1);\n                fs->num = (Idx)prVar5;\n                if (prVar5 == (re_dfa_t *)fs->alloc) {\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  prVar5 = (re_dfa_t *)((int)prVar5 * 0x30);\n                  auStackY_138._44_4_ = prVar15;\n                  prVar12 = (re_fail_stack_ent_t *)\n                            (**(code **)(auStackY_138._0_4_ + -0x7e18))(fs->stack);\n                  if (prVar12 != (re_fail_stack_ent_t *)0x0) {\n                    fs->stack = prVar12;\n                    fs->alloc = fs->alloc << 1;\n                    prVar15 = (re_dfa_t *)auStackY_138._44_4_;\n                    prVar34 = (re_dfa_t *)auStackY_138._48_4_;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  prVar12 = fs->stack;\n                  prVar34 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_000210a0:\n                  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7e1c);\n                  auStackY_138._48_4_ = prVar12 + (int)prVar15;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes = (re_token_t *)prVar34;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes_alloc = (size_t)input;\n                  pIVar31 = (Idx *)(*pcVar18)(auStackY_138._28_4_);\n                  *(Idx **)(auStackY_138._48_4_ + 8) = pIVar31;\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  if (pIVar31 != (Idx *)0x0) {\n                    prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                    (**(code **)(auStackY_138._0_4_ + -0x7db8))(pIVar31,context);\n                    prVar5 = (re_dfa_t *)top_node;\n                    prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                    rVar11 = re_node_set_init_copy\n                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node);\n                    prVar34 = prVar30;\n                    puVar40 = (undefined *)auStackY_138._0_4_;\n                    if (rVar11 == _REG_NOERROR) break;\n                  }\n                }\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._68_4_);\n                if (auStackY_138._16_4_ != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              sVar29 = sVar29 + 1;\n              pIVar31 = pIVar31 + 1;\n              prVar30 = prVar34;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n            } while (sVar28 != sVar29);\n          }" if (parenthesized_expression "((*(byte *)&prVar5->nodes_alloc & 8) == 0)" ( (binary_expression "(*(byte *)&prVar5->nodes_alloc & 8) == 0" (parenthesized_expression "(*(byte *)&prVar5->nodes_alloc & 8)" ( (binary_expression "*(byte *)&prVar5->nodes_alloc & 8" (pointer_expression "*(byte *)&prVar5->nodes_alloc" * (cast_expression "(byte *)&prVar5->nodes_alloc" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar5->nodes_alloc" & (field_expression "prVar5->nodes_alloc" identifier -> field_identifier)))) & number_literal) )) == number_literal) )) (compound_statement "{\n            if ((prVar5->nodes_alloc & 0x800) == 0) {\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n              if (prVar15 != (re_dfa_t *)0x4) goto LAB_00020e44;\n              pprVar2 = &prVar5->nodes;\n              prVar5 = (re_dfa_t *)(context->word_char + (int)*pprVar2 * 2 + -0x16)[1];\n              bVar23 = context->word_char[(int)*pprVar2 * 2 + -0x16];\n              prVar27 = (re_dfa_t *)((int)prVar5 - bVar23);\n              if (fs == (re_fail_stack_t *)0x0) {\n                if (prVar27 == (re_dfa_t *)0x0) goto LAB_00021318;\n              }\n              else {\n                prVar22 = input;\n                if ((bVar23 == 0xffffffff) ||\n                   (prVar15 = (re_dfa_t *)(auStackY_138 + 0x38), prVar5 == (re_dfa_t *)0xffffffff))\n                goto LAB_00020f7c;\n                if (prVar27 == (re_dfa_t *)0x0) {\nLAB_00021318:\n                  prVar5 = input;\n                  auStackY_138._44_4_ = prVar34;\n                  auStackY_138._48_4_ = prVar30;\n                  iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n                  prVar34 = input;\n                  if (iVar8 == 0) goto LAB_000213ac;\n                  pprVar1 = (re_node_set **)(auStackY_138._48_4_ + 0x14);\n                  auStackY_138._8_4_ = auStackY_138._48_4_;\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n                  prVar34 = (re_dfa_t *)*(*pprVar1)[(int)input].elems;\n                  prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n                  prVar15 = prVar34;\n                  iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n                  puVar40 = (undefined *)auStackY_138._0_4_;\n                  if (iVar8 != 0) goto LAB_00020ecc;\n                  prVar5 = (re_dfa_t *)\n                           ((int)(auStackY_138._44_4_ + 0x60) +\n                           (int)(*(re_token_t **)auStackY_138._8_4_ + -0xc));\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  prVar30 = (re_dfa_t *)auStackY_138._8_4_;\n                  goto LAB_00020e44;\n                }\n                prVar5 = (re_dfa_t *)\n                         ((int)(auStackY_138._56_4_ + 0x60) + (mctx_01->nodes_alloc - 0x60));\n                auStackY_138._44_4_ = prVar30;\n                auStackY_138._48_4_ = prVar27;\n                iVar8 = (**(code **)(puVar40 + -0x7dd0))(mctx_01->nodes_alloc + bVar23);\n                prVar15 = prVar27;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar30 = (re_dfa_t *)auStackY_138._44_4_;\n                prVar22 = prVar35;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if (iVar8 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              auStackY_138._56_4_ =\n                   (int)(((re_dfa_t *)\n                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))->word_char\n                        + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U;\n              prVar34 = *(re_dfa_t **)(((re_node_set *)&prVar30->nexts)->alloc + (int)input * 4);\n              input = prVar35;\n            }\n            else {\n              prVar5 = (re_dfa_t *)&prVar30->syntax;\n              auStackY_138._48_4_ = prVar30;\n              auStackY_138._44_4_ = prVar34;\n              *(undefined4 *)(puVar41 + 0x10) = auStackY_138._56_4_;\n              prVar15 = input;\n              prVar27 = (re_dfa_t *)\n                        check_node_accept_bytes\n                                  (prVar22,(Idx)prVar5,(re_string_t *)input,(Idx)mctx_01,\n                                   *(re_dfa_t **)(puVar41 + 0x10));\n              prVar30 = (re_dfa_t *)auStackY_138._48_4_;\n              prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (prVar27 != (re_dfa_t *)0x0) goto LAB_00021258;\n              prVar5 = (re_dfa_t *)\n                       ((int)(auStackY_138._44_4_ + 0x60) +\n                       (int)(*(re_token_t **)auStackY_138._48_4_ + -0xc));\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_00020e44:\n              prVar15 = prVar27;\n              auStackY_138._44_4_ = prVar30;\n              auStackY_138._48_4_ = prVar15;\n              _Var14 = check_node_accept((re_match_context_t *)mctx_01,(re_token_t *)prVar5,\n                                         (Idx)prVar15);\n              prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (CONCAT31(extraout_var,_Var14) == 0) goto LAB_00020f6c;\n              auStackY_138._56_4_ = (int)(re_token_t **)auStackY_138._48_4_ + 1;\n              input = (re_dfa_t *)\n                      (((re_node_set *)(auStackY_138._44_4_ + 0xc))->alloc + (int)input * 4);\n              prVar34 = (re_dfa_t *)input->nodes;\n            }\n            if (fs != (re_fail_stack_t *)0x0) {\n              prVar22 = input;\n              if ((mctx_01->mb_cur_max < (int)auStackY_138._56_4_) ||\n                 (iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4), iVar8 == 0))\n              goto LAB_00020f7c;\n              prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n              prVar15 = prVar34;\n              iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (iVar8 == 0) goto LAB_00020f7c;\n            }\n            auStackY_138._64_4_ = 0;\n          }" { (if_statement "if ((prVar5->nodes_alloc & 0x800) == 0) {\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n              if (prVar15 != (re_dfa_t *)0x4) goto LAB_00020e44;\n              pprVar2 = &prVar5->nodes;\n              prVar5 = (re_dfa_t *)(context->word_char + (int)*pprVar2 * 2 + -0x16)[1];\n              bVar23 = context->word_char[(int)*pprVar2 * 2 + -0x16];\n              prVar27 = (re_dfa_t *)((int)prVar5 - bVar23);\n              if (fs == (re_fail_stack_t *)0x0) {\n                if (prVar27 == (re_dfa_t *)0x0) goto LAB_00021318;\n              }\n              else {\n                prVar22 = input;\n                if ((bVar23 == 0xffffffff) ||\n                   (prVar15 = (re_dfa_t *)(auStackY_138 + 0x38), prVar5 == (re_dfa_t *)0xffffffff))\n                goto LAB_00020f7c;\n                if (prVar27 == (re_dfa_t *)0x0) {\nLAB_00021318:\n                  prVar5 = input;\n                  auStackY_138._44_4_ = prVar34;\n                  auStackY_138._48_4_ = prVar30;\n                  iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n                  prVar34 = input;\n                  if (iVar8 == 0) goto LAB_000213ac;\n                  pprVar1 = (re_node_set **)(auStackY_138._48_4_ + 0x14);\n                  auStackY_138._8_4_ = auStackY_138._48_4_;\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n                  prVar34 = (re_dfa_t *)*(*pprVar1)[(int)input].elems;\n                  prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n                  prVar15 = prVar34;\n                  iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n                  puVar40 = (undefined *)auStackY_138._0_4_;\n                  if (iVar8 != 0) goto LAB_00020ecc;\n                  prVar5 = (re_dfa_t *)\n                           ((int)(auStackY_138._44_4_ + 0x60) +\n                           (int)(*(re_token_t **)auStackY_138._8_4_ + -0xc));\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  prVar30 = (re_dfa_t *)auStackY_138._8_4_;\n                  goto LAB_00020e44;\n                }\n                prVar5 = (re_dfa_t *)\n                         ((int)(auStackY_138._56_4_ + 0x60) + (mctx_01->nodes_alloc - 0x60));\n                auStackY_138._44_4_ = prVar30;\n                auStackY_138._48_4_ = prVar27;\n                iVar8 = (**(code **)(puVar40 + -0x7dd0))(mctx_01->nodes_alloc + bVar23);\n                prVar15 = prVar27;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar30 = (re_dfa_t *)auStackY_138._44_4_;\n                prVar22 = prVar35;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if (iVar8 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              auStackY_138._56_4_ =\n                   (int)(((re_dfa_t *)\n                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))->word_char\n                        + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U;\n              prVar34 = *(re_dfa_t **)(((re_node_set *)&prVar30->nexts)->alloc + (int)input * 4);\n              input = prVar35;\n            }\n            else {\n              prVar5 = (re_dfa_t *)&prVar30->syntax;\n              auStackY_138._48_4_ = prVar30;\n              auStackY_138._44_4_ = prVar34;\n              *(undefined4 *)(puVar41 + 0x10) = auStackY_138._56_4_;\n              prVar15 = input;\n              prVar27 = (re_dfa_t *)\n                        check_node_accept_bytes\n                                  (prVar22,(Idx)prVar5,(re_string_t *)input,(Idx)mctx_01,\n                                   *(re_dfa_t **)(puVar41 + 0x10));\n              prVar30 = (re_dfa_t *)auStackY_138._48_4_;\n              prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (prVar27 != (re_dfa_t *)0x0) goto LAB_00021258;\n              prVar5 = (re_dfa_t *)\n                       ((int)(auStackY_138._44_4_ + 0x60) +\n                       (int)(*(re_token_t **)auStackY_138._48_4_ + -0xc));\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_00020e44:\n              prVar15 = prVar27;\n              auStackY_138._44_4_ = prVar30;\n              auStackY_138._48_4_ = prVar15;\n              _Var14 = check_node_accept((re_match_context_t *)mctx_01,(re_token_t *)prVar5,\n                                         (Idx)prVar15);\n              prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (CONCAT31(extraout_var,_Var14) == 0) goto LAB_00020f6c;\n              auStackY_138._56_4_ = (int)(re_token_t **)auStackY_138._48_4_ + 1;\n              input = (re_dfa_t *)\n                      (((re_node_set *)(auStackY_138._44_4_ + 0xc))->alloc + (int)input * 4);\n              prVar34 = (re_dfa_t *)input->nodes;\n            }" if (parenthesized_expression "((prVar5->nodes_alloc & 0x800) == 0)" ( (binary_expression "(prVar5->nodes_alloc & 0x800) == 0" (parenthesized_expression "(prVar5->nodes_alloc & 0x800)" ( (binary_expression "prVar5->nodes_alloc & 0x800" (field_expression "prVar5->nodes_alloc" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\n              if (prVar15 != (re_dfa_t *)0x4) goto LAB_00020e44;\n              pprVar2 = &prVar5->nodes;\n              prVar5 = (re_dfa_t *)(context->word_char + (int)*pprVar2 * 2 + -0x16)[1];\n              bVar23 = context->word_char[(int)*pprVar2 * 2 + -0x16];\n              prVar27 = (re_dfa_t *)((int)prVar5 - bVar23);\n              if (fs == (re_fail_stack_t *)0x0) {\n                if (prVar27 == (re_dfa_t *)0x0) goto LAB_00021318;\n              }\n              else {\n                prVar22 = input;\n                if ((bVar23 == 0xffffffff) ||\n                   (prVar15 = (re_dfa_t *)(auStackY_138 + 0x38), prVar5 == (re_dfa_t *)0xffffffff))\n                goto LAB_00020f7c;\n                if (prVar27 == (re_dfa_t *)0x0) {\nLAB_00021318:\n                  prVar5 = input;\n                  auStackY_138._44_4_ = prVar34;\n                  auStackY_138._48_4_ = prVar30;\n                  iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n                  prVar34 = input;\n                  if (iVar8 == 0) goto LAB_000213ac;\n                  pprVar1 = (re_node_set **)(auStackY_138._48_4_ + 0x14);\n                  auStackY_138._8_4_ = auStackY_138._48_4_;\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n                  prVar34 = (re_dfa_t *)*(*pprVar1)[(int)input].elems;\n                  prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n                  prVar15 = prVar34;\n                  iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n                  puVar40 = (undefined *)auStackY_138._0_4_;\n                  if (iVar8 != 0) goto LAB_00020ecc;\n                  prVar5 = (re_dfa_t *)\n                           ((int)(auStackY_138._44_4_ + 0x60) +\n                           (int)(*(re_token_t **)auStackY_138._8_4_ + -0xc));\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  prVar30 = (re_dfa_t *)auStackY_138._8_4_;\n                  goto LAB_00020e44;\n                }\n                prVar5 = (re_dfa_t *)\n                         ((int)(auStackY_138._56_4_ + 0x60) + (mctx_01->nodes_alloc - 0x60));\n                auStackY_138._44_4_ = prVar30;\n                auStackY_138._48_4_ = prVar27;\n                iVar8 = (**(code **)(puVar40 + -0x7dd0))(mctx_01->nodes_alloc + bVar23);\n                prVar15 = prVar27;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar30 = (re_dfa_t *)auStackY_138._44_4_;\n                prVar22 = prVar35;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if (iVar8 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              auStackY_138._56_4_ =\n                   (int)(((re_dfa_t *)\n                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))->word_char\n                        + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U;\n              prVar34 = *(re_dfa_t **)(((re_node_set *)&prVar30->nexts)->alloc + (int)input * 4);\n              input = prVar35;\n            }" { (expression_statement "prVar27 = (re_dfa_t *)auStackY_138._56_4_;" (assignment_expression "prVar27 = (re_dfa_t *)auStackY_138._56_4_" identifier = (cast_expression "(re_dfa_t *)auStackY_138._56_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._56_4_" identifier . field_identifier))) ;) (if_statement "if (prVar15 != (re_dfa_t *)0x4) goto LAB_00020e44;" if (parenthesized_expression "(prVar15 != (re_dfa_t *)0x4)" ( (binary_expression "prVar15 != (re_dfa_t *)0x4" identifier != (cast_expression "(re_dfa_t *)0x4" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00020e44;" goto statement_identifier ;)) (expression_statement "pprVar2 = &prVar5->nodes;" (assignment_expression "pprVar2 = &prVar5->nodes" identifier = (pointer_expression "&prVar5->nodes" & (field_expression "prVar5->nodes" identifier -> field_identifier))) ;) (expression_statement "prVar5 = (re_dfa_t *)(context->word_char + (int)*pprVar2 * 2 + -0x16)[1];" (assignment_expression "prVar5 = (re_dfa_t *)(context->word_char + (int)*pprVar2 * 2 + -0x16)[1]" identifier = (cast_expression "(re_dfa_t *)(context->word_char + (int)*pprVar2 * 2 + -0x16)[1]" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(context->word_char + (int)*pprVar2 * 2 + -0x16)[1]" (parenthesized_expression "(context->word_char + (int)*pprVar2 * 2 + -0x16)" ( (binary_expression "context->word_char + (int)*pprVar2 * 2 + -0x16" (binary_expression "context->word_char + (int)*pprVar2 * 2" (field_expression "context->word_char" identifier -> field_identifier) + (binary_expression "(int)*pprVar2 * 2" (cast_expression "(int)*pprVar2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pprVar2" * identifier)) * number_literal)) + number_literal) )) [ number_literal ]))) ;) (expression_statement "bVar23 = context->word_char[(int)*pprVar2 * 2 + -0x16];" (assignment_expression "bVar23 = context->word_char[(int)*pprVar2 * 2 + -0x16]" identifier = (subscript_expression "context->word_char[(int)*pprVar2 * 2 + -0x16]" (field_expression "context->word_char" identifier -> field_identifier) [ (binary_expression "(int)*pprVar2 * 2 + -0x16" (binary_expression "(int)*pprVar2 * 2" (cast_expression "(int)*pprVar2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pprVar2" * identifier)) * number_literal) + number_literal) ])) ;) (expression_statement "prVar27 = (re_dfa_t *)((int)prVar5 - bVar23);" (assignment_expression "prVar27 = (re_dfa_t *)((int)prVar5 - bVar23)" identifier = (cast_expression "(re_dfa_t *)((int)prVar5 - bVar23)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)prVar5 - bVar23)" ( (binary_expression "(int)prVar5 - bVar23" (cast_expression "(int)prVar5" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (if_statement "if (fs == (re_fail_stack_t *)0x0) {\n                if (prVar27 == (re_dfa_t *)0x0) goto LAB_00021318;\n              }\n              else {\n                prVar22 = input;\n                if ((bVar23 == 0xffffffff) ||\n                   (prVar15 = (re_dfa_t *)(auStackY_138 + 0x38), prVar5 == (re_dfa_t *)0xffffffff))\n                goto LAB_00020f7c;\n                if (prVar27 == (re_dfa_t *)0x0) {\nLAB_00021318:\n                  prVar5 = input;\n                  auStackY_138._44_4_ = prVar34;\n                  auStackY_138._48_4_ = prVar30;\n                  iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n                  prVar34 = input;\n                  if (iVar8 == 0) goto LAB_000213ac;\n                  pprVar1 = (re_node_set **)(auStackY_138._48_4_ + 0x14);\n                  auStackY_138._8_4_ = auStackY_138._48_4_;\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n                  prVar34 = (re_dfa_t *)*(*pprVar1)[(int)input].elems;\n                  prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n                  prVar15 = prVar34;\n                  iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n                  puVar40 = (undefined *)auStackY_138._0_4_;\n                  if (iVar8 != 0) goto LAB_00020ecc;\n                  prVar5 = (re_dfa_t *)\n                           ((int)(auStackY_138._44_4_ + 0x60) +\n                           (int)(*(re_token_t **)auStackY_138._8_4_ + -0xc));\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  prVar30 = (re_dfa_t *)auStackY_138._8_4_;\n                  goto LAB_00020e44;\n                }\n                prVar5 = (re_dfa_t *)\n                         ((int)(auStackY_138._56_4_ + 0x60) + (mctx_01->nodes_alloc - 0x60));\n                auStackY_138._44_4_ = prVar30;\n                auStackY_138._48_4_ = prVar27;\n                iVar8 = (**(code **)(puVar40 + -0x7dd0))(mctx_01->nodes_alloc + bVar23);\n                prVar15 = prVar27;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar30 = (re_dfa_t *)auStackY_138._44_4_;\n                prVar22 = prVar35;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if (iVar8 != 0) goto LAB_00020f7c;\n              }" if (parenthesized_expression "(fs == (re_fail_stack_t *)0x0)" ( (binary_expression "fs == (re_fail_stack_t *)0x0" identifier == (cast_expression "(re_fail_stack_t *)0x0" ( (type_descriptor "re_fail_stack_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                if (prVar27 == (re_dfa_t *)0x0) goto LAB_00021318;\n              }" { (if_statement "if (prVar27 == (re_dfa_t *)0x0) goto LAB_00021318;" if (parenthesized_expression "(prVar27 == (re_dfa_t *)0x0)" ( (binary_expression "prVar27 == (re_dfa_t *)0x0" identifier == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00021318;" goto statement_identifier ;)) }) (else_clause "else {\n                prVar22 = input;\n                if ((bVar23 == 0xffffffff) ||\n                   (prVar15 = (re_dfa_t *)(auStackY_138 + 0x38), prVar5 == (re_dfa_t *)0xffffffff))\n                goto LAB_00020f7c;\n                if (prVar27 == (re_dfa_t *)0x0) {\nLAB_00021318:\n                  prVar5 = input;\n                  auStackY_138._44_4_ = prVar34;\n                  auStackY_138._48_4_ = prVar30;\n                  iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n                  prVar34 = input;\n                  if (iVar8 == 0) goto LAB_000213ac;\n                  pprVar1 = (re_node_set **)(auStackY_138._48_4_ + 0x14);\n                  auStackY_138._8_4_ = auStackY_138._48_4_;\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n                  prVar34 = (re_dfa_t *)*(*pprVar1)[(int)input].elems;\n                  prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n                  prVar15 = prVar34;\n                  iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n                  puVar40 = (undefined *)auStackY_138._0_4_;\n                  if (iVar8 != 0) goto LAB_00020ecc;\n                  prVar5 = (re_dfa_t *)\n                           ((int)(auStackY_138._44_4_ + 0x60) +\n                           (int)(*(re_token_t **)auStackY_138._8_4_ + -0xc));\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  prVar30 = (re_dfa_t *)auStackY_138._8_4_;\n                  goto LAB_00020e44;\n                }\n                prVar5 = (re_dfa_t *)\n                         ((int)(auStackY_138._56_4_ + 0x60) + (mctx_01->nodes_alloc - 0x60));\n                auStackY_138._44_4_ = prVar30;\n                auStackY_138._48_4_ = prVar27;\n                iVar8 = (**(code **)(puVar40 + -0x7dd0))(mctx_01->nodes_alloc + bVar23);\n                prVar15 = prVar27;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar30 = (re_dfa_t *)auStackY_138._44_4_;\n                prVar22 = prVar35;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if (iVar8 != 0) goto LAB_00020f7c;\n              }" else (compound_statement "{\n                prVar22 = input;\n                if ((bVar23 == 0xffffffff) ||\n                   (prVar15 = (re_dfa_t *)(auStackY_138 + 0x38), prVar5 == (re_dfa_t *)0xffffffff))\n                goto LAB_00020f7c;\n                if (prVar27 == (re_dfa_t *)0x0) {\nLAB_00021318:\n                  prVar5 = input;\n                  auStackY_138._44_4_ = prVar34;\n                  auStackY_138._48_4_ = prVar30;\n                  iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n                  prVar34 = input;\n                  if (iVar8 == 0) goto LAB_000213ac;\n                  pprVar1 = (re_node_set **)(auStackY_138._48_4_ + 0x14);\n                  auStackY_138._8_4_ = auStackY_138._48_4_;\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n                  prVar34 = (re_dfa_t *)*(*pprVar1)[(int)input].elems;\n                  prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n                  prVar15 = prVar34;\n                  iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n                  puVar40 = (undefined *)auStackY_138._0_4_;\n                  if (iVar8 != 0) goto LAB_00020ecc;\n                  prVar5 = (re_dfa_t *)\n                           ((int)(auStackY_138._44_4_ + 0x60) +\n                           (int)(*(re_token_t **)auStackY_138._8_4_ + -0xc));\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  prVar30 = (re_dfa_t *)auStackY_138._8_4_;\n                  goto LAB_00020e44;\n                }\n                prVar5 = (re_dfa_t *)\n                         ((int)(auStackY_138._56_4_ + 0x60) + (mctx_01->nodes_alloc - 0x60));\n                auStackY_138._44_4_ = prVar30;\n                auStackY_138._48_4_ = prVar27;\n                iVar8 = (**(code **)(puVar40 + -0x7dd0))(mctx_01->nodes_alloc + bVar23);\n                prVar15 = prVar27;\n                prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                prVar30 = (re_dfa_t *)auStackY_138._44_4_;\n                prVar22 = prVar35;\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if (iVar8 != 0) goto LAB_00020f7c;\n              }" { (expression_statement "prVar22 = input;" (assignment_expression "prVar22 = input" identifier = identifier) ;) (if_statement "if ((bVar23 == 0xffffffff) ||\n                   (prVar15 = (re_dfa_t *)(auStackY_138 + 0x38), prVar5 == (re_dfa_t *)0xffffffff))\n                goto LAB_00020f7c;" if (parenthesized_expression "((bVar23 == 0xffffffff) ||\n                   (prVar15 = (re_dfa_t *)(auStackY_138 + 0x38), prVar5 == (re_dfa_t *)0xffffffff))" ( (binary_expression "(bVar23 == 0xffffffff) ||\n                   (prVar15 = (re_dfa_t *)(auStackY_138 + 0x38), prVar5 == (re_dfa_t *)0xffffffff)" (parenthesized_expression "(bVar23 == 0xffffffff)" ( (binary_expression "bVar23 == 0xffffffff" identifier == number_literal) )) || (parenthesized_expression "(prVar15 = (re_dfa_t *)(auStackY_138 + 0x38), prVar5 == (re_dfa_t *)0xffffffff)" ( (comma_expression "prVar15 = (re_dfa_t *)(auStackY_138 + 0x38), prVar5 == (re_dfa_t *)0xffffffff" (assignment_expression "prVar15 = (re_dfa_t *)(auStackY_138 + 0x38)" identifier = (cast_expression "(re_dfa_t *)(auStackY_138 + 0x38)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStackY_138 + 0x38)" ( (binary_expression "auStackY_138 + 0x38" identifier + number_literal) )))) , (binary_expression "prVar5 == (re_dfa_t *)0xffffffff" identifier == (cast_expression "(re_dfa_t *)0xffffffff" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_00020f7c;" goto statement_identifier ;)) (if_statement "if (prVar27 == (re_dfa_t *)0x0) {\nLAB_00021318:\n                  prVar5 = input;\n                  auStackY_138._44_4_ = prVar34;\n                  auStackY_138._48_4_ = prVar30;\n                  iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n                  prVar34 = input;\n                  if (iVar8 == 0) goto LAB_000213ac;\n                  pprVar1 = (re_node_set **)(auStackY_138._48_4_ + 0x14);\n                  auStackY_138._8_4_ = auStackY_138._48_4_;\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n                  prVar34 = (re_dfa_t *)*(*pprVar1)[(int)input].elems;\n                  prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n                  prVar15 = prVar34;\n                  iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n                  puVar40 = (undefined *)auStackY_138._0_4_;\n                  if (iVar8 != 0) goto LAB_00020ecc;\n                  prVar5 = (re_dfa_t *)\n                           ((int)(auStackY_138._44_4_ + 0x60) +\n                           (int)(*(re_token_t **)auStackY_138._8_4_ + -0xc));\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  prVar30 = (re_dfa_t *)auStackY_138._8_4_;\n                  goto LAB_00020e44;\n                }" if (parenthesized_expression "(prVar27 == (re_dfa_t *)0x0)" ( (binary_expression "prVar27 == (re_dfa_t *)0x0" identifier == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00021318:\n                  prVar5 = input;\n                  auStackY_138._44_4_ = prVar34;\n                  auStackY_138._48_4_ = prVar30;\n                  iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n                  prVar34 = input;\n                  if (iVar8 == 0) goto LAB_000213ac;\n                  pprVar1 = (re_node_set **)(auStackY_138._48_4_ + 0x14);\n                  auStackY_138._8_4_ = auStackY_138._48_4_;\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n                  prVar34 = (re_dfa_t *)*(*pprVar1)[(int)input].elems;\n                  prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n                  prVar15 = prVar34;\n                  iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n                  puVar40 = (undefined *)auStackY_138._0_4_;\n                  if (iVar8 != 0) goto LAB_00020ecc;\n                  prVar5 = (re_dfa_t *)\n                           ((int)(auStackY_138._44_4_ + 0x60) +\n                           (int)(*(re_token_t **)auStackY_138._8_4_ + -0xc));\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  prVar30 = (re_dfa_t *)auStackY_138._8_4_;\n                  goto LAB_00020e44;\n                }" { (labeled_statement "LAB_00021318:\n                  prVar5 = input;" statement_identifier : (expression_statement "prVar5 = input;" (assignment_expression "prVar5 = input" identifier = identifier) ;)) (expression_statement "auStackY_138._44_4_ = prVar34;" (assignment_expression "auStackY_138._44_4_ = prVar34" (field_expression "auStackY_138._44_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStackY_138._48_4_ = prVar30;" (assignment_expression "auStackY_138._48_4_ = prVar30" (field_expression "auStackY_138._48_4_" identifier . field_identifier) = identifier) ;) (expression_statement "iVar8 = (*(code *)auStackY_138._36_4_)(top_node);" (assignment_expression "iVar8 = (*(code *)auStackY_138._36_4_)(top_node)" identifier = (call_expression "(*(code *)auStackY_138._36_4_)(top_node)" (parenthesized_expression "(*(code *)auStackY_138._36_4_)" ( (pointer_expression "*(code *)auStackY_138._36_4_" * (cast_expression "(code *)auStackY_138._36_4_" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._36_4_" identifier . field_identifier))) )) (argument_list "(top_node)" ( identifier )))) ;) (expression_statement "prVar34 = input;" (assignment_expression "prVar34 = input" identifier = identifier) ;) (if_statement "if (iVar8 == 0) goto LAB_000213ac;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000213ac;" goto statement_identifier ;)) (expression_statement "pprVar1 = (re_node_set **)(auStackY_138._48_4_ + 0x14);" (assignment_expression "pprVar1 = (re_node_set **)(auStackY_138._48_4_ + 0x14)" identifier = (cast_expression "(re_node_set **)(auStackY_138._48_4_ + 0x14)" ( (type_descriptor "re_node_set **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStackY_138._48_4_ + 0x14)" ( (binary_expression "auStackY_138._48_4_ + 0x14" (field_expression "auStackY_138._48_4_" identifier . field_identifier) + number_literal) )))) ;) (expression_statement "auStackY_138._8_4_ = auStackY_138._48_4_;" (assignment_expression "auStackY_138._8_4_ = auStackY_138._48_4_" (field_expression "auStackY_138._8_4_" identifier . field_identifier) = (field_expression "auStackY_138._48_4_" identifier . field_identifier)) ;) (expression_statement "auStackY_138._48_4_ = auStackY_138._56_4_;" (assignment_expression "auStackY_138._48_4_ = auStackY_138._56_4_" (field_expression "auStackY_138._48_4_" identifier . field_identifier) = (field_expression "auStackY_138._56_4_" identifier . field_identifier)) ;) (expression_statement "iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);" (assignment_expression "iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4)" identifier = (pointer_expression "*(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4)" * (cast_expression "(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(mctx_01->word_char[1] + auStackY_138._56_4_ * 4)" ( (binary_expression "mctx_01->word_char[1] + auStackY_138._56_4_ * 4" (subscript_expression "mctx_01->word_char[1]" (field_expression "mctx_01->word_char" identifier -> field_identifier) [ number_literal ]) + (binary_expression "auStackY_138._56_4_ * 4" (field_expression "auStackY_138._56_4_" identifier . field_identifier) * number_literal)) ))))) ;) (expression_statement "prVar34 = (re_dfa_t *)*(*pprVar1)[(int)input].elems;" (assignment_expression "prVar34 = (re_dfa_t *)*(*pprVar1)[(int)input].elems" identifier = (cast_expression "(re_dfa_t *)*(*pprVar1)[(int)input].elems" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*(*pprVar1)[(int)input].elems" * (field_expression "(*pprVar1)[(int)input].elems" (subscript_expression "(*pprVar1)[(int)input]" (parenthesized_expression "(*pprVar1)" ( (pointer_expression "*pprVar1" * identifier) )) [ (cast_expression "(int)input" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier)))) ;) (expression_statement "prVar5 = (re_dfa_t *)(iVar8 + 0xc);" (assignment_expression "prVar5 = (re_dfa_t *)(iVar8 + 0xc)" identifier = (cast_expression "(re_dfa_t *)(iVar8 + 0xc)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) )))) ;) (expression_statement "prVar15 = prVar34;" (assignment_expression "prVar15 = prVar34" identifier = identifier) ;) (expression_statement "iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));" (assignment_expression "iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8))" identifier = (call_expression "(*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8))" (parenthesized_expression "(*(code *)auStackY_138._52_4_)" ( (pointer_expression "*(code *)auStackY_138._52_4_" * (cast_expression "(code *)auStackY_138._52_4_" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._52_4_" identifier . field_identifier))) )) (argument_list "(*(undefined4 *)(iVar8 + 8))" ( (pointer_expression "*(undefined4 *)(iVar8 + 8)" * (cast_expression "(undefined4 *)(iVar8 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "puVar40 = (undefined *)auStackY_138._0_4_;" (assignment_expression "puVar40 = (undefined *)auStackY_138._0_4_" identifier = (cast_expression "(undefined *)auStackY_138._0_4_" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._0_4_" identifier . field_identifier))) ;) (if_statement "if (iVar8 != 0) goto LAB_00020ecc;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00020ecc;" goto statement_identifier ;)) (expression_statement "prVar5 = (re_dfa_t *)\n                           ((int)(auStackY_138._44_4_ + 0x60) +\n                           (int)(*(re_token_t **)auStackY_138._8_4_ + -0xc));" (assignment_expression "prVar5 = (re_dfa_t *)\n                           ((int)(auStackY_138._44_4_ + 0x60) +\n                           (int)(*(re_token_t **)auStackY_138._8_4_ + -0xc))" identifier = (cast_expression "(re_dfa_t *)\n                           ((int)(auStackY_138._44_4_ + 0x60) +\n                           (int)(*(re_token_t **)auStackY_138._8_4_ + -0xc))" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(auStackY_138._44_4_ + 0x60) +\n                           (int)(*(re_token_t **)auStackY_138._8_4_ + -0xc))" ( (binary_expression "(int)(auStackY_138._44_4_ + 0x60) +\n                           (int)(*(re_token_t **)auStackY_138._8_4_ + -0xc)" (cast_expression "(int)(auStackY_138._44_4_ + 0x60)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(auStackY_138._44_4_ + 0x60)" ( (binary_expression "auStackY_138._44_4_ + 0x60" (field_expression "auStackY_138._44_4_" identifier . field_identifier) + number_literal) ))) + (cast_expression "(int)(*(re_token_t **)auStackY_138._8_4_ + -0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(re_token_t **)auStackY_138._8_4_ + -0xc)" ( (binary_expression "*(re_token_t **)auStackY_138._8_4_ + -0xc" (pointer_expression "*(re_token_t **)auStackY_138._8_4_" * (cast_expression "(re_token_t **)auStackY_138._8_4_" ( (type_descriptor "re_token_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "auStackY_138._8_4_" identifier . field_identifier))) + number_literal) )))) )))) ;) (expression_statement "prVar27 = (re_dfa_t *)auStackY_138._48_4_;" (assignment_expression "prVar27 = (re_dfa_t *)auStackY_138._48_4_" identifier = (cast_expression "(re_dfa_t *)auStackY_138._48_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._48_4_" identifier . field_identifier))) ;) (expression_statement "prVar30 = (re_dfa_t *)auStackY_138._8_4_;" (assignment_expression "prVar30 = (re_dfa_t *)auStackY_138._8_4_" identifier = (cast_expression "(re_dfa_t *)auStackY_138._8_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._8_4_" identifier . field_identifier))) ;) (goto_statement "goto LAB_00020e44;" goto statement_identifier ;) })) (expression_statement "prVar5 = (re_dfa_t *)\n                         ((int)(auStackY_138._56_4_ + 0x60) + (mctx_01->nodes_alloc - 0x60));" (assignment_expression "prVar5 = (re_dfa_t *)\n                         ((int)(auStackY_138._56_4_ + 0x60) + (mctx_01->nodes_alloc - 0x60))" identifier = (cast_expression "(re_dfa_t *)\n                         ((int)(auStackY_138._56_4_ + 0x60) + (mctx_01->nodes_alloc - 0x60))" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(auStackY_138._56_4_ + 0x60) + (mctx_01->nodes_alloc - 0x60))" ( (binary_expression "(int)(auStackY_138._56_4_ + 0x60) + (mctx_01->nodes_alloc - 0x60)" (cast_expression "(int)(auStackY_138._56_4_ + 0x60)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(auStackY_138._56_4_ + 0x60)" ( (binary_expression "auStackY_138._56_4_ + 0x60" (field_expression "auStackY_138._56_4_" identifier . field_identifier) + number_literal) ))) + (parenthesized_expression "(mctx_01->nodes_alloc - 0x60)" ( (binary_expression "mctx_01->nodes_alloc - 0x60" (field_expression "mctx_01->nodes_alloc" identifier -> field_identifier) - number_literal) ))) )))) ;) (expression_statement "auStackY_138._44_4_ = prVar30;" (assignment_expression "auStackY_138._44_4_ = prVar30" (field_expression "auStackY_138._44_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStackY_138._48_4_ = prVar27;" (assignment_expression "auStackY_138._48_4_ = prVar27" (field_expression "auStackY_138._48_4_" identifier . field_identifier) = identifier) ;) (expression_statement "iVar8 = (**(code **)(puVar40 + -0x7dd0))(mctx_01->nodes_alloc + bVar23);" (assignment_expression "iVar8 = (**(code **)(puVar40 + -0x7dd0))(mctx_01->nodes_alloc + bVar23)" identifier = (call_expression "(**(code **)(puVar40 + -0x7dd0))(mctx_01->nodes_alloc + bVar23)" (parenthesized_expression "(**(code **)(puVar40 + -0x7dd0))" ( (pointer_expression "**(code **)(puVar40 + -0x7dd0)" * (pointer_expression "*(code **)(puVar40 + -0x7dd0)" * (cast_expression "(code **)(puVar40 + -0x7dd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x7dd0)" ( (binary_expression "puVar40 + -0x7dd0" identifier + number_literal) ))))) )) (argument_list "(mctx_01->nodes_alloc + bVar23)" ( (binary_expression "mctx_01->nodes_alloc + bVar23" (field_expression "mctx_01->nodes_alloc" identifier -> field_identifier) + identifier) )))) ;) (expression_statement "prVar15 = prVar27;" (assignment_expression "prVar15 = prVar27" identifier = identifier) ;) (expression_statement "prVar27 = (re_dfa_t *)auStackY_138._48_4_;" (assignment_expression "prVar27 = (re_dfa_t *)auStackY_138._48_4_" identifier = (cast_expression "(re_dfa_t *)auStackY_138._48_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._48_4_" identifier . field_identifier))) ;) (expression_statement "prVar30 = (re_dfa_t *)auStackY_138._44_4_;" (assignment_expression "prVar30 = (re_dfa_t *)auStackY_138._44_4_" identifier = (cast_expression "(re_dfa_t *)auStackY_138._44_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._44_4_" identifier . field_identifier))) ;) (expression_statement "prVar22 = prVar35;" (assignment_expression "prVar22 = prVar35" identifier = identifier) ;) (expression_statement "puVar40 = (undefined *)auStackY_138._0_4_;" (assignment_expression "puVar40 = (undefined *)auStackY_138._0_4_" identifier = (cast_expression "(undefined *)auStackY_138._0_4_" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._0_4_" identifier . field_identifier))) ;) (if_statement "if (iVar8 != 0) goto LAB_00020f7c;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00020f7c;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00021258:\n              auStackY_138._56_4_ =\n                   (int)(((re_dfa_t *)\n                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))->word_char\n                        + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U;" statement_identifier : (expression_statement "auStackY_138._56_4_ =\n                   (int)(((re_dfa_t *)\n                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))->word_char\n                        + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U;" (assignment_expression "auStackY_138._56_4_ =\n                   (int)(((re_dfa_t *)\n                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))->word_char\n                        + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U" (field_expression "auStackY_138._56_4_" identifier . field_identifier) = (binary_expression "(int)(((re_dfa_t *)\n                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))->word_char\n                        + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char + 0xffffffa0U" (binary_expression "(int)(((re_dfa_t *)\n                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))->word_char\n                        + 0xffffffe8) +\n                   (int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char" (cast_expression "(int)(((re_dfa_t *)\n                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))->word_char\n                        + 0xffffffe8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((re_dfa_t *)\n                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))->word_char\n                        + 0xffffffe8)" ( (binary_expression "((re_dfa_t *)\n                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))->word_char\n                        + 0xffffffe8" (field_expression "((re_dfa_t *)\n                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)\n                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)\n                         (((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18)" ( (binary_expression "((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18" (field_expression "((re_dfa_t *)(prVar27->word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)(prVar27->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)(prVar27->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prVar27->word_char + -0x18)" ( (binary_expression "prVar27->word_char + -0x18" (field_expression "prVar27->word_char" identifier -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) + (cast_expression "(int)((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char" ( (type_descriptor "int" primitive_type) ) (field_expression "((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18))" ( (cast_expression "(re_dfa_t *)\n                        (((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18)" ( (binary_expression "((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char\n                        + -0x18" (field_expression "((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)\n                         (((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18)" ( (binary_expression "((re_dfa_t *)(prVar35->word_char + -0x18))->word_char + -0x18" (field_expression "((re_dfa_t *)(prVar35->word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)(prVar35->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)(prVar35->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prVar35->word_char + -0x18)" ( (binary_expression "prVar35->word_char + -0x18" (field_expression "prVar35->word_char" identifier -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier))) + number_literal)) ;)) (expression_statement "prVar34 = *(re_dfa_t **)(((re_node_set *)&prVar30->nexts)->alloc + (int)input * 4);" (assignment_expression "prVar34 = *(re_dfa_t **)(((re_node_set *)&prVar30->nexts)->alloc + (int)input * 4)" identifier = (pointer_expression "*(re_dfa_t **)(((re_node_set *)&prVar30->nexts)->alloc + (int)input * 4)" * (cast_expression "(re_dfa_t **)(((re_node_set *)&prVar30->nexts)->alloc + (int)input * 4)" ( (type_descriptor "re_dfa_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(((re_node_set *)&prVar30->nexts)->alloc + (int)input * 4)" ( (binary_expression "((re_node_set *)&prVar30->nexts)->alloc + (int)input * 4" (field_expression "((re_node_set *)&prVar30->nexts)->alloc" (parenthesized_expression "((re_node_set *)&prVar30->nexts)" ( (cast_expression "(re_node_set *)&prVar30->nexts" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar30->nexts" & (field_expression "prVar30->nexts" identifier -> field_identifier))) )) -> field_identifier) + (binary_expression "(int)input * 4" (cast_expression "(int)input" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (expression_statement "input = prVar35;" (assignment_expression "input = prVar35" identifier = identifier) ;) }) (else_clause "else {\n              prVar5 = (re_dfa_t *)&prVar30->syntax;\n              auStackY_138._48_4_ = prVar30;\n              auStackY_138._44_4_ = prVar34;\n              *(undefined4 *)(puVar41 + 0x10) = auStackY_138._56_4_;\n              prVar15 = input;\n              prVar27 = (re_dfa_t *)\n                        check_node_accept_bytes\n                                  (prVar22,(Idx)prVar5,(re_string_t *)input,(Idx)mctx_01,\n                                   *(re_dfa_t **)(puVar41 + 0x10));\n              prVar30 = (re_dfa_t *)auStackY_138._48_4_;\n              prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (prVar27 != (re_dfa_t *)0x0) goto LAB_00021258;\n              prVar5 = (re_dfa_t *)\n                       ((int)(auStackY_138._44_4_ + 0x60) +\n                       (int)(*(re_token_t **)auStackY_138._48_4_ + -0xc));\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_00020e44:\n              prVar15 = prVar27;\n              auStackY_138._44_4_ = prVar30;\n              auStackY_138._48_4_ = prVar15;\n              _Var14 = check_node_accept((re_match_context_t *)mctx_01,(re_token_t *)prVar5,\n                                         (Idx)prVar15);\n              prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (CONCAT31(extraout_var,_Var14) == 0) goto LAB_00020f6c;\n              auStackY_138._56_4_ = (int)(re_token_t **)auStackY_138._48_4_ + 1;\n              input = (re_dfa_t *)\n                      (((re_node_set *)(auStackY_138._44_4_ + 0xc))->alloc + (int)input * 4);\n              prVar34 = (re_dfa_t *)input->nodes;\n            }" else (compound_statement "{\n              prVar5 = (re_dfa_t *)&prVar30->syntax;\n              auStackY_138._48_4_ = prVar30;\n              auStackY_138._44_4_ = prVar34;\n              *(undefined4 *)(puVar41 + 0x10) = auStackY_138._56_4_;\n              prVar15 = input;\n              prVar27 = (re_dfa_t *)\n                        check_node_accept_bytes\n                                  (prVar22,(Idx)prVar5,(re_string_t *)input,(Idx)mctx_01,\n                                   *(re_dfa_t **)(puVar41 + 0x10));\n              prVar30 = (re_dfa_t *)auStackY_138._48_4_;\n              prVar35 = (re_dfa_t *)auStackY_138._56_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (prVar27 != (re_dfa_t *)0x0) goto LAB_00021258;\n              prVar5 = (re_dfa_t *)\n                       ((int)(auStackY_138._44_4_ + 0x60) +\n                       (int)(*(re_token_t **)auStackY_138._48_4_ + -0xc));\n              prVar27 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_00020e44:\n              prVar15 = prVar27;\n              auStackY_138._44_4_ = prVar30;\n              auStackY_138._48_4_ = prVar15;\n              _Var14 = check_node_accept((re_match_context_t *)mctx_01,(re_token_t *)prVar5,\n                                         (Idx)prVar15);\n              prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (CONCAT31(extraout_var,_Var14) == 0) goto LAB_00020f6c;\n              auStackY_138._56_4_ = (int)(re_token_t **)auStackY_138._48_4_ + 1;\n              input = (re_dfa_t *)\n                      (((re_node_set *)(auStackY_138._44_4_ + 0xc))->alloc + (int)input * 4);\n              prVar34 = (re_dfa_t *)input->nodes;\n            }" { (expression_statement "prVar5 = (re_dfa_t *)&prVar30->syntax;" (assignment_expression "prVar5 = (re_dfa_t *)&prVar30->syntax" identifier = (cast_expression "(re_dfa_t *)&prVar30->syntax" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar30->syntax" & (field_expression "prVar30->syntax" identifier -> field_identifier)))) ;) (expression_statement "auStackY_138._48_4_ = prVar30;" (assignment_expression "auStackY_138._48_4_ = prVar30" (field_expression "auStackY_138._48_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStackY_138._44_4_ = prVar34;" (assignment_expression "auStackY_138._44_4_ = prVar34" (field_expression "auStackY_138._44_4_" identifier . field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)(puVar41 + 0x10) = auStackY_138._56_4_;" (assignment_expression "*(undefined4 *)(puVar41 + 0x10) = auStackY_138._56_4_" (pointer_expression "*(undefined4 *)(puVar41 + 0x10)" * (cast_expression "(undefined4 *)(puVar41 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x10)" ( (binary_expression "puVar41 + 0x10" identifier + number_literal) )))) = (field_expression "auStackY_138._56_4_" identifier . field_identifier)) ;) (expression_statement "prVar15 = input;" (assignment_expression "prVar15 = input" identifier = identifier) ;) (expression_statement "prVar27 = (re_dfa_t *)\n                        check_node_accept_bytes\n                                  (prVar22,(Idx)prVar5,(re_string_t *)input,(Idx)mctx_01,\n                                   *(re_dfa_t **)(puVar41 + 0x10));" (assignment_expression "prVar27 = (re_dfa_t *)\n                        check_node_accept_bytes\n                                  (prVar22,(Idx)prVar5,(re_string_t *)input,(Idx)mctx_01,\n                                   *(re_dfa_t **)(puVar41 + 0x10))" identifier = (cast_expression "(re_dfa_t *)\n                        check_node_accept_bytes\n                                  (prVar22,(Idx)prVar5,(re_string_t *)input,(Idx)mctx_01,\n                                   *(re_dfa_t **)(puVar41 + 0x10))" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "check_node_accept_bytes\n                                  (prVar22,(Idx)prVar5,(re_string_t *)input,(Idx)mctx_01,\n                                   *(re_dfa_t **)(puVar41 + 0x10))" identifier (argument_list "(prVar22,(Idx)prVar5,(re_string_t *)input,(Idx)mctx_01,\n                                   *(re_dfa_t **)(puVar41 + 0x10))" ( identifier , (cast_expression "(Idx)prVar5" ( (type_descriptor "Idx" type_identifier) ) identifier) , (cast_expression "(re_string_t *)input" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Idx)mctx_01" ( (type_descriptor "Idx" type_identifier) ) identifier) , (pointer_expression "*(re_dfa_t **)(puVar41 + 0x10)" * (cast_expression "(re_dfa_t **)(puVar41 + 0x10)" ( (type_descriptor "re_dfa_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x10)" ( (binary_expression "puVar41 + 0x10" identifier + number_literal) )))) ))))) ;) (expression_statement "prVar30 = (re_dfa_t *)auStackY_138._48_4_;" (assignment_expression "prVar30 = (re_dfa_t *)auStackY_138._48_4_" identifier = (cast_expression "(re_dfa_t *)auStackY_138._48_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._48_4_" identifier . field_identifier))) ;) (expression_statement "prVar35 = (re_dfa_t *)auStackY_138._56_4_;" (assignment_expression "prVar35 = (re_dfa_t *)auStackY_138._56_4_" identifier = (cast_expression "(re_dfa_t *)auStackY_138._56_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._56_4_" identifier . field_identifier))) ;) (expression_statement "puVar40 = (undefined *)auStackY_138._0_4_;" (assignment_expression "puVar40 = (undefined *)auStackY_138._0_4_" identifier = (cast_expression "(undefined *)auStackY_138._0_4_" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._0_4_" identifier . field_identifier))) ;) (if_statement "if (prVar27 != (re_dfa_t *)0x0) goto LAB_00021258;" if (parenthesized_expression "(prVar27 != (re_dfa_t *)0x0)" ( (binary_expression "prVar27 != (re_dfa_t *)0x0" identifier != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00021258;" goto statement_identifier ;)) (expression_statement "prVar5 = (re_dfa_t *)\n                       ((int)(auStackY_138._44_4_ + 0x60) +\n                       (int)(*(re_token_t **)auStackY_138._48_4_ + -0xc));" (assignment_expression "prVar5 = (re_dfa_t *)\n                       ((int)(auStackY_138._44_4_ + 0x60) +\n                       (int)(*(re_token_t **)auStackY_138._48_4_ + -0xc))" identifier = (cast_expression "(re_dfa_t *)\n                       ((int)(auStackY_138._44_4_ + 0x60) +\n                       (int)(*(re_token_t **)auStackY_138._48_4_ + -0xc))" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(auStackY_138._44_4_ + 0x60) +\n                       (int)(*(re_token_t **)auStackY_138._48_4_ + -0xc))" ( (binary_expression "(int)(auStackY_138._44_4_ + 0x60) +\n                       (int)(*(re_token_t **)auStackY_138._48_4_ + -0xc)" (cast_expression "(int)(auStackY_138._44_4_ + 0x60)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(auStackY_138._44_4_ + 0x60)" ( (binary_expression "auStackY_138._44_4_ + 0x60" (field_expression "auStackY_138._44_4_" identifier . field_identifier) + number_literal) ))) + (cast_expression "(int)(*(re_token_t **)auStackY_138._48_4_ + -0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(re_token_t **)auStackY_138._48_4_ + -0xc)" ( (binary_expression "*(re_token_t **)auStackY_138._48_4_ + -0xc" (pointer_expression "*(re_token_t **)auStackY_138._48_4_" * (cast_expression "(re_token_t **)auStackY_138._48_4_" ( (type_descriptor "re_token_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "auStackY_138._48_4_" identifier . field_identifier))) + number_literal) )))) )))) ;) (expression_statement "prVar27 = (re_dfa_t *)auStackY_138._56_4_;" (assignment_expression "prVar27 = (re_dfa_t *)auStackY_138._56_4_" identifier = (cast_expression "(re_dfa_t *)auStackY_138._56_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._56_4_" identifier . field_identifier))) ;) (labeled_statement "LAB_00020e44:\n              prVar15 = prVar27;" statement_identifier : (expression_statement "prVar15 = prVar27;" (assignment_expression "prVar15 = prVar27" identifier = identifier) ;)) (expression_statement "auStackY_138._44_4_ = prVar30;" (assignment_expression "auStackY_138._44_4_ = prVar30" (field_expression "auStackY_138._44_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStackY_138._48_4_ = prVar15;" (assignment_expression "auStackY_138._48_4_ = prVar15" (field_expression "auStackY_138._48_4_" identifier . field_identifier) = identifier) ;) (expression_statement "_Var14 = check_node_accept((re_match_context_t *)mctx_01,(re_token_t *)prVar5,\n                                         (Idx)prVar15);" (assignment_expression "_Var14 = check_node_accept((re_match_context_t *)mctx_01,(re_token_t *)prVar5,\n                                         (Idx)prVar15)" identifier = (call_expression "check_node_accept((re_match_context_t *)mctx_01,(re_token_t *)prVar5,\n                                         (Idx)prVar15)" identifier (argument_list "((re_match_context_t *)mctx_01,(re_token_t *)prVar5,\n                                         (Idx)prVar15)" ( (cast_expression "(re_match_context_t *)mctx_01" ( (type_descriptor "re_match_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_token_t *)prVar5" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Idx)prVar15" ( (type_descriptor "Idx" type_identifier) ) identifier) )))) ;) (expression_statement "prVar27 = (re_dfa_t *)auStackY_138._48_4_;" (assignment_expression "prVar27 = (re_dfa_t *)auStackY_138._48_4_" identifier = (cast_expression "(re_dfa_t *)auStackY_138._48_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._48_4_" identifier . field_identifier))) ;) (expression_statement "puVar40 = (undefined *)auStackY_138._0_4_;" (assignment_expression "puVar40 = (undefined *)auStackY_138._0_4_" identifier = (cast_expression "(undefined *)auStackY_138._0_4_" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._0_4_" identifier . field_identifier))) ;) (if_statement "if (CONCAT31(extraout_var,_Var14) == 0) goto LAB_00020f6c;" if (parenthesized_expression "(CONCAT31(extraout_var,_Var14) == 0)" ( (binary_expression "CONCAT31(extraout_var,_Var14) == 0" (call_expression "CONCAT31(extraout_var,_Var14)" identifier (argument_list "(extraout_var,_Var14)" ( identifier , identifier ))) == number_literal) )) (goto_statement "goto LAB_00020f6c;" goto statement_identifier ;)) (expression_statement "auStackY_138._56_4_ = (int)(re_token_t **)auStackY_138._48_4_ + 1;" (assignment_expression "auStackY_138._56_4_ = (int)(re_token_t **)auStackY_138._48_4_ + 1" (field_expression "auStackY_138._56_4_" identifier . field_identifier) = (binary_expression "(int)(re_token_t **)auStackY_138._48_4_ + 1" (cast_expression "(int)(re_token_t **)auStackY_138._48_4_" ( (type_descriptor "int" primitive_type) ) (cast_expression "(re_token_t **)auStackY_138._48_4_" ( (type_descriptor "re_token_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "auStackY_138._48_4_" identifier . field_identifier))) + number_literal)) ;) (expression_statement "input = (re_dfa_t *)\n                      (((re_node_set *)(auStackY_138._44_4_ + 0xc))->alloc + (int)input * 4);" (assignment_expression "input = (re_dfa_t *)\n                      (((re_node_set *)(auStackY_138._44_4_ + 0xc))->alloc + (int)input * 4)" identifier = (cast_expression "(re_dfa_t *)\n                      (((re_node_set *)(auStackY_138._44_4_ + 0xc))->alloc + (int)input * 4)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_node_set *)(auStackY_138._44_4_ + 0xc))->alloc + (int)input * 4)" ( (binary_expression "((re_node_set *)(auStackY_138._44_4_ + 0xc))->alloc + (int)input * 4" (field_expression "((re_node_set *)(auStackY_138._44_4_ + 0xc))->alloc" (parenthesized_expression "((re_node_set *)(auStackY_138._44_4_ + 0xc))" ( (cast_expression "(re_node_set *)(auStackY_138._44_4_ + 0xc)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStackY_138._44_4_ + 0xc)" ( (binary_expression "auStackY_138._44_4_ + 0xc" (field_expression "auStackY_138._44_4_" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) + (binary_expression "(int)input * 4" (cast_expression "(int)input" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "prVar34 = (re_dfa_t *)input->nodes;" (assignment_expression "prVar34 = (re_dfa_t *)input->nodes" identifier = (cast_expression "(re_dfa_t *)input->nodes" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "input->nodes" identifier -> field_identifier))) ;) }))) (if_statement "if (fs != (re_fail_stack_t *)0x0) {\n              prVar22 = input;\n              if ((mctx_01->mb_cur_max < (int)auStackY_138._56_4_) ||\n                 (iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4), iVar8 == 0))\n              goto LAB_00020f7c;\n              prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n              prVar15 = prVar34;\n              iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (iVar8 == 0) goto LAB_00020f7c;\n            }" if (parenthesized_expression "(fs != (re_fail_stack_t *)0x0)" ( (binary_expression "fs != (re_fail_stack_t *)0x0" identifier != (cast_expression "(re_fail_stack_t *)0x0" ( (type_descriptor "re_fail_stack_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              prVar22 = input;\n              if ((mctx_01->mb_cur_max < (int)auStackY_138._56_4_) ||\n                 (iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4), iVar8 == 0))\n              goto LAB_00020f7c;\n              prVar5 = (re_dfa_t *)(iVar8 + 0xc);\n              prVar15 = prVar34;\n              iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));\n              puVar40 = (undefined *)auStackY_138._0_4_;\n              if (iVar8 == 0) goto LAB_00020f7c;\n            }" { (expression_statement "prVar22 = input;" (assignment_expression "prVar22 = input" identifier = identifier) ;) (if_statement "if ((mctx_01->mb_cur_max < (int)auStackY_138._56_4_) ||\n                 (iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4), iVar8 == 0))\n              goto LAB_00020f7c;" if (parenthesized_expression "((mctx_01->mb_cur_max < (int)auStackY_138._56_4_) ||\n                 (iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4), iVar8 == 0))" ( (binary_expression "(mctx_01->mb_cur_max < (int)auStackY_138._56_4_) ||\n                 (iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4), iVar8 == 0)" (parenthesized_expression "(mctx_01->mb_cur_max < (int)auStackY_138._56_4_)" ( (binary_expression "mctx_01->mb_cur_max < (int)auStackY_138._56_4_" (field_expression "mctx_01->mb_cur_max" identifier -> field_identifier) < (cast_expression "(int)auStackY_138._56_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "auStackY_138._56_4_" identifier . field_identifier))) )) || (parenthesized_expression "(iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4), iVar8 == 0)" ( (comma_expression "iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4), iVar8 == 0" (assignment_expression "iVar8 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4)" identifier = (pointer_expression "*(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4)" * (cast_expression "(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(mctx_01->word_char[1] + auStackY_138._56_4_ * 4)" ( (binary_expression "mctx_01->word_char[1] + auStackY_138._56_4_ * 4" (subscript_expression "mctx_01->word_char[1]" (field_expression "mctx_01->word_char" identifier -> field_identifier) [ number_literal ]) + (binary_expression "auStackY_138._56_4_ * 4" (field_expression "auStackY_138._56_4_" identifier . field_identifier) * number_literal)) ))))) , (binary_expression "iVar8 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_00020f7c;" goto statement_identifier ;)) (expression_statement "prVar5 = (re_dfa_t *)(iVar8 + 0xc);" (assignment_expression "prVar5 = (re_dfa_t *)(iVar8 + 0xc)" identifier = (cast_expression "(re_dfa_t *)(iVar8 + 0xc)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) )))) ;) (expression_statement "prVar15 = prVar34;" (assignment_expression "prVar15 = prVar34" identifier = identifier) ;) (expression_statement "iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8));" (assignment_expression "iVar8 = (*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8))" identifier = (call_expression "(*(code *)auStackY_138._52_4_)(*(undefined4 *)(iVar8 + 8))" (parenthesized_expression "(*(code *)auStackY_138._52_4_)" ( (pointer_expression "*(code *)auStackY_138._52_4_" * (cast_expression "(code *)auStackY_138._52_4_" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._52_4_" identifier . field_identifier))) )) (argument_list "(*(undefined4 *)(iVar8 + 8))" ( (pointer_expression "*(undefined4 *)(iVar8 + 8)" * (cast_expression "(undefined4 *)(iVar8 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "puVar40 = (undefined *)auStackY_138._0_4_;" (assignment_expression "puVar40 = (undefined *)auStackY_138._0_4_" identifier = (cast_expression "(undefined *)auStackY_138._0_4_" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._0_4_" identifier . field_identifier))) ;) (if_statement "if (iVar8 == 0) goto LAB_00020f7c;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00020f7c;" goto statement_identifier ;)) })) (expression_statement "auStackY_138._64_4_ = 0;" (assignment_expression "auStackY_138._64_4_ = 0" (field_expression "auStackY_138._64_4_" identifier . field_identifier) = number_literal) ;) }) (else_clause "else {\n            prVar34 = (re_dfa_t *)(prVar30->edests + (int)input);\n            iVar13 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n            iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n            prVar5 = input;\n            if (iVar8 == 0) {\nLAB_000213ac:\n              input = prVar34;\n              pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);\n              goto LAB_000213b0;\n            }\n            sVar28 = prVar34->nodes_alloc;\n            input = prVar34;\n            puVar40 = (undefined *)auStackY_138._0_4_;\n            if ((int)sVar28 < 1) goto LAB_00020f6c;\n            uVar33 = *(undefined4 *)(iVar13 + 8);\n            pIVar31 = (Idx *)prVar34->nodes_len;\n            sVar29 = 0;\n            prVar22 = (re_dfa_t *)0xffffffff;\n            prVar35 = (re_dfa_t *)(iVar13 + 0xc);\n            prVar30 = (re_dfa_t *)0xffffffff;\n            do {\n              prVar5 = prVar35;\n              input = (re_dfa_t *)*pIVar31;\n              prVar15 = input;\n              prVar35 = prVar5;\n              iVar8 = (*(code *)auStackY_138._52_4_)(uVar33);\n              prVar34 = prVar30;\n              if ((iVar8 != 0) && (prVar34 = input, prVar30 != prVar22)) {\n                prVar5 = (re_dfa_t *)(auStackY_138 + 0x44);\n                prVar15 = prVar30;\n                iVar8 = (*(code *)auStackY_138._52_4_)(auStackY_138._64_4_);\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if ((iVar8 != 0) || (prVar34 = prVar30, fs == (re_fail_stack_t *)0x0)) break;\n                prVar15 = (re_dfa_t *)fs->num;\n                prVar5 = (re_dfa_t *)((int)&prVar15->nodes + 1);\n                fs->num = (Idx)prVar5;\n                if (prVar5 == (re_dfa_t *)fs->alloc) {\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  prVar5 = (re_dfa_t *)((int)prVar5 * 0x30);\n                  auStackY_138._44_4_ = prVar15;\n                  prVar12 = (re_fail_stack_ent_t *)\n                            (**(code **)(auStackY_138._0_4_ + -0x7e18))(fs->stack);\n                  if (prVar12 != (re_fail_stack_ent_t *)0x0) {\n                    fs->stack = prVar12;\n                    fs->alloc = fs->alloc << 1;\n                    prVar15 = (re_dfa_t *)auStackY_138._44_4_;\n                    prVar34 = (re_dfa_t *)auStackY_138._48_4_;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  prVar12 = fs->stack;\n                  prVar34 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_000210a0:\n                  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7e1c);\n                  auStackY_138._48_4_ = prVar12 + (int)prVar15;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes = (re_token_t *)prVar34;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes_alloc = (size_t)input;\n                  pIVar31 = (Idx *)(*pcVar18)(auStackY_138._28_4_);\n                  *(Idx **)(auStackY_138._48_4_ + 8) = pIVar31;\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  if (pIVar31 != (Idx *)0x0) {\n                    prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                    (**(code **)(auStackY_138._0_4_ + -0x7db8))(pIVar31,context);\n                    prVar5 = (re_dfa_t *)top_node;\n                    prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                    rVar11 = re_node_set_init_copy\n                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node);\n                    prVar34 = prVar30;\n                    puVar40 = (undefined *)auStackY_138._0_4_;\n                    if (rVar11 == _REG_NOERROR) break;\n                  }\n                }\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._68_4_);\n                if (auStackY_138._16_4_ != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              sVar29 = sVar29 + 1;\n              pIVar31 = pIVar31 + 1;\n              prVar30 = prVar34;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n            } while (sVar28 != sVar29);\n          }" else (compound_statement "{\n            prVar34 = (re_dfa_t *)(prVar30->edests + (int)input);\n            iVar13 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);\n            iVar8 = (*(code *)auStackY_138._36_4_)(top_node);\n            prVar5 = input;\n            if (iVar8 == 0) {\nLAB_000213ac:\n              input = prVar34;\n              pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);\n              goto LAB_000213b0;\n            }\n            sVar28 = prVar34->nodes_alloc;\n            input = prVar34;\n            puVar40 = (undefined *)auStackY_138._0_4_;\n            if ((int)sVar28 < 1) goto LAB_00020f6c;\n            uVar33 = *(undefined4 *)(iVar13 + 8);\n            pIVar31 = (Idx *)prVar34->nodes_len;\n            sVar29 = 0;\n            prVar22 = (re_dfa_t *)0xffffffff;\n            prVar35 = (re_dfa_t *)(iVar13 + 0xc);\n            prVar30 = (re_dfa_t *)0xffffffff;\n            do {\n              prVar5 = prVar35;\n              input = (re_dfa_t *)*pIVar31;\n              prVar15 = input;\n              prVar35 = prVar5;\n              iVar8 = (*(code *)auStackY_138._52_4_)(uVar33);\n              prVar34 = prVar30;\n              if ((iVar8 != 0) && (prVar34 = input, prVar30 != prVar22)) {\n                prVar5 = (re_dfa_t *)(auStackY_138 + 0x44);\n                prVar15 = prVar30;\n                iVar8 = (*(code *)auStackY_138._52_4_)(auStackY_138._64_4_);\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if ((iVar8 != 0) || (prVar34 = prVar30, fs == (re_fail_stack_t *)0x0)) break;\n                prVar15 = (re_dfa_t *)fs->num;\n                prVar5 = (re_dfa_t *)((int)&prVar15->nodes + 1);\n                fs->num = (Idx)prVar5;\n                if (prVar5 == (re_dfa_t *)fs->alloc) {\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  prVar5 = (re_dfa_t *)((int)prVar5 * 0x30);\n                  auStackY_138._44_4_ = prVar15;\n                  prVar12 = (re_fail_stack_ent_t *)\n                            (**(code **)(auStackY_138._0_4_ + -0x7e18))(fs->stack);\n                  if (prVar12 != (re_fail_stack_ent_t *)0x0) {\n                    fs->stack = prVar12;\n                    fs->alloc = fs->alloc << 1;\n                    prVar15 = (re_dfa_t *)auStackY_138._44_4_;\n                    prVar34 = (re_dfa_t *)auStackY_138._48_4_;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  prVar12 = fs->stack;\n                  prVar34 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_000210a0:\n                  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7e1c);\n                  auStackY_138._48_4_ = prVar12 + (int)prVar15;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes = (re_token_t *)prVar34;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes_alloc = (size_t)input;\n                  pIVar31 = (Idx *)(*pcVar18)(auStackY_138._28_4_);\n                  *(Idx **)(auStackY_138._48_4_ + 8) = pIVar31;\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  if (pIVar31 != (Idx *)0x0) {\n                    prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                    (**(code **)(auStackY_138._0_4_ + -0x7db8))(pIVar31,context);\n                    prVar5 = (re_dfa_t *)top_node;\n                    prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                    rVar11 = re_node_set_init_copy\n                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node);\n                    prVar34 = prVar30;\n                    puVar40 = (undefined *)auStackY_138._0_4_;\n                    if (rVar11 == _REG_NOERROR) break;\n                  }\n                }\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._68_4_);\n                if (auStackY_138._16_4_ != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              sVar29 = sVar29 + 1;\n              pIVar31 = pIVar31 + 1;\n              prVar30 = prVar34;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n            } while (sVar28 != sVar29);\n          }" { (expression_statement "prVar34 = (re_dfa_t *)(prVar30->edests + (int)input);" (assignment_expression "prVar34 = (re_dfa_t *)(prVar30->edests + (int)input)" identifier = (cast_expression "(re_dfa_t *)(prVar30->edests + (int)input)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prVar30->edests + (int)input)" ( (binary_expression "prVar30->edests + (int)input" (field_expression "prVar30->edests" identifier -> field_identifier) + (cast_expression "(int)input" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar13 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4);" (assignment_expression "iVar13 = *(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4)" identifier = (pointer_expression "*(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4)" * (cast_expression "(int *)(mctx_01->word_char[1] + auStackY_138._56_4_ * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(mctx_01->word_char[1] + auStackY_138._56_4_ * 4)" ( (binary_expression "mctx_01->word_char[1] + auStackY_138._56_4_ * 4" (subscript_expression "mctx_01->word_char[1]" (field_expression "mctx_01->word_char" identifier -> field_identifier) [ number_literal ]) + (binary_expression "auStackY_138._56_4_ * 4" (field_expression "auStackY_138._56_4_" identifier . field_identifier) * number_literal)) ))))) ;) (expression_statement "iVar8 = (*(code *)auStackY_138._36_4_)(top_node);" (assignment_expression "iVar8 = (*(code *)auStackY_138._36_4_)(top_node)" identifier = (call_expression "(*(code *)auStackY_138._36_4_)(top_node)" (parenthesized_expression "(*(code *)auStackY_138._36_4_)" ( (pointer_expression "*(code *)auStackY_138._36_4_" * (cast_expression "(code *)auStackY_138._36_4_" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._36_4_" identifier . field_identifier))) )) (argument_list "(top_node)" ( identifier )))) ;) (expression_statement "prVar5 = input;" (assignment_expression "prVar5 = input" identifier = identifier) ;) (if_statement "if (iVar8 == 0) {\nLAB_000213ac:\n              input = prVar34;\n              pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);\n              goto LAB_000213b0;\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000213ac:\n              input = prVar34;\n              pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);\n              goto LAB_000213b0;\n            }" { (labeled_statement "LAB_000213ac:\n              input = prVar34;" statement_identifier : (expression_statement "input = prVar34;" (assignment_expression "input = prVar34" identifier = identifier) ;)) (expression_statement "pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0);" (assignment_expression "pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7db0)" identifier = (pointer_expression "*(code **)(auStackY_138._0_4_ + -0x7db0)" * (cast_expression "(code **)(auStackY_138._0_4_ + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStackY_138._0_4_ + -0x7db0)" ( (binary_expression "auStackY_138._0_4_ + -0x7db0" (field_expression "auStackY_138._0_4_" identifier . field_identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_000213b0;" goto statement_identifier ;) })) (expression_statement "sVar28 = prVar34->nodes_alloc;" (assignment_expression "sVar28 = prVar34->nodes_alloc" identifier = (field_expression "prVar34->nodes_alloc" identifier -> field_identifier)) ;) (expression_statement "input = prVar34;" (assignment_expression "input = prVar34" identifier = identifier) ;) (expression_statement "puVar40 = (undefined *)auStackY_138._0_4_;" (assignment_expression "puVar40 = (undefined *)auStackY_138._0_4_" identifier = (cast_expression "(undefined *)auStackY_138._0_4_" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._0_4_" identifier . field_identifier))) ;) (if_statement "if ((int)sVar28 < 1) goto LAB_00020f6c;" if (parenthesized_expression "((int)sVar28 < 1)" ( (binary_expression "(int)sVar28 < 1" (cast_expression "(int)sVar28" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00020f6c;" goto statement_identifier ;)) (expression_statement "uVar33 = *(undefined4 *)(iVar13 + 8);" (assignment_expression "uVar33 = *(undefined4 *)(iVar13 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar13 + 8)" * (cast_expression "(undefined4 *)(iVar13 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) ))))) ;) (expression_statement "pIVar31 = (Idx *)prVar34->nodes_len;" (assignment_expression "pIVar31 = (Idx *)prVar34->nodes_len" identifier = (cast_expression "(Idx *)prVar34->nodes_len" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prVar34->nodes_len" identifier -> field_identifier))) ;) (expression_statement "sVar29 = 0;" (assignment_expression "sVar29 = 0" identifier = number_literal) ;) (expression_statement "prVar22 = (re_dfa_t *)0xffffffff;" (assignment_expression "prVar22 = (re_dfa_t *)0xffffffff" identifier = (cast_expression "(re_dfa_t *)0xffffffff" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "prVar35 = (re_dfa_t *)(iVar13 + 0xc);" (assignment_expression "prVar35 = (re_dfa_t *)(iVar13 + 0xc)" identifier = (cast_expression "(re_dfa_t *)(iVar13 + 0xc)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xc)" ( (binary_expression "iVar13 + 0xc" identifier + number_literal) )))) ;) (expression_statement "prVar30 = (re_dfa_t *)0xffffffff;" (assignment_expression "prVar30 = (re_dfa_t *)0xffffffff" identifier = (cast_expression "(re_dfa_t *)0xffffffff" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n              prVar5 = prVar35;\n              input = (re_dfa_t *)*pIVar31;\n              prVar15 = input;\n              prVar35 = prVar5;\n              iVar8 = (*(code *)auStackY_138._52_4_)(uVar33);\n              prVar34 = prVar30;\n              if ((iVar8 != 0) && (prVar34 = input, prVar30 != prVar22)) {\n                prVar5 = (re_dfa_t *)(auStackY_138 + 0x44);\n                prVar15 = prVar30;\n                iVar8 = (*(code *)auStackY_138._52_4_)(auStackY_138._64_4_);\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if ((iVar8 != 0) || (prVar34 = prVar30, fs == (re_fail_stack_t *)0x0)) break;\n                prVar15 = (re_dfa_t *)fs->num;\n                prVar5 = (re_dfa_t *)((int)&prVar15->nodes + 1);\n                fs->num = (Idx)prVar5;\n                if (prVar5 == (re_dfa_t *)fs->alloc) {\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  prVar5 = (re_dfa_t *)((int)prVar5 * 0x30);\n                  auStackY_138._44_4_ = prVar15;\n                  prVar12 = (re_fail_stack_ent_t *)\n                            (**(code **)(auStackY_138._0_4_ + -0x7e18))(fs->stack);\n                  if (prVar12 != (re_fail_stack_ent_t *)0x0) {\n                    fs->stack = prVar12;\n                    fs->alloc = fs->alloc << 1;\n                    prVar15 = (re_dfa_t *)auStackY_138._44_4_;\n                    prVar34 = (re_dfa_t *)auStackY_138._48_4_;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  prVar12 = fs->stack;\n                  prVar34 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_000210a0:\n                  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7e1c);\n                  auStackY_138._48_4_ = prVar12 + (int)prVar15;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes = (re_token_t *)prVar34;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes_alloc = (size_t)input;\n                  pIVar31 = (Idx *)(*pcVar18)(auStackY_138._28_4_);\n                  *(Idx **)(auStackY_138._48_4_ + 8) = pIVar31;\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  if (pIVar31 != (Idx *)0x0) {\n                    prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                    (**(code **)(auStackY_138._0_4_ + -0x7db8))(pIVar31,context);\n                    prVar5 = (re_dfa_t *)top_node;\n                    prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                    rVar11 = re_node_set_init_copy\n                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node);\n                    prVar34 = prVar30;\n                    puVar40 = (undefined *)auStackY_138._0_4_;\n                    if (rVar11 == _REG_NOERROR) break;\n                  }\n                }\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._68_4_);\n                if (auStackY_138._16_4_ != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              sVar29 = sVar29 + 1;\n              pIVar31 = pIVar31 + 1;\n              prVar30 = prVar34;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n            } while (sVar28 != sVar29);" do (compound_statement "{\n              prVar5 = prVar35;\n              input = (re_dfa_t *)*pIVar31;\n              prVar15 = input;\n              prVar35 = prVar5;\n              iVar8 = (*(code *)auStackY_138._52_4_)(uVar33);\n              prVar34 = prVar30;\n              if ((iVar8 != 0) && (prVar34 = input, prVar30 != prVar22)) {\n                prVar5 = (re_dfa_t *)(auStackY_138 + 0x44);\n                prVar15 = prVar30;\n                iVar8 = (*(code *)auStackY_138._52_4_)(auStackY_138._64_4_);\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if ((iVar8 != 0) || (prVar34 = prVar30, fs == (re_fail_stack_t *)0x0)) break;\n                prVar15 = (re_dfa_t *)fs->num;\n                prVar5 = (re_dfa_t *)((int)&prVar15->nodes + 1);\n                fs->num = (Idx)prVar5;\n                if (prVar5 == (re_dfa_t *)fs->alloc) {\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  prVar5 = (re_dfa_t *)((int)prVar5 * 0x30);\n                  auStackY_138._44_4_ = prVar15;\n                  prVar12 = (re_fail_stack_ent_t *)\n                            (**(code **)(auStackY_138._0_4_ + -0x7e18))(fs->stack);\n                  if (prVar12 != (re_fail_stack_ent_t *)0x0) {\n                    fs->stack = prVar12;\n                    fs->alloc = fs->alloc << 1;\n                    prVar15 = (re_dfa_t *)auStackY_138._44_4_;\n                    prVar34 = (re_dfa_t *)auStackY_138._48_4_;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  prVar12 = fs->stack;\n                  prVar34 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_000210a0:\n                  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7e1c);\n                  auStackY_138._48_4_ = prVar12 + (int)prVar15;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes = (re_token_t *)prVar34;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes_alloc = (size_t)input;\n                  pIVar31 = (Idx *)(*pcVar18)(auStackY_138._28_4_);\n                  *(Idx **)(auStackY_138._48_4_ + 8) = pIVar31;\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  if (pIVar31 != (Idx *)0x0) {\n                    prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                    (**(code **)(auStackY_138._0_4_ + -0x7db8))(pIVar31,context);\n                    prVar5 = (re_dfa_t *)top_node;\n                    prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                    rVar11 = re_node_set_init_copy\n                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node);\n                    prVar34 = prVar30;\n                    puVar40 = (undefined *)auStackY_138._0_4_;\n                    if (rVar11 == _REG_NOERROR) break;\n                  }\n                }\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._68_4_);\n                if (auStackY_138._16_4_ != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              sVar29 = sVar29 + 1;\n              pIVar31 = pIVar31 + 1;\n              prVar30 = prVar34;\n              puVar40 = (undefined *)auStackY_138._0_4_;\n            }" { (expression_statement "prVar5 = prVar35;" (assignment_expression "prVar5 = prVar35" identifier = identifier) ;) (expression_statement "input = (re_dfa_t *)*pIVar31;" (assignment_expression "input = (re_dfa_t *)*pIVar31" identifier = (cast_expression "(re_dfa_t *)*pIVar31" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pIVar31" * identifier))) ;) (expression_statement "prVar15 = input;" (assignment_expression "prVar15 = input" identifier = identifier) ;) (expression_statement "prVar35 = prVar5;" (assignment_expression "prVar35 = prVar5" identifier = identifier) ;) (expression_statement "iVar8 = (*(code *)auStackY_138._52_4_)(uVar33);" (assignment_expression "iVar8 = (*(code *)auStackY_138._52_4_)(uVar33)" identifier = (call_expression "(*(code *)auStackY_138._52_4_)(uVar33)" (parenthesized_expression "(*(code *)auStackY_138._52_4_)" ( (pointer_expression "*(code *)auStackY_138._52_4_" * (cast_expression "(code *)auStackY_138._52_4_" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._52_4_" identifier . field_identifier))) )) (argument_list "(uVar33)" ( identifier )))) ;) (expression_statement "prVar34 = prVar30;" (assignment_expression "prVar34 = prVar30" identifier = identifier) ;) (if_statement "if ((iVar8 != 0) && (prVar34 = input, prVar30 != prVar22)) {\n                prVar5 = (re_dfa_t *)(auStackY_138 + 0x44);\n                prVar15 = prVar30;\n                iVar8 = (*(code *)auStackY_138._52_4_)(auStackY_138._64_4_);\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if ((iVar8 != 0) || (prVar34 = prVar30, fs == (re_fail_stack_t *)0x0)) break;\n                prVar15 = (re_dfa_t *)fs->num;\n                prVar5 = (re_dfa_t *)((int)&prVar15->nodes + 1);\n                fs->num = (Idx)prVar5;\n                if (prVar5 == (re_dfa_t *)fs->alloc) {\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  prVar5 = (re_dfa_t *)((int)prVar5 * 0x30);\n                  auStackY_138._44_4_ = prVar15;\n                  prVar12 = (re_fail_stack_ent_t *)\n                            (**(code **)(auStackY_138._0_4_ + -0x7e18))(fs->stack);\n                  if (prVar12 != (re_fail_stack_ent_t *)0x0) {\n                    fs->stack = prVar12;\n                    fs->alloc = fs->alloc << 1;\n                    prVar15 = (re_dfa_t *)auStackY_138._44_4_;\n                    prVar34 = (re_dfa_t *)auStackY_138._48_4_;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  prVar12 = fs->stack;\n                  prVar34 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_000210a0:\n                  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7e1c);\n                  auStackY_138._48_4_ = prVar12 + (int)prVar15;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes = (re_token_t *)prVar34;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes_alloc = (size_t)input;\n                  pIVar31 = (Idx *)(*pcVar18)(auStackY_138._28_4_);\n                  *(Idx **)(auStackY_138._48_4_ + 8) = pIVar31;\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  if (pIVar31 != (Idx *)0x0) {\n                    prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                    (**(code **)(auStackY_138._0_4_ + -0x7db8))(pIVar31,context);\n                    prVar5 = (re_dfa_t *)top_node;\n                    prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                    rVar11 = re_node_set_init_copy\n                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node);\n                    prVar34 = prVar30;\n                    puVar40 = (undefined *)auStackY_138._0_4_;\n                    if (rVar11 == _REG_NOERROR) break;\n                  }\n                }\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._68_4_);\n                if (auStackY_138._16_4_ != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }" if (parenthesized_expression "((iVar8 != 0) && (prVar34 = input, prVar30 != prVar22))" ( (binary_expression "(iVar8 != 0) && (prVar34 = input, prVar30 != prVar22)" (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) && (parenthesized_expression "(prVar34 = input, prVar30 != prVar22)" ( (comma_expression "prVar34 = input, prVar30 != prVar22" (assignment_expression "prVar34 = input" identifier = identifier) , (binary_expression "prVar30 != prVar22" identifier != identifier)) ))) )) (compound_statement "{\n                prVar5 = (re_dfa_t *)(auStackY_138 + 0x44);\n                prVar15 = prVar30;\n                iVar8 = (*(code *)auStackY_138._52_4_)(auStackY_138._64_4_);\n                puVar40 = (undefined *)auStackY_138._0_4_;\n                if ((iVar8 != 0) || (prVar34 = prVar30, fs == (re_fail_stack_t *)0x0)) break;\n                prVar15 = (re_dfa_t *)fs->num;\n                prVar5 = (re_dfa_t *)((int)&prVar15->nodes + 1);\n                fs->num = (Idx)prVar5;\n                if (prVar5 == (re_dfa_t *)fs->alloc) {\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  prVar5 = (re_dfa_t *)((int)prVar5 * 0x30);\n                  auStackY_138._44_4_ = prVar15;\n                  prVar12 = (re_fail_stack_ent_t *)\n                            (**(code **)(auStackY_138._0_4_ + -0x7e18))(fs->stack);\n                  if (prVar12 != (re_fail_stack_ent_t *)0x0) {\n                    fs->stack = prVar12;\n                    fs->alloc = fs->alloc << 1;\n                    prVar15 = (re_dfa_t *)auStackY_138._44_4_;\n                    prVar34 = (re_dfa_t *)auStackY_138._48_4_;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  prVar12 = fs->stack;\n                  prVar34 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_000210a0:\n                  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7e1c);\n                  auStackY_138._48_4_ = prVar12 + (int)prVar15;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes = (re_token_t *)prVar34;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes_alloc = (size_t)input;\n                  pIVar31 = (Idx *)(*pcVar18)(auStackY_138._28_4_);\n                  *(Idx **)(auStackY_138._48_4_ + 8) = pIVar31;\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  if (pIVar31 != (Idx *)0x0) {\n                    prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                    (**(code **)(auStackY_138._0_4_ + -0x7db8))(pIVar31,context);\n                    prVar5 = (re_dfa_t *)top_node;\n                    prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                    rVar11 = re_node_set_init_copy\n                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node);\n                    prVar34 = prVar30;\n                    puVar40 = (undefined *)auStackY_138._0_4_;\n                    if (rVar11 == _REG_NOERROR) break;\n                  }\n                }\n                (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._68_4_);\n                if (auStackY_138._16_4_ != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }" { (expression_statement "prVar5 = (re_dfa_t *)(auStackY_138 + 0x44);" (assignment_expression "prVar5 = (re_dfa_t *)(auStackY_138 + 0x44)" identifier = (cast_expression "(re_dfa_t *)(auStackY_138 + 0x44)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStackY_138 + 0x44)" ( (binary_expression "auStackY_138 + 0x44" identifier + number_literal) )))) ;) (expression_statement "prVar15 = prVar30;" (assignment_expression "prVar15 = prVar30" identifier = identifier) ;) (expression_statement "iVar8 = (*(code *)auStackY_138._52_4_)(auStackY_138._64_4_);" (assignment_expression "iVar8 = (*(code *)auStackY_138._52_4_)(auStackY_138._64_4_)" identifier = (call_expression "(*(code *)auStackY_138._52_4_)(auStackY_138._64_4_)" (parenthesized_expression "(*(code *)auStackY_138._52_4_)" ( (pointer_expression "*(code *)auStackY_138._52_4_" * (cast_expression "(code *)auStackY_138._52_4_" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._52_4_" identifier . field_identifier))) )) (argument_list "(auStackY_138._64_4_)" ( (field_expression "auStackY_138._64_4_" identifier . field_identifier) )))) ;) (expression_statement "puVar40 = (undefined *)auStackY_138._0_4_;" (assignment_expression "puVar40 = (undefined *)auStackY_138._0_4_" identifier = (cast_expression "(undefined *)auStackY_138._0_4_" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._0_4_" identifier . field_identifier))) ;) (if_statement "if ((iVar8 != 0) || (prVar34 = prVar30, fs == (re_fail_stack_t *)0x0)) break;" if (parenthesized_expression "((iVar8 != 0) || (prVar34 = prVar30, fs == (re_fail_stack_t *)0x0))" ( (binary_expression "(iVar8 != 0) || (prVar34 = prVar30, fs == (re_fail_stack_t *)0x0)" (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) || (parenthesized_expression "(prVar34 = prVar30, fs == (re_fail_stack_t *)0x0)" ( (comma_expression "prVar34 = prVar30, fs == (re_fail_stack_t *)0x0" (assignment_expression "prVar34 = prVar30" identifier = identifier) , (binary_expression "fs == (re_fail_stack_t *)0x0" identifier == (cast_expression "(re_fail_stack_t *)0x0" ( (type_descriptor "re_fail_stack_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (break_statement "break;" break ;)) (expression_statement "prVar15 = (re_dfa_t *)fs->num;" (assignment_expression "prVar15 = (re_dfa_t *)fs->num" identifier = (cast_expression "(re_dfa_t *)fs->num" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "fs->num" identifier -> field_identifier))) ;) (expression_statement "prVar5 = (re_dfa_t *)((int)&prVar15->nodes + 1);" (assignment_expression "prVar5 = (re_dfa_t *)((int)&prVar15->nodes + 1)" identifier = (cast_expression "(re_dfa_t *)((int)&prVar15->nodes + 1)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar15->nodes + 1)" ( (binary_expression "(int)&prVar15->nodes + 1" (cast_expression "(int)&prVar15->nodes" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar15->nodes" & (field_expression "prVar15->nodes" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "fs->num = (Idx)prVar5;" (assignment_expression "fs->num = (Idx)prVar5" (field_expression "fs->num" identifier -> field_identifier) = (cast_expression "(Idx)prVar5" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (if_statement "if (prVar5 == (re_dfa_t *)fs->alloc) {\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  prVar5 = (re_dfa_t *)((int)prVar5 * 0x30);\n                  auStackY_138._44_4_ = prVar15;\n                  prVar12 = (re_fail_stack_ent_t *)\n                            (**(code **)(auStackY_138._0_4_ + -0x7e18))(fs->stack);\n                  if (prVar12 != (re_fail_stack_ent_t *)0x0) {\n                    fs->stack = prVar12;\n                    fs->alloc = fs->alloc << 1;\n                    prVar15 = (re_dfa_t *)auStackY_138._44_4_;\n                    prVar34 = (re_dfa_t *)auStackY_138._48_4_;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  prVar12 = fs->stack;\n                  prVar34 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_000210a0:\n                  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7e1c);\n                  auStackY_138._48_4_ = prVar12 + (int)prVar15;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes = (re_token_t *)prVar34;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes_alloc = (size_t)input;\n                  pIVar31 = (Idx *)(*pcVar18)(auStackY_138._28_4_);\n                  *(Idx **)(auStackY_138._48_4_ + 8) = pIVar31;\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  if (pIVar31 != (Idx *)0x0) {\n                    prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                    (**(code **)(auStackY_138._0_4_ + -0x7db8))(pIVar31,context);\n                    prVar5 = (re_dfa_t *)top_node;\n                    prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                    rVar11 = re_node_set_init_copy\n                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node);\n                    prVar34 = prVar30;\n                    puVar40 = (undefined *)auStackY_138._0_4_;\n                    if (rVar11 == _REG_NOERROR) break;\n                  }\n                }" if (parenthesized_expression "(prVar5 == (re_dfa_t *)fs->alloc)" ( (binary_expression "prVar5 == (re_dfa_t *)fs->alloc" identifier == (cast_expression "(re_dfa_t *)fs->alloc" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "fs->alloc" identifier -> field_identifier))) )) (compound_statement "{\n                  auStackY_138._48_4_ = auStackY_138._56_4_;\n                  prVar5 = (re_dfa_t *)((int)prVar5 * 0x30);\n                  auStackY_138._44_4_ = prVar15;\n                  prVar12 = (re_fail_stack_ent_t *)\n                            (**(code **)(auStackY_138._0_4_ + -0x7e18))(fs->stack);\n                  if (prVar12 != (re_fail_stack_ent_t *)0x0) {\n                    fs->stack = prVar12;\n                    fs->alloc = fs->alloc << 1;\n                    prVar15 = (re_dfa_t *)auStackY_138._44_4_;\n                    prVar34 = (re_dfa_t *)auStackY_138._48_4_;\n                    goto LAB_000210a0;\n                  }\n                }" { (expression_statement "auStackY_138._48_4_ = auStackY_138._56_4_;" (assignment_expression "auStackY_138._48_4_ = auStackY_138._56_4_" (field_expression "auStackY_138._48_4_" identifier . field_identifier) = (field_expression "auStackY_138._56_4_" identifier . field_identifier)) ;) (expression_statement "prVar5 = (re_dfa_t *)((int)prVar5 * 0x30);" (assignment_expression "prVar5 = (re_dfa_t *)((int)prVar5 * 0x30)" identifier = (cast_expression "(re_dfa_t *)((int)prVar5 * 0x30)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)prVar5 * 0x30)" ( (binary_expression "(int)prVar5 * 0x30" (cast_expression "(int)prVar5" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "auStackY_138._44_4_ = prVar15;" (assignment_expression "auStackY_138._44_4_ = prVar15" (field_expression "auStackY_138._44_4_" identifier . field_identifier) = identifier) ;) (expression_statement "prVar12 = (re_fail_stack_ent_t *)\n                            (**(code **)(auStackY_138._0_4_ + -0x7e18))(fs->stack);" (assignment_expression "prVar12 = (re_fail_stack_ent_t *)\n                            (**(code **)(auStackY_138._0_4_ + -0x7e18))(fs->stack)" identifier = (cast_expression "(re_fail_stack_ent_t *)\n                            (**(code **)(auStackY_138._0_4_ + -0x7e18))(fs->stack)" ( (type_descriptor "re_fail_stack_ent_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(auStackY_138._0_4_ + -0x7e18))(fs->stack)" (parenthesized_expression "(**(code **)(auStackY_138._0_4_ + -0x7e18))" ( (pointer_expression "**(code **)(auStackY_138._0_4_ + -0x7e18)" * (pointer_expression "*(code **)(auStackY_138._0_4_ + -0x7e18)" * (cast_expression "(code **)(auStackY_138._0_4_ + -0x7e18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStackY_138._0_4_ + -0x7e18)" ( (binary_expression "auStackY_138._0_4_ + -0x7e18" (field_expression "auStackY_138._0_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(fs->stack)" ( (field_expression "fs->stack" identifier -> field_identifier) ))))) ;) (if_statement "if (prVar12 != (re_fail_stack_ent_t *)0x0) {\n                    fs->stack = prVar12;\n                    fs->alloc = fs->alloc << 1;\n                    prVar15 = (re_dfa_t *)auStackY_138._44_4_;\n                    prVar34 = (re_dfa_t *)auStackY_138._48_4_;\n                    goto LAB_000210a0;\n                  }" if (parenthesized_expression "(prVar12 != (re_fail_stack_ent_t *)0x0)" ( (binary_expression "prVar12 != (re_fail_stack_ent_t *)0x0" identifier != (cast_expression "(re_fail_stack_ent_t *)0x0" ( (type_descriptor "re_fail_stack_ent_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    fs->stack = prVar12;\n                    fs->alloc = fs->alloc << 1;\n                    prVar15 = (re_dfa_t *)auStackY_138._44_4_;\n                    prVar34 = (re_dfa_t *)auStackY_138._48_4_;\n                    goto LAB_000210a0;\n                  }" { (expression_statement "fs->stack = prVar12;" (assignment_expression "fs->stack = prVar12" (field_expression "fs->stack" identifier -> field_identifier) = identifier) ;) (expression_statement "fs->alloc = fs->alloc << 1;" (assignment_expression "fs->alloc = fs->alloc << 1" (field_expression "fs->alloc" identifier -> field_identifier) = (binary_expression "fs->alloc << 1" (field_expression "fs->alloc" identifier -> field_identifier) << number_literal)) ;) (expression_statement "prVar15 = (re_dfa_t *)auStackY_138._44_4_;" (assignment_expression "prVar15 = (re_dfa_t *)auStackY_138._44_4_" identifier = (cast_expression "(re_dfa_t *)auStackY_138._44_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._44_4_" identifier . field_identifier))) ;) (expression_statement "prVar34 = (re_dfa_t *)auStackY_138._48_4_;" (assignment_expression "prVar34 = (re_dfa_t *)auStackY_138._48_4_" identifier = (cast_expression "(re_dfa_t *)auStackY_138._48_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._48_4_" identifier . field_identifier))) ;) (goto_statement "goto LAB_000210a0;" goto statement_identifier ;) })) }) (else_clause "else {\n                  prVar12 = fs->stack;\n                  prVar34 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_000210a0:\n                  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7e1c);\n                  auStackY_138._48_4_ = prVar12 + (int)prVar15;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes = (re_token_t *)prVar34;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes_alloc = (size_t)input;\n                  pIVar31 = (Idx *)(*pcVar18)(auStackY_138._28_4_);\n                  *(Idx **)(auStackY_138._48_4_ + 8) = pIVar31;\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  if (pIVar31 != (Idx *)0x0) {\n                    prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                    (**(code **)(auStackY_138._0_4_ + -0x7db8))(pIVar31,context);\n                    prVar5 = (re_dfa_t *)top_node;\n                    prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                    rVar11 = re_node_set_init_copy\n                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node);\n                    prVar34 = prVar30;\n                    puVar40 = (undefined *)auStackY_138._0_4_;\n                    if (rVar11 == _REG_NOERROR) break;\n                  }\n                }" else (compound_statement "{\n                  prVar12 = fs->stack;\n                  prVar34 = (re_dfa_t *)auStackY_138._56_4_;\nLAB_000210a0:\n                  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7e1c);\n                  auStackY_138._48_4_ = prVar12 + (int)prVar15;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes = (re_token_t *)prVar34;\n                  ((re_dfa_t *)auStackY_138._48_4_)->nodes_alloc = (size_t)input;\n                  pIVar31 = (Idx *)(*pcVar18)(auStackY_138._28_4_);\n                  *(Idx **)(auStackY_138._48_4_ + 8) = pIVar31;\n                  prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                  if (pIVar31 != (Idx *)0x0) {\n                    prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                    (**(code **)(auStackY_138._0_4_ + -0x7db8))(pIVar31,context);\n                    prVar5 = (re_dfa_t *)top_node;\n                    prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                    rVar11 = re_node_set_init_copy\n                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node);\n                    prVar34 = prVar30;\n                    puVar40 = (undefined *)auStackY_138._0_4_;\n                    if (rVar11 == _REG_NOERROR) break;\n                  }\n                }" { (expression_statement "prVar12 = fs->stack;" (assignment_expression "prVar12 = fs->stack" identifier = (field_expression "fs->stack" identifier -> field_identifier)) ;) (expression_statement "prVar34 = (re_dfa_t *)auStackY_138._56_4_;" (assignment_expression "prVar34 = (re_dfa_t *)auStackY_138._56_4_" identifier = (cast_expression "(re_dfa_t *)auStackY_138._56_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._56_4_" identifier . field_identifier))) ;) (labeled_statement "LAB_000210a0:\n                  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7e1c);" statement_identifier : (expression_statement "pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7e1c);" (assignment_expression "pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7e1c)" identifier = (pointer_expression "*(code **)(auStackY_138._0_4_ + -0x7e1c)" * (cast_expression "(code **)(auStackY_138._0_4_ + -0x7e1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStackY_138._0_4_ + -0x7e1c)" ( (binary_expression "auStackY_138._0_4_ + -0x7e1c" (field_expression "auStackY_138._0_4_" identifier . field_identifier) + number_literal) ))))) ;)) (expression_statement "auStackY_138._48_4_ = prVar12 + (int)prVar15;" (assignment_expression "auStackY_138._48_4_ = prVar12 + (int)prVar15" (field_expression "auStackY_138._48_4_" identifier . field_identifier) = (binary_expression "prVar12 + (int)prVar15" identifier + (cast_expression "(int)prVar15" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "((re_dfa_t *)auStackY_138._48_4_)->nodes = (re_token_t *)prVar34;" (assignment_expression "((re_dfa_t *)auStackY_138._48_4_)->nodes = (re_token_t *)prVar34" (field_expression "((re_dfa_t *)auStackY_138._48_4_)->nodes" (parenthesized_expression "((re_dfa_t *)auStackY_138._48_4_)" ( (cast_expression "(re_dfa_t *)auStackY_138._48_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._48_4_" identifier . field_identifier)) )) -> field_identifier) = (cast_expression "(re_token_t *)prVar34" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "((re_dfa_t *)auStackY_138._48_4_)->nodes_alloc = (size_t)input;" (assignment_expression "((re_dfa_t *)auStackY_138._48_4_)->nodes_alloc = (size_t)input" (field_expression "((re_dfa_t *)auStackY_138._48_4_)->nodes_alloc" (parenthesized_expression "((re_dfa_t *)auStackY_138._48_4_)" ( (cast_expression "(re_dfa_t *)auStackY_138._48_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._48_4_" identifier . field_identifier)) )) -> field_identifier) = (cast_expression "(size_t)input" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (expression_statement "pIVar31 = (Idx *)(*pcVar18)(auStackY_138._28_4_);" (assignment_expression "pIVar31 = (Idx *)(*pcVar18)(auStackY_138._28_4_)" identifier = (cast_expression "(Idx *)(*pcVar18)(auStackY_138._28_4_)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar18)(auStackY_138._28_4_)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(auStackY_138._28_4_)" ( (field_expression "auStackY_138._28_4_" identifier . field_identifier) ))))) ;) (expression_statement "*(Idx **)(auStackY_138._48_4_ + 8) = pIVar31;" (assignment_expression "*(Idx **)(auStackY_138._48_4_ + 8) = pIVar31" (pointer_expression "*(Idx **)(auStackY_138._48_4_ + 8)" * (cast_expression "(Idx **)(auStackY_138._48_4_ + 8)" ( (type_descriptor "Idx **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStackY_138._48_4_ + 8)" ( (binary_expression "auStackY_138._48_4_ + 8" (field_expression "auStackY_138._48_4_" identifier . field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "prVar27 = (re_dfa_t *)auStackY_138._48_4_;" (assignment_expression "prVar27 = (re_dfa_t *)auStackY_138._48_4_" identifier = (cast_expression "(re_dfa_t *)auStackY_138._48_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._48_4_" identifier . field_identifier))) ;) (if_statement "if (pIVar31 != (Idx *)0x0) {\n                    prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                    (**(code **)(auStackY_138._0_4_ + -0x7db8))(pIVar31,context);\n                    prVar5 = (re_dfa_t *)top_node;\n                    prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                    rVar11 = re_node_set_init_copy\n                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node);\n                    prVar34 = prVar30;\n                    puVar40 = (undefined *)auStackY_138._0_4_;\n                    if (rVar11 == _REG_NOERROR) break;\n                  }" if (parenthesized_expression "(pIVar31 != (Idx *)0x0)" ( (binary_expression "pIVar31 != (Idx *)0x0" identifier != (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    prVar15 = (re_dfa_t *)auStackY_138._28_4_;\n                    (**(code **)(auStackY_138._0_4_ + -0x7db8))(pIVar31,context);\n                    prVar5 = (re_dfa_t *)top_node;\n                    prVar27 = (re_dfa_t *)auStackY_138._48_4_;\n                    rVar11 = re_node_set_init_copy\n                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node);\n                    prVar34 = prVar30;\n                    puVar40 = (undefined *)auStackY_138._0_4_;\n                    if (rVar11 == _REG_NOERROR) break;\n                  }" { (expression_statement "prVar15 = (re_dfa_t *)auStackY_138._28_4_;" (assignment_expression "prVar15 = (re_dfa_t *)auStackY_138._28_4_" identifier = (cast_expression "(re_dfa_t *)auStackY_138._28_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._28_4_" identifier . field_identifier))) ;) (expression_statement "(**(code **)(auStackY_138._0_4_ + -0x7db8))(pIVar31,context);" (call_expression "(**(code **)(auStackY_138._0_4_ + -0x7db8))(pIVar31,context)" (parenthesized_expression "(**(code **)(auStackY_138._0_4_ + -0x7db8))" ( (pointer_expression "**(code **)(auStackY_138._0_4_ + -0x7db8)" * (pointer_expression "*(code **)(auStackY_138._0_4_ + -0x7db8)" * (cast_expression "(code **)(auStackY_138._0_4_ + -0x7db8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStackY_138._0_4_ + -0x7db8)" ( (binary_expression "auStackY_138._0_4_ + -0x7db8" (field_expression "auStackY_138._0_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(pIVar31,context)" ( identifier , identifier ))) ;) (expression_statement "prVar5 = (re_dfa_t *)top_node;" (assignment_expression "prVar5 = (re_dfa_t *)top_node" identifier = (cast_expression "(re_dfa_t *)top_node" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "prVar27 = (re_dfa_t *)auStackY_138._48_4_;" (assignment_expression "prVar27 = (re_dfa_t *)auStackY_138._48_4_" identifier = (cast_expression "(re_dfa_t *)auStackY_138._48_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._48_4_" identifier . field_identifier))) ;) (expression_statement "rVar11 = re_node_set_init_copy\n                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node);" (assignment_expression "rVar11 = re_node_set_init_copy\n                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node)" identifier = (call_expression "re_node_set_init_copy\n                                       ((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node)" identifier (argument_list "((re_node_set *)(auStackY_138._48_4_ + 0xc),\n                                        (re_node_set *)top_node)" ( (cast_expression "(re_node_set *)(auStackY_138._48_4_ + 0xc)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStackY_138._48_4_ + 0xc)" ( (binary_expression "auStackY_138._48_4_ + 0xc" (field_expression "auStackY_138._48_4_" identifier . field_identifier) + number_literal) ))) , (cast_expression "(re_node_set *)top_node" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "prVar34 = prVar30;" (assignment_expression "prVar34 = prVar30" identifier = identifier) ;) (expression_statement "puVar40 = (undefined *)auStackY_138._0_4_;" (assignment_expression "puVar40 = (undefined *)auStackY_138._0_4_" identifier = (cast_expression "(undefined *)auStackY_138._0_4_" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._0_4_" identifier . field_identifier))) ;) (if_statement "if (rVar11 == _REG_NOERROR) break;" if (parenthesized_expression "(rVar11 == _REG_NOERROR)" ( (binary_expression "rVar11 == _REG_NOERROR" identifier == identifier) )) (break_statement "break;" break ;)) })) }))) (expression_statement "(**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._68_4_);" (call_expression "(**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._68_4_)" (parenthesized_expression "(**(code **)(auStackY_138._0_4_ + -0x7db0))" ( (pointer_expression "**(code **)(auStackY_138._0_4_ + -0x7db0)" * (pointer_expression "*(code **)(auStackY_138._0_4_ + -0x7db0)" * (cast_expression "(code **)(auStackY_138._0_4_ + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStackY_138._0_4_ + -0x7db0)" ( (binary_expression "auStackY_138._0_4_ + -0x7db0" (field_expression "auStackY_138._0_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(auStackY_138._68_4_)" ( (field_expression "auStackY_138._68_4_" identifier . field_identifier) ))) ;) (if_statement "if (auStackY_138._16_4_ != 0) goto LAB_000214d4;" if (parenthesized_expression "(auStackY_138._16_4_ != 0)" ( (binary_expression "auStackY_138._16_4_ != 0" (field_expression "auStackY_138._16_4_" identifier . field_identifier) != number_literal) )) (goto_statement "goto LAB_000214d4;" goto statement_identifier ;)) (goto_statement "goto LAB_0002112c;" goto statement_identifier ;) })) (expression_statement "sVar29 = sVar29 + 1;" (assignment_expression "sVar29 = sVar29 + 1" identifier = (binary_expression "sVar29 + 1" identifier + number_literal)) ;) (expression_statement "pIVar31 = pIVar31 + 1;" (assignment_expression "pIVar31 = pIVar31 + 1" identifier = (binary_expression "pIVar31 + 1" identifier + number_literal)) ;) (expression_statement "prVar30 = prVar34;" (assignment_expression "prVar30 = prVar34" identifier = identifier) ;) (expression_statement "puVar40 = (undefined *)auStackY_138._0_4_;" (assignment_expression "puVar40 = (undefined *)auStackY_138._0_4_" identifier = (cast_expression "(undefined *)auStackY_138._0_4_" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._0_4_" identifier . field_identifier))) ;) }) while (parenthesized_expression "(sVar28 != sVar29)" ( (binary_expression "sVar28 != sVar29" identifier != identifier) )) ;) }))) (labeled_statement "LAB_00020ecc:\n          if ((int)prVar34 < 0) goto LAB_00020f60;" statement_identifier : (if_statement "if ((int)prVar34 < 0) goto LAB_00020f60;" if (parenthesized_expression "((int)prVar34 < 0)" ( (binary_expression "(int)prVar34 < 0" (cast_expression "(int)prVar34" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00020f60;" goto statement_identifier ;))) (expression_statement "prVar35 = (re_dfa_t *)context->nodes_alloc;" (assignment_expression "prVar35 = (re_dfa_t *)context->nodes_alloc" identifier = (cast_expression "(re_dfa_t *)context->nodes_alloc" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "context->nodes_alloc" identifier -> field_identifier))) ;) (expression_statement "pcVar18 = *(code **)(puVar40 + -0x7db0);" (assignment_expression "pcVar18 = *(code **)(puVar40 + -0x7db0)" identifier = (pointer_expression "*(code **)(puVar40 + -0x7db0)" * (cast_expression "(code **)(puVar40 + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x7db0)" ( (binary_expression "puVar40 + -0x7db0" identifier + number_literal) ))))) ;) (if_statement "if ((int)prVar35 < (int)auStackY_138._56_4_) break;" if (parenthesized_expression "((int)prVar35 < (int)auStackY_138._56_4_)" ( (binary_expression "(int)prVar35 < (int)auStackY_138._56_4_" (cast_expression "(int)prVar35" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)auStackY_138._56_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "auStackY_138._56_4_" identifier . field_identifier))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "prVar27 = (re_dfa_t *)auStackY_138._56_4_;" (assignment_expression "prVar27 = (re_dfa_t *)auStackY_138._56_4_" identifier = (cast_expression "(re_dfa_t *)auStackY_138._56_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._56_4_" identifier . field_identifier))) ;) (expression_statement "(*pcVar18)(auStackY_138._68_4_);" (call_expression "(*pcVar18)(auStackY_138._68_4_)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(auStackY_138._68_4_)" ( (field_expression "auStackY_138._68_4_" identifier . field_identifier) ))) ;) (if_statement "if (auStackY_138._16_4_ == 0) {\n        rVar11 = _REG_NOERROR;\n        if (fs == (re_fail_stack_t *)0x0) goto LAB_00020f18;\n      }\n      else {\n        (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n        if (fs == (re_fail_stack_t *)0x0) {\n          rVar11 = _REG_NOERROR;\n          goto LAB_00020f18;\n        }\n      }" if (parenthesized_expression "(auStackY_138._16_4_ == 0)" ( (binary_expression "auStackY_138._16_4_ == 0" (field_expression "auStackY_138._16_4_" identifier . field_identifier) == number_literal) )) (compound_statement "{\n        rVar11 = _REG_NOERROR;\n        if (fs == (re_fail_stack_t *)0x0) goto LAB_00020f18;\n      }" { (expression_statement "rVar11 = _REG_NOERROR;" (assignment_expression "rVar11 = _REG_NOERROR" identifier = identifier) ;) (if_statement "if (fs == (re_fail_stack_t *)0x0) goto LAB_00020f18;" if (parenthesized_expression "(fs == (re_fail_stack_t *)0x0)" ( (binary_expression "fs == (re_fail_stack_t *)0x0" identifier == (cast_expression "(re_fail_stack_t *)0x0" ( (type_descriptor "re_fail_stack_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00020f18;" goto statement_identifier ;)) }) (else_clause "else {\n        (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n        if (fs == (re_fail_stack_t *)0x0) {\n          rVar11 = _REG_NOERROR;\n          goto LAB_00020f18;\n        }\n      }" else (compound_statement "{\n        (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n        if (fs == (re_fail_stack_t *)0x0) {\n          rVar11 = _REG_NOERROR;\n          goto LAB_00020f18;\n        }\n      }" { (expression_statement "(**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);" (call_expression "(**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_)" (parenthesized_expression "(**(code **)(auStackY_138._0_4_ + -0x7db0))" ( (pointer_expression "**(code **)(auStackY_138._0_4_ + -0x7db0)" * (pointer_expression "*(code **)(auStackY_138._0_4_ + -0x7db0)" * (cast_expression "(code **)(auStackY_138._0_4_ + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStackY_138._0_4_ + -0x7db0)" ( (binary_expression "auStackY_138._0_4_ + -0x7db0" (field_expression "auStackY_138._0_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(auStackY_138._20_4_)" ( (field_expression "auStackY_138._20_4_" identifier . field_identifier) ))) ;) (if_statement "if (fs == (re_fail_stack_t *)0x0) {\n          rVar11 = _REG_NOERROR;\n          goto LAB_00020f18;\n        }" if (parenthesized_expression "(fs == (re_fail_stack_t *)0x0)" ( (binary_expression "fs == (re_fail_stack_t *)0x0" identifier == (cast_expression "(re_fail_stack_t *)0x0" ( (type_descriptor "re_fail_stack_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          rVar11 = _REG_NOERROR;\n          goto LAB_00020f18;\n        }" { (expression_statement "rVar11 = _REG_NOERROR;" (assignment_expression "rVar11 = _REG_NOERROR" identifier = identifier) ;) (goto_statement "goto LAB_00020f18;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00020f00:\n      free_fail_stack_return(fs);" statement_identifier : (expression_statement "free_fail_stack_return(fs);" (call_expression "free_fail_stack_return(fs)" identifier (argument_list "(fs)" ( identifier ))) ;)) (labeled_statement "LAB_00020f14:\n      rVar11 = _REG_NOERROR;" statement_identifier : (expression_statement "rVar11 = _REG_NOERROR;" (assignment_expression "rVar11 = _REG_NOERROR" identifier = identifier) ;)) (goto_statement "goto LAB_00020f18;" goto statement_identifier ;) })) }))) (expression_statement "rVar11 = _REG_ESPACE;" (assignment_expression "rVar11 = _REG_ESPACE" identifier = identifier) ;) (expression_statement "puVar42 = puVar43;" (assignment_expression "puVar42 = puVar43" identifier = identifier) ;) (labeled_statement "LAB_00020f18:\n  pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7ddc);" statement_identifier : (expression_statement "pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7ddc);" (assignment_expression "pcVar18 = *(code **)(auStackY_138._0_4_ + -0x7ddc)" identifier = (pointer_expression "*(code **)(auStackY_138._0_4_ + -0x7ddc)" * (cast_expression "(code **)(auStackY_138._0_4_ + -0x7ddc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStackY_138._0_4_ + -0x7ddc)" ( (binary_expression "auStackY_138._0_4_ + -0x7ddc" (field_expression "auStackY_138._0_4_" identifier . field_identifier) + number_literal) ))))) ;)) (if_statement "if (prStackY_e4 == *(re_match_context_t **)auStackY_138._12_4_) {\n    return rVar11;\n  }" if (parenthesized_expression "(prStackY_e4 == *(re_match_context_t **)auStackY_138._12_4_)" ( (binary_expression "prStackY_e4 == *(re_match_context_t **)auStackY_138._12_4_" identifier == (pointer_expression "*(re_match_context_t **)auStackY_138._12_4_" * (cast_expression "(re_match_context_t **)auStackY_138._12_4_" ( (type_descriptor "re_match_context_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "auStackY_138._12_4_" identifier . field_identifier)))) )) (compound_statement "{\n    return rVar11;\n  }" { (return_statement "return rVar11;" return identifier ;) })) (expression_statement "pcVar19 = get_subexp_sub;" (assignment_expression "pcVar19 = get_subexp_sub" identifier = identifier) ;) (expression_statement "mctx_00 = prStackY_e4;" (assignment_expression "mctx_00 = prStackY_e4" identifier = identifier) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*(re_dfa_t **)(puVar42 + -0x18) = input;" (assignment_expression "*(re_dfa_t **)(puVar42 + -0x18) = input" (pointer_expression "*(re_dfa_t **)(puVar42 + -0x18)" * (cast_expression "(re_dfa_t **)(puVar42 + -0x18)" ( (type_descriptor "re_dfa_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar42 + -0x18)" ( (binary_expression "puVar42 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Idx *)(puVar42 + -0x14) = top_node;" (assignment_expression "*(Idx *)(puVar42 + -0x14) = top_node" (pointer_expression "*(Idx *)(puVar42 + -0x14)" * (cast_expression "(Idx *)(puVar42 + -0x14)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar42 + -0x14)" ( (binary_expression "puVar42 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(re_dfa_t **)(puVar42 + -0x1c) = context;" (assignment_expression "*(re_dfa_t **)(puVar42 + -0x1c) = context" (pointer_expression "*(re_dfa_t **)(puVar42 + -0x1c)" * (cast_expression "(re_dfa_t **)(puVar42 + -0x1c)" ( (type_descriptor "re_dfa_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar42 + -0x1c)" ( (binary_expression "puVar42 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(re_dfa_t **)(puVar42 + -0x10) = prVar25;" (assignment_expression "*(re_dfa_t **)(puVar42 + -0x10) = prVar25" (pointer_expression "*(re_dfa_t **)(puVar42 + -0x10)" * (cast_expression "(re_dfa_t **)(puVar42 + -0x10)" ( (type_descriptor "re_dfa_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar42 + -0x10)" ( (binary_expression "puVar42 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar42 + -0x28) = pcVar18 + 0x22b80;" (assignment_expression "*(code **)(puVar42 + -0x28) = pcVar18 + 0x22b80" (pointer_expression "*(code **)(puVar42 + -0x28)" * (cast_expression "(code **)(puVar42 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar42 + -0x28)" ( (binary_expression "puVar42 + -0x28" identifier + number_literal) )))) = (binary_expression "pcVar18 + 0x22b80" identifier + number_literal)) ;) (expression_statement "*(re_dfa_t **)(puVar42 + -0x20) = mctx_01;" (assignment_expression "*(re_dfa_t **)(puVar42 + -0x20) = mctx_01" (pointer_expression "*(re_dfa_t **)(puVar42 + -0x20)" * (cast_expression "(re_dfa_t **)(puVar42 + -0x20)" ( (type_descriptor "re_dfa_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar42 + -0x20)" ( (binary_expression "puVar42 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar42 + -4) = pcVar19;" (assignment_expression "*(code **)(puVar42 + -4) = pcVar19" (pointer_expression "*(code **)(puVar42 + -4)" * (cast_expression "(code **)(puVar42 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar42 + -4)" ( (binary_expression "puVar42 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar42 + -8) = piVar38;" (assignment_expression "*(int **)(puVar42 + -8) = piVar38" (pointer_expression "*(int **)(puVar42 + -8)" * (cast_expression "(int **)(puVar42 + -8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar42 + -8)" ( (binary_expression "puVar42 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(re_fail_stack_t **)(puVar42 + -0xc) = fs;" (assignment_expression "*(re_fail_stack_t **)(puVar42 + -0xc) = fs" (pointer_expression "*(re_fail_stack_t **)(puVar42 + -0xc)" * (cast_expression "(re_fail_stack_t **)(puVar42 + -0xc)" ( (type_descriptor "re_fail_stack_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar42 + -0xc)" ( (binary_expression "puVar42 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar8 = *(int *)(puVar42 + 0x10);" (assignment_expression "iVar8 = *(int *)(puVar42 + 0x10)" identifier = (pointer_expression "*(int *)(puVar42 + 0x10)" * (cast_expression "(int *)(puVar42 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar42 + 0x10)" ( (binary_expression "puVar42 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "sVar28 = prVar15->nodes_alloc;" (assignment_expression "sVar28 = prVar15->nodes_alloc" identifier = (field_expression "prVar15->nodes_alloc" identifier -> field_identifier)) ;) (expression_statement "prVar26 = prVar15->nodes;" (assignment_expression "prVar26 = prVar15->nodes" identifier = (field_expression "prVar15->nodes" identifier -> field_identifier)) ;) (expression_statement "*(undefined4 *)(puVar42 + -0x30) = 8;" (assignment_expression "*(undefined4 *)(puVar42 + -0x30) = 8" (pointer_expression "*(undefined4 *)(puVar42 + -0x30)" * (cast_expression "(undefined4 *)(puVar42 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar42 + -0x30)" ( (binary_expression "puVar42 + -0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar42 + -0x34) = iVar8;" (assignment_expression "*(int *)(puVar42 + -0x34) = iVar8" (pointer_expression "*(int *)(puVar42 + -0x34)" * (cast_expression "(int *)(puVar42 + -0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar42 + -0x34)" ( (binary_expression "puVar42 + -0x34" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(re_dfa_t **)(puVar42 + -0x38) = prVar27;" (assignment_expression "*(re_dfa_t **)(puVar42 + -0x38) = prVar27" (pointer_expression "*(re_dfa_t **)(puVar42 + -0x38)" * (cast_expression "(re_dfa_t **)(puVar42 + -0x38)" ( (type_descriptor "re_dfa_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar42 + -0x38)" ( (binary_expression "puVar42 + -0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "rVar11 = check_arrival(mctx_00,(state_array_t *)&prVar15->nodes_len,(Idx)prVar26,sVar28,\n                         *(Idx *)(puVar42 + -0x38),*(Idx *)(puVar42 + -0x34),\n                         *(int *)(puVar42 + -0x30));" (assignment_expression "rVar11 = check_arrival(mctx_00,(state_array_t *)&prVar15->nodes_len,(Idx)prVar26,sVar28,\n                         *(Idx *)(puVar42 + -0x38),*(Idx *)(puVar42 + -0x34),\n                         *(int *)(puVar42 + -0x30))" identifier = (call_expression "check_arrival(mctx_00,(state_array_t *)&prVar15->nodes_len,(Idx)prVar26,sVar28,\n                         *(Idx *)(puVar42 + -0x38),*(Idx *)(puVar42 + -0x34),\n                         *(int *)(puVar42 + -0x30))" identifier (argument_list "(mctx_00,(state_array_t *)&prVar15->nodes_len,(Idx)prVar26,sVar28,\n                         *(Idx *)(puVar42 + -0x38),*(Idx *)(puVar42 + -0x34),\n                         *(int *)(puVar42 + -0x30))" ( identifier , (cast_expression "(state_array_t *)&prVar15->nodes_len" ( (type_descriptor "state_array_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar15->nodes_len" & (field_expression "prVar15->nodes_len" identifier -> field_identifier))) , (cast_expression "(Idx)prVar26" ( (type_descriptor "Idx" type_identifier) ) identifier) , identifier , (pointer_expression "*(Idx *)(puVar42 + -0x38)" * (cast_expression "(Idx *)(puVar42 + -0x38)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar42 + -0x38)" ( (binary_expression "puVar42 + -0x38" identifier + number_literal) )))) , (pointer_expression "*(Idx *)(puVar42 + -0x34)" * (cast_expression "(Idx *)(puVar42 + -0x34)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar42 + -0x34)" ( (binary_expression "puVar42 + -0x34" identifier + number_literal) )))) , (pointer_expression "*(int *)(puVar42 + -0x30)" * (cast_expression "(int *)(puVar42 + -0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar42 + -0x30)" ( (binary_expression "puVar42 + -0x30" identifier + number_literal) )))) )))) ;) (if_statement "if (rVar11 != _REG_NOERROR) {\n    return rVar11;\n  }" if (parenthesized_expression "(rVar11 != _REG_NOERROR)" ( (binary_expression "rVar11 != _REG_NOERROR" identifier != identifier) )) (compound_statement "{\n    return rVar11;\n  }" { (return_statement "return rVar11;" return identifier ;) })) (expression_statement "iVar13 = mctx_00->nbkref_ents;" (assignment_expression "iVar13 = mctx_00->nbkref_ents" identifier = (field_expression "mctx_00->nbkref_ents" identifier -> field_identifier)) ;) (expression_statement "prVar39 = prVar5->nodes;" (assignment_expression "prVar39 = prVar5->nodes" identifier = (field_expression "prVar5->nodes" identifier -> field_identifier)) ;) (expression_statement "prVar37 = (re_token_t *)prVar15->nodes_alloc;" (assignment_expression "prVar37 = (re_token_t *)prVar15->nodes_alloc" identifier = (cast_expression "(re_token_t *)prVar15->nodes_alloc" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prVar15->nodes_alloc" identifier -> field_identifier))) ;) (expression_statement "prVar24 = mctx_00->bkref_ents;" (assignment_expression "prVar24 = mctx_00->bkref_ents" identifier = (field_expression "mctx_00->bkref_ents" identifier -> field_identifier)) ;) (expression_statement "prVar26 = prVar37;" (assignment_expression "prVar26 = prVar37" identifier = identifier) ;) (if_statement "if (mctx_00->abkref_ents <= iVar13) {\n    prVar24 = (re_backref_cache_entry *)\n              (**(code **)(*(int *)(puVar42 + -0x28) + -0x7e18))\n                        (prVar24,mctx_00->abkref_ents * 0x28);\n    if (prVar24 == (re_backref_cache_entry *)0x0) {\n      (**(code **)(*(int *)(puVar42 + -0x28) + -0x7db0))(mctx_00->bkref_ents);\n      return _REG_ESPACE;\n    }\n    pcVar18 = *(code **)(*(int *)(puVar42 + -0x28) + -0x7e40);\n    mctx_00->bkref_ents = prVar24;\n    (*pcVar18)(prVar24 + mctx_00->nbkref_ents,0,mctx_00->abkref_ents * 0x14);\n    prVar26 = (re_token_t *)prVar15->nodes_alloc;\n    iVar13 = mctx_00->nbkref_ents;\n    prVar24 = mctx_00->bkref_ents;\n    mctx_00->abkref_ents = mctx_00->abkref_ents << 1;\n  }" if (parenthesized_expression "(mctx_00->abkref_ents <= iVar13)" ( (binary_expression "mctx_00->abkref_ents <= iVar13" (field_expression "mctx_00->abkref_ents" identifier -> field_identifier) <= identifier) )) (compound_statement "{\n    prVar24 = (re_backref_cache_entry *)\n              (**(code **)(*(int *)(puVar42 + -0x28) + -0x7e18))\n                        (prVar24,mctx_00->abkref_ents * 0x28);\n    if (prVar24 == (re_backref_cache_entry *)0x0) {\n      (**(code **)(*(int *)(puVar42 + -0x28) + -0x7db0))(mctx_00->bkref_ents);\n      return _REG_ESPACE;\n    }\n    pcVar18 = *(code **)(*(int *)(puVar42 + -0x28) + -0x7e40);\n    mctx_00->bkref_ents = prVar24;\n    (*pcVar18)(prVar24 + mctx_00->nbkref_ents,0,mctx_00->abkref_ents * 0x14);\n    prVar26 = (re_token_t *)prVar15->nodes_alloc;\n    iVar13 = mctx_00->nbkref_ents;\n    prVar24 = mctx_00->bkref_ents;\n    mctx_00->abkref_ents = mctx_00->abkref_ents << 1;\n  }" { (expression_statement "prVar24 = (re_backref_cache_entry *)\n              (**(code **)(*(int *)(puVar42 + -0x28) + -0x7e18))\n                        (prVar24,mctx_00->abkref_ents * 0x28);" (assignment_expression "prVar24 = (re_backref_cache_entry *)\n              (**(code **)(*(int *)(puVar42 + -0x28) + -0x7e18))\n                        (prVar24,mctx_00->abkref_ents * 0x28)" identifier = (cast_expression "(re_backref_cache_entry *)\n              (**(code **)(*(int *)(puVar42 + -0x28) + -0x7e18))\n                        (prVar24,mctx_00->abkref_ents * 0x28)" ( (type_descriptor "re_backref_cache_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar42 + -0x28) + -0x7e18))\n                        (prVar24,mctx_00->abkref_ents * 0x28)" (parenthesized_expression "(**(code **)(*(int *)(puVar42 + -0x28) + -0x7e18))" ( (pointer_expression "**(code **)(*(int *)(puVar42 + -0x28) + -0x7e18)" * (pointer_expression "*(code **)(*(int *)(puVar42 + -0x28) + -0x7e18)" * (cast_expression "(code **)(*(int *)(puVar42 + -0x28) + -0x7e18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar42 + -0x28) + -0x7e18)" ( (binary_expression "*(int *)(puVar42 + -0x28) + -0x7e18" (pointer_expression "*(int *)(puVar42 + -0x28)" * (cast_expression "(int *)(puVar42 + -0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar42 + -0x28)" ( (binary_expression "puVar42 + -0x28" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(prVar24,mctx_00->abkref_ents * 0x28)" ( identifier , (binary_expression "mctx_00->abkref_ents * 0x28" (field_expression "mctx_00->abkref_ents" identifier -> field_identifier) * number_literal) ))))) ;) (if_statement "if (prVar24 == (re_backref_cache_entry *)0x0) {\n      (**(code **)(*(int *)(puVar42 + -0x28) + -0x7db0))(mctx_00->bkref_ents);\n      return _REG_ESPACE;\n    }" if (parenthesized_expression "(prVar24 == (re_backref_cache_entry *)0x0)" ( (binary_expression "prVar24 == (re_backref_cache_entry *)0x0" identifier == (cast_expression "(re_backref_cache_entry *)0x0" ( (type_descriptor "re_backref_cache_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(*(int *)(puVar42 + -0x28) + -0x7db0))(mctx_00->bkref_ents);\n      return _REG_ESPACE;\n    }" { (expression_statement "(**(code **)(*(int *)(puVar42 + -0x28) + -0x7db0))(mctx_00->bkref_ents);" (call_expression "(**(code **)(*(int *)(puVar42 + -0x28) + -0x7db0))(mctx_00->bkref_ents)" (parenthesized_expression "(**(code **)(*(int *)(puVar42 + -0x28) + -0x7db0))" ( (pointer_expression "**(code **)(*(int *)(puVar42 + -0x28) + -0x7db0)" * (pointer_expression "*(code **)(*(int *)(puVar42 + -0x28) + -0x7db0)" * (cast_expression "(code **)(*(int *)(puVar42 + -0x28) + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar42 + -0x28) + -0x7db0)" ( (binary_expression "*(int *)(puVar42 + -0x28) + -0x7db0" (pointer_expression "*(int *)(puVar42 + -0x28)" * (cast_expression "(int *)(puVar42 + -0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar42 + -0x28)" ( (binary_expression "puVar42 + -0x28" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(mctx_00->bkref_ents)" ( (field_expression "mctx_00->bkref_ents" identifier -> field_identifier) ))) ;) (return_statement "return _REG_ESPACE;" return identifier ;) })) (expression_statement "pcVar18 = *(code **)(*(int *)(puVar42 + -0x28) + -0x7e40);" (assignment_expression "pcVar18 = *(code **)(*(int *)(puVar42 + -0x28) + -0x7e40)" identifier = (pointer_expression "*(code **)(*(int *)(puVar42 + -0x28) + -0x7e40)" * (cast_expression "(code **)(*(int *)(puVar42 + -0x28) + -0x7e40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar42 + -0x28) + -0x7e40)" ( (binary_expression "*(int *)(puVar42 + -0x28) + -0x7e40" (pointer_expression "*(int *)(puVar42 + -0x28)" * (cast_expression "(int *)(puVar42 + -0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar42 + -0x28)" ( (binary_expression "puVar42 + -0x28" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "mctx_00->bkref_ents = prVar24;" (assignment_expression "mctx_00->bkref_ents = prVar24" (field_expression "mctx_00->bkref_ents" identifier -> field_identifier) = identifier) ;) (expression_statement "(*pcVar18)(prVar24 + mctx_00->nbkref_ents,0,mctx_00->abkref_ents * 0x14);" (call_expression "(*pcVar18)(prVar24 + mctx_00->nbkref_ents,0,mctx_00->abkref_ents * 0x14)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(prVar24 + mctx_00->nbkref_ents,0,mctx_00->abkref_ents * 0x14)" ( (binary_expression "prVar24 + mctx_00->nbkref_ents" identifier + (field_expression "mctx_00->nbkref_ents" identifier -> field_identifier)) , number_literal , (binary_expression "mctx_00->abkref_ents * 0x14" (field_expression "mctx_00->abkref_ents" identifier -> field_identifier) * number_literal) ))) ;) (expression_statement "prVar26 = (re_token_t *)prVar15->nodes_alloc;" (assignment_expression "prVar26 = (re_token_t *)prVar15->nodes_alloc" identifier = (cast_expression "(re_token_t *)prVar15->nodes_alloc" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prVar15->nodes_alloc" identifier -> field_identifier))) ;) (expression_statement "iVar13 = mctx_00->nbkref_ents;" (assignment_expression "iVar13 = mctx_00->nbkref_ents" identifier = (field_expression "mctx_00->nbkref_ents" identifier -> field_identifier)) ;) (expression_statement "prVar24 = mctx_00->bkref_ents;" (assignment_expression "prVar24 = mctx_00->bkref_ents" identifier = (field_expression "mctx_00->bkref_ents" identifier -> field_identifier)) ;) (expression_statement "mctx_00->abkref_ents = mctx_00->abkref_ents << 1;" (assignment_expression "mctx_00->abkref_ents = mctx_00->abkref_ents << 1" (field_expression "mctx_00->abkref_ents" identifier -> field_identifier) = (binary_expression "mctx_00->abkref_ents << 1" (field_expression "mctx_00->abkref_ents" identifier -> field_identifier) << number_literal)) ;) })) (if_statement "if ((0 < iVar13) && (iVar8 == prVar24[iVar13 + -1].str_idx)) {\n    prVar24[iVar13 + -1].more = '\x01';\n  }" if (parenthesized_expression "((0 < iVar13) && (iVar8 == prVar24[iVar13 + -1].str_idx))" ( (binary_expression "(0 < iVar13) && (iVar8 == prVar24[iVar13 + -1].str_idx)" (parenthesized_expression "(0 < iVar13)" ( (binary_expression "0 < iVar13" number_literal < identifier) )) && (parenthesized_expression "(iVar8 == prVar24[iVar13 + -1].str_idx)" ( (binary_expression "iVar8 == prVar24[iVar13 + -1].str_idx" identifier == (field_expression "prVar24[iVar13 + -1].str_idx" (subscript_expression "prVar24[iVar13 + -1]" identifier [ (binary_expression "iVar13 + -1" identifier + number_literal) ]) . field_identifier)) ))) )) (compound_statement "{\n    prVar24[iVar13 + -1].more = '\x01';\n  }" { (expression_statement "prVar24[iVar13 + -1].more = '\x01';" (assignment_expression "prVar24[iVar13 + -1].more = '\x01'" (field_expression "prVar24[iVar13 + -1].more" (subscript_expression "prVar24[iVar13 + -1]" identifier [ (binary_expression "iVar13 + -1" identifier + number_literal) ]) . field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) })) (expression_statement "prVar24 = prVar24 + iVar13;" (assignment_expression "prVar24 = prVar24 + iVar13" identifier = (binary_expression "prVar24 + iVar13" identifier + identifier)) ;) (expression_statement "prVar24->node = (Idx)prVar27;" (assignment_expression "prVar24->node = (Idx)prVar27" (field_expression "prVar24->node" identifier -> field_identifier) = (cast_expression "(Idx)prVar27" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "prVar24->str_idx = iVar8;" (assignment_expression "prVar24->str_idx = iVar8" (field_expression "prVar24->str_idx" identifier -> field_identifier) = identifier) ;) (expression_statement "prVar24->subexp_from = (Idx)prVar39;" (assignment_expression "prVar24->subexp_from = (Idx)prVar39" (field_expression "prVar24->subexp_from" identifier -> field_identifier) = (cast_expression "(Idx)prVar39" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "prVar24->subexp_to = (Idx)prVar37;" (assignment_expression "prVar24->subexp_to = (Idx)prVar37" (field_expression "prVar24->subexp_to" identifier -> field_identifier) = (cast_expression "(Idx)prVar37" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "prVar24->eps_reachable_subexps_map = -(ushort)(prVar39 == prVar37);" (assignment_expression "prVar24->eps_reachable_subexps_map = -(ushort)(prVar39 == prVar37)" (field_expression "prVar24->eps_reachable_subexps_map" identifier -> field_identifier) = (unary_expression "-(ushort)(prVar39 == prVar37)" - (call_expression "(ushort)(prVar39 == prVar37)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(prVar39 == prVar37)" ( (binary_expression "prVar39 == prVar37" identifier == identifier) ))))) ;) (expression_statement "mctx_00->nbkref_ents = iVar13 + 1;" (assignment_expression "mctx_00->nbkref_ents = iVar13 + 1" (field_expression "mctx_00->nbkref_ents" identifier -> field_identifier) = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "prVar24->more = '\0';" (assignment_expression "prVar24->more = '\0'" (field_expression "prVar24->more" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (mctx_00->max_mb_elem_len < (int)prVar37 - (int)prVar39) {\n    mctx_00->max_mb_elem_len = (int)prVar37 - (int)prVar39;\n  }" if (parenthesized_expression "(mctx_00->max_mb_elem_len < (int)prVar37 - (int)prVar39)" ( (binary_expression "mctx_00->max_mb_elem_len < (int)prVar37 - (int)prVar39" (field_expression "mctx_00->max_mb_elem_len" identifier -> field_identifier) < (binary_expression "(int)prVar37 - (int)prVar39" (cast_expression "(int)prVar37" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)prVar39" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n    mctx_00->max_mb_elem_len = (int)prVar37 - (int)prVar39;\n  }" { (expression_statement "mctx_00->max_mb_elem_len = (int)prVar37 - (int)prVar39;" (assignment_expression "mctx_00->max_mb_elem_len = (int)prVar37 - (int)prVar39" (field_expression "mctx_00->max_mb_elem_len" identifier -> field_identifier) = (binary_expression "(int)prVar37 - (int)prVar39" (cast_expression "(int)prVar37" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)prVar39" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (expression_statement "rVar11 = clean_state_log_if_needed(mctx_00,(int)prVar26 + (iVar8 - (int)prVar5->nodes));" (assignment_expression "rVar11 = clean_state_log_if_needed(mctx_00,(int)prVar26 + (iVar8 - (int)prVar5->nodes))" identifier = (call_expression "clean_state_log_if_needed(mctx_00,(int)prVar26 + (iVar8 - (int)prVar5->nodes))" identifier (argument_list "(mctx_00,(int)prVar26 + (iVar8 - (int)prVar5->nodes))" ( identifier , (binary_expression "(int)prVar26 + (iVar8 - (int)prVar5->nodes)" (cast_expression "(int)prVar26" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(iVar8 - (int)prVar5->nodes)" ( (binary_expression "iVar8 - (int)prVar5->nodes" identifier - (cast_expression "(int)prVar5->nodes" ( (type_descriptor "int" primitive_type) ) (field_expression "prVar5->nodes" identifier -> field_identifier))) ))) )))) ;) (return_statement "return rVar11;" return identifier ;) (labeled_statement "LAB_00020f60:\n  pcVar18 = *(code **)(puVar40 + -0x7db0);" statement_identifier : (expression_statement "pcVar18 = *(code **)(puVar40 + -0x7db0);" (assignment_expression "pcVar18 = *(code **)(puVar40 + -0x7db0)" identifier = (pointer_expression "*(code **)(puVar40 + -0x7db0)" * (cast_expression "(code **)(puVar40 + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x7db0)" ( (binary_expression "puVar40 + -0x7db0" identifier + number_literal) ))))) ;)) (expression_statement "prVar27 = (re_dfa_t *)auStackY_138._56_4_;" (assignment_expression "prVar27 = (re_dfa_t *)auStackY_138._56_4_" identifier = (cast_expression "(re_dfa_t *)auStackY_138._56_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStackY_138._56_4_" identifier . field_identifier))) ;) (if_statement "if (prVar34 == (re_dfa_t *)&SUB_fffffffe) {\nLAB_000213b0:\n    (*pcVar18)(auStackY_138._68_4_);\n    if (auStackY_138._16_4_ != 0) {\nLAB_000214d4:\n      (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n    }\n    if (fs != (re_fail_stack_t *)0x0) goto LAB_0002112c;\n    rVar11 = _REG_ESPACE;\n    goto LAB_00020f18;\n  }" if (parenthesized_expression "(prVar34 == (re_dfa_t *)&SUB_fffffffe)" ( (binary_expression "prVar34 == (re_dfa_t *)&SUB_fffffffe" identifier == (cast_expression "(re_dfa_t *)&SUB_fffffffe" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&SUB_fffffffe" & identifier))) )) (compound_statement "{\nLAB_000213b0:\n    (*pcVar18)(auStackY_138._68_4_);\n    if (auStackY_138._16_4_ != 0) {\nLAB_000214d4:\n      (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n    }\n    if (fs != (re_fail_stack_t *)0x0) goto LAB_0002112c;\n    rVar11 = _REG_ESPACE;\n    goto LAB_00020f18;\n  }" { (labeled_statement "LAB_000213b0:\n    (*pcVar18)(auStackY_138._68_4_);" statement_identifier : (expression_statement "(*pcVar18)(auStackY_138._68_4_);" (call_expression "(*pcVar18)(auStackY_138._68_4_)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(auStackY_138._68_4_)" ( (field_expression "auStackY_138._68_4_" identifier . field_identifier) ))) ;)) (if_statement "if (auStackY_138._16_4_ != 0) {\nLAB_000214d4:\n      (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n    }" if (parenthesized_expression "(auStackY_138._16_4_ != 0)" ( (binary_expression "auStackY_138._16_4_ != 0" (field_expression "auStackY_138._16_4_" identifier . field_identifier) != number_literal) )) (compound_statement "{\nLAB_000214d4:\n      (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n    }" { (labeled_statement "LAB_000214d4:\n      (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);" statement_identifier : (expression_statement "(**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);" (call_expression "(**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_)" (parenthesized_expression "(**(code **)(auStackY_138._0_4_ + -0x7db0))" ( (pointer_expression "**(code **)(auStackY_138._0_4_ + -0x7db0)" * (pointer_expression "*(code **)(auStackY_138._0_4_ + -0x7db0)" * (cast_expression "(code **)(auStackY_138._0_4_ + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStackY_138._0_4_ + -0x7db0)" ( (binary_expression "auStackY_138._0_4_ + -0x7db0" (field_expression "auStackY_138._0_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(auStackY_138._20_4_)" ( (field_expression "auStackY_138._20_4_" identifier . field_identifier) ))) ;)) })) (if_statement "if (fs != (re_fail_stack_t *)0x0) goto LAB_0002112c;" if (parenthesized_expression "(fs != (re_fail_stack_t *)0x0)" ( (binary_expression "fs != (re_fail_stack_t *)0x0" identifier != (cast_expression "(re_fail_stack_t *)0x0" ( (type_descriptor "re_fail_stack_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002112c;" goto statement_identifier ;)) (expression_statement "rVar11 = _REG_ESPACE;" (assignment_expression "rVar11 = _REG_ESPACE" identifier = identifier) ;) (goto_statement "goto LAB_00020f18;" goto statement_identifier ;) })) (labeled_statement "LAB_00020f6c:\n  prVar22 = input;" statement_identifier : (expression_statement "prVar22 = input;" (assignment_expression "prVar22 = input" identifier = identifier) ;)) (if_statement "if (fs == (re_fail_stack_t *)0x0) {\n    (**(code **)(puVar40 + -0x7db0))(auStackY_138._68_4_);\n    if (auStackY_138._16_4_ == 0) {\n      rVar11 = _REG_NOMATCH;\n    }\n    else {\n      (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n      rVar11 = _REG_NOMATCH;\n    }\n    goto LAB_00020f18;\n  }" if (parenthesized_expression "(fs == (re_fail_stack_t *)0x0)" ( (binary_expression "fs == (re_fail_stack_t *)0x0" identifier == (cast_expression "(re_fail_stack_t *)0x0" ( (type_descriptor "re_fail_stack_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(puVar40 + -0x7db0))(auStackY_138._68_4_);\n    if (auStackY_138._16_4_ == 0) {\n      rVar11 = _REG_NOMATCH;\n    }\n    else {\n      (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n      rVar11 = _REG_NOMATCH;\n    }\n    goto LAB_00020f18;\n  }" { (expression_statement "(**(code **)(puVar40 + -0x7db0))(auStackY_138._68_4_);" (call_expression "(**(code **)(puVar40 + -0x7db0))(auStackY_138._68_4_)" (parenthesized_expression "(**(code **)(puVar40 + -0x7db0))" ( (pointer_expression "**(code **)(puVar40 + -0x7db0)" * (pointer_expression "*(code **)(puVar40 + -0x7db0)" * (cast_expression "(code **)(puVar40 + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x7db0)" ( (binary_expression "puVar40 + -0x7db0" identifier + number_literal) ))))) )) (argument_list "(auStackY_138._68_4_)" ( (field_expression "auStackY_138._68_4_" identifier . field_identifier) ))) ;) (if_statement "if (auStackY_138._16_4_ == 0) {\n      rVar11 = _REG_NOMATCH;\n    }\n    else {\n      (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n      rVar11 = _REG_NOMATCH;\n    }" if (parenthesized_expression "(auStackY_138._16_4_ == 0)" ( (binary_expression "auStackY_138._16_4_ == 0" (field_expression "auStackY_138._16_4_" identifier . field_identifier) == number_literal) )) (compound_statement "{\n      rVar11 = _REG_NOMATCH;\n    }" { (expression_statement "rVar11 = _REG_NOMATCH;" (assignment_expression "rVar11 = _REG_NOMATCH" identifier = identifier) ;) }) (else_clause "else {\n      (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n      rVar11 = _REG_NOMATCH;\n    }" else (compound_statement "{\n      (**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);\n      rVar11 = _REG_NOMATCH;\n    }" { (expression_statement "(**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_);" (call_expression "(**(code **)(auStackY_138._0_4_ + -0x7db0))(auStackY_138._20_4_)" (parenthesized_expression "(**(code **)(auStackY_138._0_4_ + -0x7db0))" ( (pointer_expression "**(code **)(auStackY_138._0_4_ + -0x7db0)" * (pointer_expression "*(code **)(auStackY_138._0_4_ + -0x7db0)" * (cast_expression "(code **)(auStackY_138._0_4_ + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStackY_138._0_4_ + -0x7db0)" ( (binary_expression "auStackY_138._0_4_ + -0x7db0" (field_expression "auStackY_138._0_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(auStackY_138._20_4_)" ( (field_expression "auStackY_138._20_4_" identifier . field_identifier) ))) ;) (expression_statement "rVar11 = _REG_NOMATCH;" (assignment_expression "rVar11 = _REG_NOMATCH" identifier = identifier) ;) }))) (goto_statement "goto LAB_00020f18;" goto statement_identifier ;) })) (labeled_statement "LAB_00020f7c:\n  uVar33 = auStackY_138._24_4_;" statement_identifier : (expression_statement "uVar33 = auStackY_138._24_4_;" (assignment_expression "uVar33 = auStackY_138._24_4_" identifier = (field_expression "auStackY_138._24_4_" identifier . field_identifier)) ;)) (expression_statement "prVar15 = (re_dfa_t *)(auStackY_138 + 0x38);" (assignment_expression "prVar15 = (re_dfa_t *)(auStackY_138 + 0x38)" identifier = (cast_expression "(re_dfa_t *)(auStackY_138 + 0x38)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStackY_138 + 0x38)" ( (binary_expression "auStackY_138 + 0x38" identifier + number_literal) )))) ;) (expression_statement "prVar5 = (re_dfa_t *)&fs->stack;" (assignment_expression "prVar5 = (re_dfa_t *)&fs->stack" identifier = (cast_expression "(re_dfa_t *)&fs->stack" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&fs->stack" & (field_expression "fs->stack" identifier -> field_identifier)))) ;) (expression_statement "*(Idx *)(puVar41 + 0x14) = top_node;" (assignment_expression "*(Idx *)(puVar41 + 0x14) = top_node" (pointer_expression "*(Idx *)(puVar41 + 0x14)" * (cast_expression "(Idx *)(puVar41 + 0x14)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x14)" ( (binary_expression "puVar41 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(re_dfa_t **)(puVar41 + 0x10) = context;" (assignment_expression "*(re_dfa_t **)(puVar41 + 0x10) = context" (pointer_expression "*(re_dfa_t **)(puVar41 + 0x10)" * (cast_expression "(re_dfa_t **)(puVar41 + 0x10)" ( (type_descriptor "re_dfa_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x10)" ( (binary_expression "puVar41 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "prVar34 = (re_dfa_t *)(*(code *)uVar33)(fs,prVar5,prVar15,prVar25);" (assignment_expression "prVar34 = (re_dfa_t *)(*(code *)uVar33)(fs,prVar5,prVar15,prVar25)" identifier = (cast_expression "(re_dfa_t *)(*(code *)uVar33)(fs,prVar5,prVar15,prVar25)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)uVar33)(fs,prVar5,prVar15,prVar25)" (parenthesized_expression "(*(code *)uVar33)" ( (pointer_expression "*(code *)uVar33" * (cast_expression "(code *)uVar33" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(fs,prVar5,prVar15,prVar25)" ( identifier , identifier , identifier , identifier ))))) ;) (expression_statement "input = prVar22;" (assignment_expression "input = prVar22" identifier = identifier) ;) (goto_statement "goto LAB_00020db0;" goto statement_identifier ;) })))
(translation_unit "uint FUN_00020550(int *******param_1,int *******param_2,int *******param_3,int *******param_4,\n                 int *******param_5,int param_6,int *******param_7)\n\n{\n  uint *puVar1;\n  undefined *puVar2;\n  int *******pppppppiVar3;\n  int ******ppppppiVar4;\n  code *pcVar5;\n  int iVar6;\n  int *******pppppppiVar7;\n  int *****pppppiVar8;\n  int *piVar9;\n  uint uVar10;\n  int iVar11;\n  int *******pppppppiVar12;\n  int ******ppppppiVar13;\n  int ******ppppppiVar14;\n  code *pcVar15;\n  code *pcVar16;\n  code *pcVar17;\n  int ******ppppppiVar18;\n  int ****ppppiVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  int *******pppppppiVar22;\n  int *******pppppppiVar23;\n  int iVar24;\n  int *******pppppppiVar25;\n  int *******pppppppiVar26;\n  int *******pppppppiVar27;\n  int *******pppppppiVar28;\n  int *******pppppppiVar29;\n  int *******pppppppiVar30;\n  int iVar31;\n  int ******ppppppiVar32;\n  int *******unaff_s5;\n  int **ppiVar33;\n  int *piVar34;\n  int ******unaff_s7;\n  undefined *puVar35;\n  int ****ppppiVar36;\n  undefined1 *puVar37;\n  undefined1 *puVar38;\n  undefined1 *puVar39;\n  int *******unaff_s8;\n  undefined1 auStack_150 [24];\n  int ******appppppiStack_138 [2];\n  int *******pppppppiStack_130;\n  int *piStack_12c;\n  int iStack_128;\n  int *******pppppppiStack_124;\n  int ****ppppiStack_120;\n  int *******pppppppiStack_11c;\n  int ****ppppiStack_118;\n  int ****ppppiStack_114;\n  int ****ppppiStack_110;\n  int *******pppppppiStack_10c;\n  int *******pppppppiStack_108;\n  int ****ppppiStack_104;\n  int *******pppppppiStack_100;\n  int ******ppppppiStack_fc;\n  undefined4 uStack_f8;\n  int ******ppppppiStack_f4;\n  int *piStack_f0;\n  undefined4 uStack_ec;\n  int iStack_e8;\n  int iStack_e4;\n  int *******pppppppiStack_e0;\n  int *******pppppppiStack_dc;\n  int *******pppppppiStack_d8;\n  int *******pppppppiStack_d4;\n  int ******ppppppiStack_d0;\n  int *******pppppppiStack_cc;\n  int *******pppppppiStack_c8;\n  int ******ppppppiStack_c4;\n  int *******pppppppiStack_c0;\n  code *pcStack_bc;\n  undefined4 local_a8;\n  int local_8c;\n  code *local_6c;\n  uint local_4c;\n  uint local_48 [3];\n  undefined4 *local_3c;\n  int ******local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 *local_2c;\n  \n  puVar35 = PTR___stack_chk_guard_0003c314;\n  pppppppiVar12 = (int *******)param_1[0x15];\n  pppppppiVar30 = (int *******)param_2[1];\n  local_2c = *(undefined4 **)PTR___stack_chk_guard_0003c314;\n  pppppppiVar22 = (int *******)((int)param_3 * 8);\n  pppppppiVar23 = (int *******)(param_6 + (int)param_1[0x1e]);\n  local_4c = 0;\n  pppppppiVar3 = (int *******)(*pppppppiVar12)[(int)param_3 * 2];\n  pppppppiVar7 = param_4;\n  if ((int)pppppppiVar23 < (int)pppppppiVar30) {\nLAB_000205e8:\n    puVar2 = PTR_LAB_0003c1e8;\n    ppppppiVar13 = param_1[0x19];\n    pppppppiVar23 = (int *******)param_1[0x16];\n    pppppppiVar28 = (int *******)*param_2;\n    ppppppiVar32 = param_2[2];\n    ppppppiVar14 = param_1[10];\n    if (pppppppiVar28 == (int *******)0x0) {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)param_4 + -1);\n      param_1[10] = (int ******)param_4;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\nLAB_00020b7c:\n      local_48[1] = 1;\n      local_48[2] = 1;\n      local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4);\n      if (local_3c == (undefined4 *)0x0) goto LAB_00020c64;\n      pppppppiVar22 = (int *******)(local_48 + 1);\n      *local_3c = param_3;\n      local_4c = 0;\n      pppppppiVar23 = pppppppiVar3;\n      pppppppiVar7 = param_7;\n      local_4c = FUN_0001afe8(pppppppiVar12);\n      pppppppiVar28 = param_4;\n      if (local_4c == 0) {\nLAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);\n        if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }\n        pppppppiVar22 = pppppppiVar12;\n        pppppppiVar7 = pppppppiVar30;\n        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n        pppppppiVar23 = pppppppiVar25;\n        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }\n      }\nLAB_00020920:\n      (*(code *)PTR_free_0003c320)(local_3c);\n      uVar10 = local_4c;\n    }\n    else {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);\n      param_1[10] = (int ******)pppppppiVar28;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\n      if (pppppppiVar28 == param_4) goto LAB_00020b7c;\n      ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;\n      unaff_s7 = (int ******)*ppppppiVar32;\n      pppppppiVar25 = pppppppiVar28;\n      if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }\n      else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }\n  }\n  else {\n    pppppppiVar28 = (int *******)((int)pppppppiVar23 + 1);\n    ppppppiVar32 = (int ******)((int)pppppppiVar30 + (int)pppppppiVar28);\n    if (((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&\n       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)) {\n      pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);\n      ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);\n      puVar2 = PTR_memset_0003c290;\n      if (ppppppiVar13 != (int ******)0x0) {\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }\n    }\nLAB_00020c64:\n    uVar10 = 0xc;\n  }\n  if (local_2c == *(undefined4 **)puVar35) {\n    return uVar10;\n  }\n  pcVar15 = FUN_00020ca0;\n  puVar21 = local_2c;\n  puVar35 = PTR___stack_chk_fail_0003c2f4;\n  (*(code *)PTR___stack_chk_fail_0003c2f4)();\n  appppppiStack_138[0] = (int ******)(puVar35 + 0x23430);\n  puVar37 = auStack_150;\n  puVar38 = auStack_150;\n  piStack_12c = *(int **)(puVar35 + 0x1b674);\n  uStack_ec = 2;\n  piStack_f0 = (int *)0x0;\n  iStack_e8 = 0;\n  iStack_e4 = *piStack_12c;\n  piVar34 = (int *)*puVar21;\n  pppppppiVar3 = pppppppiVar22;\n  pppppppiVar12 = pppppppiVar23;\n  pppppppiVar25 = pppppppiVar7;\n  pppppppiStack_e0 = pppppppiVar28;\n  pppppppiStack_dc = param_4;\n  pppppppiStack_d8 = pppppppiVar30;\n  pppppppiStack_d4 = param_3;\n  ppppppiStack_d0 = ppppppiVar32;\n  pppppppiStack_cc = unaff_s5;\n  pppppppiStack_c8 = param_1;\n  ppppppiStack_c4 = unaff_s7;\n  pppppppiStack_c0 = unaff_s8;\n  pcStack_bc = pcVar15;\n  if ((char)local_a8 == '\0') {\n    pppppppiVar28 = (int *******)piVar34[0x12];\n    ppiVar33 = (int **)0x0;\n    if ((uint)((int)pppppppiVar23 << 3) < 0xfc0) goto LAB_00020d5c;\nLAB_00021488:\n    pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n    ppppppiStack_f4 = (int ******)0x0;\n    uStack_f8 = 0;\n    ppppppiStack_fc = (int ******)0x0;\n    param_3 = &ppppppiStack_fc;\n    pppppppiStack_124 = (int *******)(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c);\n    iStack_128 = 1;\n    if (pppppppiStack_124 != (int *******)0x0) goto LAB_00020d6c;\n    puVar37 = auStack_150;\n    if (ppiVar33 == (int **)0x0) {\n      uVar10 = 0xc;\n      goto LAB_00020f18;\n    }\nLAB_0002112c:\n    param_3 = &ppppppiStack_fc;\n    FUN_0001ec78(ppiVar33);\n    puVar39 = puVar37;\n  }\n  else {\n    ppiVar33 = &piStack_f0;\n    iStack_e8 = (**(code **)(puVar35 + 0x1b614))(0x30);\n    puVar39 = auStack_150;\n    if (iStack_e8 != 0) {\n      pppppppiVar28 = (int *******)piVar34[0x12];\n      if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n      ppppppiStack_f4 = (int ******)0x0;\n      uStack_f8 = 0;\n      ppppppiStack_fc = (int ******)0x0;\n      puVar37 = auStack_150 + (int)pppppppiVar23 * -8;\n      iStack_128 = 0;\n      pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;\nLAB_00020d6c:\n      param_3 = &ppppppiStack_fc;\n      pppppppiVar3 = pppppppiVar7;\n      pppppppiVar12 = pppppppiStack_11c;\n      (*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);\n      pppppppiStack_100 = (int *******)*pppppppiVar7;\n      ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);\n      ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);\n      ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);\nLAB_00020db0:\n      pppppppiVar29 = (int *******)pppppppiVar7[1];\n      ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n      ppppppiVar32 = appppppiStack_138[0];\n      puVar38 = puVar37;\n      if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }\n      pppppppiVar25 = pppppppiStack_100;\n      (*(code *)ppppiVar19)(ppppppiStack_f4);\n      if (iStack_128 == 0) {\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }\n      else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      FUN_0001ec78(ppiVar33);\nLAB_00020f14:\n      uVar10 = 0;\n      goto LAB_00020f18;\n    }\n  }\n  uVar10 = 0xc;\n  puVar38 = puVar39;\nLAB_00020f18:\n  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f77];\n  if (iStack_e4 == *piStack_12c) {\n    return uVar10;\n  }\n  pcVar15 = FUN_00021550;\n  iVar6 = iStack_e4;\n  (*(code *)ppppiVar19)();\n  *(int ********)(puVar38 + -0x18) = pppppppiVar30;\n  *(int ********)(puVar38 + -0x14) = param_3;\n  *(int ********)(puVar38 + -0x1c) = pppppppiVar7;\n  *(int ********)(puVar38 + -0x10) = pppppppiVar23;\n  *(int *****)(puVar38 + -0x28) = ppppiVar19 + 0x8ae0;\n  *(int ********)(puVar38 + -0x20) = pppppppiVar22;\n  *(code **)(puVar38 + -4) = pcVar15;\n  *(int **)(puVar38 + -8) = piVar34;\n  *(int ***)(puVar38 + -0xc) = ppiVar33;\n  iVar31 = *(int *)(puVar38 + 0x10);\n  *(undefined4 *)(puVar38 + -0x30) = 8;\n  *(int *)(puVar38 + -0x34) = iVar31;\n  *(int ********)(puVar38 + -0x38) = pppppppiVar25;\n  uVar10 = FUN_00020550();\n  if (uVar10 != 0) {\n    return uVar10;\n  }\n  iVar11 = *(int *)(iVar6 + 0x6c);\n  ppppppiVar14 = *pppppppiVar3;\n  ppppppiVar13 = pppppppiVar12[1];\n  iVar20 = *(int *)(iVar6 + 0x74);\n  ppppppiVar32 = ppppppiVar13;\n  if (*(int *)(iVar6 + 0x70) <= iVar11) {\n    iVar11 = (**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))\n                       (iVar20,*(int *)(iVar6 + 0x70) * 0x28);\n    if (iVar11 == 0) {\n      (**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74));\n      return 0xc;\n    }\n    pcVar15 = *(code **)(*(int *)(puVar38 + -0x28) + -0x7e40);\n    *(int *)(iVar6 + 0x74) = iVar11;\n    (*pcVar15)(iVar11 + *(int *)(iVar6 + 0x6c) * 0x14,0,*(int *)(iVar6 + 0x70) * 0x14);\n    ppppppiVar32 = pppppppiVar12[1];\n    iVar11 = *(int *)(iVar6 + 0x6c);\n    iVar20 = *(int *)(iVar6 + 0x74);\n    *(int *)(iVar6 + 0x70) = *(int *)(iVar6 + 0x70) << 1;\n  }\n  if ((0 < iVar11) && (iVar24 = iVar20 + iVar11 * 0x14 + -0x14, iVar31 == *(int *)(iVar24 + 4))) {\n    *(undefined1 *)(iVar24 + 0x10) = 1;\n  }\n  puVar21 = (undefined4 *)(iVar20 + iVar11 * 0x14);\n  *puVar21 = pppppppiVar25;\n  puVar21[1] = iVar31;\n  puVar21[2] = ppppppiVar14;\n  puVar21[3] = ppppppiVar13;\n  *(ushort *)((int)puVar21 + 0x12) = -(ushort)(ppppppiVar14 == ppppppiVar13);\n  *(int *)(iVar6 + 0x6c) = iVar11 + 1;\n  *(undefined1 *)(puVar21 + 4) = 0;\n  if (*(int *)(iVar6 + 0x78) < (int)ppppppiVar13 - (int)ppppppiVar14) {\n    *(int *)(iVar6 + 0x78) = (int)ppppppiVar13 - (int)ppppppiVar14;\n  }\n  uVar10 = FUN_00019470(iVar6,(int)ppppppiVar32 + (iVar31 - (int)*pppppppiVar3));\n  return uVar10;\nLAB_00020f60:\n  ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n  pppppppiVar25 = pppppppiStack_100;\n  if (pppppppiVar28 == (int *******)&SUB_fffffffe) {\nLAB_000213b0:\n    (*(code *)ppppiVar19)(ppppppiStack_f4);\n    if (iStack_128 != 0) {\nLAB_000214d4:\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n    }\n    if (ppiVar33 != (int **)0x0) goto LAB_0002112c;\n    uVar10 = 0xc;\n    goto LAB_00020f18;\n  }\nLAB_00020f6c:\n  pppppppiVar27 = pppppppiVar30;\n  if (ppiVar33 == (int **)0x0) {\n    (*(code *)((int *****)ppppppiVar32)[-0x1f6c])(ppppppiStack_f4);\n    if (iStack_128 == 0) {\n      uVar10 = 1;\n    }\n    else {\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n      uVar10 = 1;\n    }\n    goto LAB_00020f18;\n  }\nLAB_00020f7c:\n  ppppiVar19 = ppppiStack_120;\n  pppppppiVar12 = (int *******)&pppppppiStack_100;\n  pppppppiVar3 = (int *******)(ppiVar33 + 2);\n  *(int ********)(puVar37 + 0x14) = param_3;\n  *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n  pppppppiVar28 =\n       (int *******)(*(code *)ppppiVar19)(ppiVar33,pppppppiVar3,pppppppiVar12,pppppppiVar23);\n  pppppppiVar30 = pppppppiVar27;\n  goto LAB_00020db0;\n}\n\n" (function_definition "uint FUN_00020550(int *******param_1,int *******param_2,int *******param_3,int *******param_4,\n                 int *******param_5,int param_6,int *******param_7)\n\n{\n  uint *puVar1;\n  undefined *puVar2;\n  int *******pppppppiVar3;\n  int ******ppppppiVar4;\n  code *pcVar5;\n  int iVar6;\n  int *******pppppppiVar7;\n  int *****pppppiVar8;\n  int *piVar9;\n  uint uVar10;\n  int iVar11;\n  int *******pppppppiVar12;\n  int ******ppppppiVar13;\n  int ******ppppppiVar14;\n  code *pcVar15;\n  code *pcVar16;\n  code *pcVar17;\n  int ******ppppppiVar18;\n  int ****ppppiVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  int *******pppppppiVar22;\n  int *******pppppppiVar23;\n  int iVar24;\n  int *******pppppppiVar25;\n  int *******pppppppiVar26;\n  int *******pppppppiVar27;\n  int *******pppppppiVar28;\n  int *******pppppppiVar29;\n  int *******pppppppiVar30;\n  int iVar31;\n  int ******ppppppiVar32;\n  int *******unaff_s5;\n  int **ppiVar33;\n  int *piVar34;\n  int ******unaff_s7;\n  undefined *puVar35;\n  int ****ppppiVar36;\n  undefined1 *puVar37;\n  undefined1 *puVar38;\n  undefined1 *puVar39;\n  int *******unaff_s8;\n  undefined1 auStack_150 [24];\n  int ******appppppiStack_138 [2];\n  int *******pppppppiStack_130;\n  int *piStack_12c;\n  int iStack_128;\n  int *******pppppppiStack_124;\n  int ****ppppiStack_120;\n  int *******pppppppiStack_11c;\n  int ****ppppiStack_118;\n  int ****ppppiStack_114;\n  int ****ppppiStack_110;\n  int *******pppppppiStack_10c;\n  int *******pppppppiStack_108;\n  int ****ppppiStack_104;\n  int *******pppppppiStack_100;\n  int ******ppppppiStack_fc;\n  undefined4 uStack_f8;\n  int ******ppppppiStack_f4;\n  int *piStack_f0;\n  undefined4 uStack_ec;\n  int iStack_e8;\n  int iStack_e4;\n  int *******pppppppiStack_e0;\n  int *******pppppppiStack_dc;\n  int *******pppppppiStack_d8;\n  int *******pppppppiStack_d4;\n  int ******ppppppiStack_d0;\n  int *******pppppppiStack_cc;\n  int *******pppppppiStack_c8;\n  int ******ppppppiStack_c4;\n  int *******pppppppiStack_c0;\n  code *pcStack_bc;\n  undefined4 local_a8;\n  int local_8c;\n  code *local_6c;\n  uint local_4c;\n  uint local_48 [3];\n  undefined4 *local_3c;\n  int ******local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 *local_2c;\n  \n  puVar35 = PTR___stack_chk_guard_0003c314;\n  pppppppiVar12 = (int *******)param_1[0x15];\n  pppppppiVar30 = (int *******)param_2[1];\n  local_2c = *(undefined4 **)PTR___stack_chk_guard_0003c314;\n  pppppppiVar22 = (int *******)((int)param_3 * 8);\n  pppppppiVar23 = (int *******)(param_6 + (int)param_1[0x1e]);\n  local_4c = 0;\n  pppppppiVar3 = (int *******)(*pppppppiVar12)[(int)param_3 * 2];\n  pppppppiVar7 = param_4;\n  if ((int)pppppppiVar23 < (int)pppppppiVar30) {\nLAB_000205e8:\n    puVar2 = PTR_LAB_0003c1e8;\n    ppppppiVar13 = param_1[0x19];\n    pppppppiVar23 = (int *******)param_1[0x16];\n    pppppppiVar28 = (int *******)*param_2;\n    ppppppiVar32 = param_2[2];\n    ppppppiVar14 = param_1[10];\n    if (pppppppiVar28 == (int *******)0x0) {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)param_4 + -1);\n      param_1[10] = (int ******)param_4;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\nLAB_00020b7c:\n      local_48[1] = 1;\n      local_48[2] = 1;\n      local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4);\n      if (local_3c == (undefined4 *)0x0) goto LAB_00020c64;\n      pppppppiVar22 = (int *******)(local_48 + 1);\n      *local_3c = param_3;\n      local_4c = 0;\n      pppppppiVar23 = pppppppiVar3;\n      pppppppiVar7 = param_7;\n      local_4c = FUN_0001afe8(pppppppiVar12);\n      pppppppiVar28 = param_4;\n      if (local_4c == 0) {\nLAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);\n        if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }\n        pppppppiVar22 = pppppppiVar12;\n        pppppppiVar7 = pppppppiVar30;\n        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n        pppppppiVar23 = pppppppiVar25;\n        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }\n      }\nLAB_00020920:\n      (*(code *)PTR_free_0003c320)(local_3c);\n      uVar10 = local_4c;\n    }\n    else {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);\n      param_1[10] = (int ******)pppppppiVar28;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\n      if (pppppppiVar28 == param_4) goto LAB_00020b7c;\n      ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;\n      unaff_s7 = (int ******)*ppppppiVar32;\n      pppppppiVar25 = pppppppiVar28;\n      if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }\n      else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }\n  }\n  else {\n    pppppppiVar28 = (int *******)((int)pppppppiVar23 + 1);\n    ppppppiVar32 = (int ******)((int)pppppppiVar30 + (int)pppppppiVar28);\n    if (((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&\n       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)) {\n      pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);\n      ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);\n      puVar2 = PTR_memset_0003c290;\n      if (ppppppiVar13 != (int ******)0x0) {\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }\n    }\nLAB_00020c64:\n    uVar10 = 0xc;\n  }\n  if (local_2c == *(undefined4 **)puVar35) {\n    return uVar10;\n  }\n  pcVar15 = FUN_00020ca0;\n  puVar21 = local_2c;\n  puVar35 = PTR___stack_chk_fail_0003c2f4;\n  (*(code *)PTR___stack_chk_fail_0003c2f4)();\n  appppppiStack_138[0] = (int ******)(puVar35 + 0x23430);\n  puVar37 = auStack_150;\n  puVar38 = auStack_150;\n  piStack_12c = *(int **)(puVar35 + 0x1b674);\n  uStack_ec = 2;\n  piStack_f0 = (int *)0x0;\n  iStack_e8 = 0;\n  iStack_e4 = *piStack_12c;\n  piVar34 = (int *)*puVar21;\n  pppppppiVar3 = pppppppiVar22;\n  pppppppiVar12 = pppppppiVar23;\n  pppppppiVar25 = pppppppiVar7;\n  pppppppiStack_e0 = pppppppiVar28;\n  pppppppiStack_dc = param_4;\n  pppppppiStack_d8 = pppppppiVar30;\n  pppppppiStack_d4 = param_3;\n  ppppppiStack_d0 = ppppppiVar32;\n  pppppppiStack_cc = unaff_s5;\n  pppppppiStack_c8 = param_1;\n  ppppppiStack_c4 = unaff_s7;\n  pppppppiStack_c0 = unaff_s8;\n  pcStack_bc = pcVar15;\n  if ((char)local_a8 == '\0') {\n    pppppppiVar28 = (int *******)piVar34[0x12];\n    ppiVar33 = (int **)0x0;\n    if ((uint)((int)pppppppiVar23 << 3) < 0xfc0) goto LAB_00020d5c;\nLAB_00021488:\n    pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n    ppppppiStack_f4 = (int ******)0x0;\n    uStack_f8 = 0;\n    ppppppiStack_fc = (int ******)0x0;\n    param_3 = &ppppppiStack_fc;\n    pppppppiStack_124 = (int *******)(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c);\n    iStack_128 = 1;\n    if (pppppppiStack_124 != (int *******)0x0) goto LAB_00020d6c;\n    puVar37 = auStack_150;\n    if (ppiVar33 == (int **)0x0) {\n      uVar10 = 0xc;\n      goto LAB_00020f18;\n    }\nLAB_0002112c:\n    param_3 = &ppppppiStack_fc;\n    FUN_0001ec78(ppiVar33);\n    puVar39 = puVar37;\n  }\n  else {\n    ppiVar33 = &piStack_f0;\n    iStack_e8 = (**(code **)(puVar35 + 0x1b614))(0x30);\n    puVar39 = auStack_150;\n    if (iStack_e8 != 0) {\n      pppppppiVar28 = (int *******)piVar34[0x12];\n      if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n      ppppppiStack_f4 = (int ******)0x0;\n      uStack_f8 = 0;\n      ppppppiStack_fc = (int ******)0x0;\n      puVar37 = auStack_150 + (int)pppppppiVar23 * -8;\n      iStack_128 = 0;\n      pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;\nLAB_00020d6c:\n      param_3 = &ppppppiStack_fc;\n      pppppppiVar3 = pppppppiVar7;\n      pppppppiVar12 = pppppppiStack_11c;\n      (*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);\n      pppppppiStack_100 = (int *******)*pppppppiVar7;\n      ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);\n      ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);\n      ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);\nLAB_00020db0:\n      pppppppiVar29 = (int *******)pppppppiVar7[1];\n      ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n      ppppppiVar32 = appppppiStack_138[0];\n      puVar38 = puVar37;\n      if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }\n      pppppppiVar25 = pppppppiStack_100;\n      (*(code *)ppppiVar19)(ppppppiStack_f4);\n      if (iStack_128 == 0) {\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }\n      else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      FUN_0001ec78(ppiVar33);\nLAB_00020f14:\n      uVar10 = 0;\n      goto LAB_00020f18;\n    }\n  }\n  uVar10 = 0xc;\n  puVar38 = puVar39;\nLAB_00020f18:\n  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f77];\n  if (iStack_e4 == *piStack_12c) {\n    return uVar10;\n  }\n  pcVar15 = FUN_00021550;\n  iVar6 = iStack_e4;\n  (*(code *)ppppiVar19)();\n  *(int ********)(puVar38 + -0x18) = pppppppiVar30;\n  *(int ********)(puVar38 + -0x14) = param_3;\n  *(int ********)(puVar38 + -0x1c) = pppppppiVar7;\n  *(int ********)(puVar38 + -0x10) = pppppppiVar23;\n  *(int *****)(puVar38 + -0x28) = ppppiVar19 + 0x8ae0;\n  *(int ********)(puVar38 + -0x20) = pppppppiVar22;\n  *(code **)(puVar38 + -4) = pcVar15;\n  *(int **)(puVar38 + -8) = piVar34;\n  *(int ***)(puVar38 + -0xc) = ppiVar33;\n  iVar31 = *(int *)(puVar38 + 0x10);\n  *(undefined4 *)(puVar38 + -0x30) = 8;\n  *(int *)(puVar38 + -0x34) = iVar31;\n  *(int ********)(puVar38 + -0x38) = pppppppiVar25;\n  uVar10 = FUN_00020550();\n  if (uVar10 != 0) {\n    return uVar10;\n  }\n  iVar11 = *(int *)(iVar6 + 0x6c);\n  ppppppiVar14 = *pppppppiVar3;\n  ppppppiVar13 = pppppppiVar12[1];\n  iVar20 = *(int *)(iVar6 + 0x74);\n  ppppppiVar32 = ppppppiVar13;\n  if (*(int *)(iVar6 + 0x70) <= iVar11) {\n    iVar11 = (**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))\n                       (iVar20,*(int *)(iVar6 + 0x70) * 0x28);\n    if (iVar11 == 0) {\n      (**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74));\n      return 0xc;\n    }\n    pcVar15 = *(code **)(*(int *)(puVar38 + -0x28) + -0x7e40);\n    *(int *)(iVar6 + 0x74) = iVar11;\n    (*pcVar15)(iVar11 + *(int *)(iVar6 + 0x6c) * 0x14,0,*(int *)(iVar6 + 0x70) * 0x14);\n    ppppppiVar32 = pppppppiVar12[1];\n    iVar11 = *(int *)(iVar6 + 0x6c);\n    iVar20 = *(int *)(iVar6 + 0x74);\n    *(int *)(iVar6 + 0x70) = *(int *)(iVar6 + 0x70) << 1;\n  }\n  if ((0 < iVar11) && (iVar24 = iVar20 + iVar11 * 0x14 + -0x14, iVar31 == *(int *)(iVar24 + 4))) {\n    *(undefined1 *)(iVar24 + 0x10) = 1;\n  }\n  puVar21 = (undefined4 *)(iVar20 + iVar11 * 0x14);\n  *puVar21 = pppppppiVar25;\n  puVar21[1] = iVar31;\n  puVar21[2] = ppppppiVar14;\n  puVar21[3] = ppppppiVar13;\n  *(ushort *)((int)puVar21 + 0x12) = -(ushort)(ppppppiVar14 == ppppppiVar13);\n  *(int *)(iVar6 + 0x6c) = iVar11 + 1;\n  *(undefined1 *)(puVar21 + 4) = 0;\n  if (*(int *)(iVar6 + 0x78) < (int)ppppppiVar13 - (int)ppppppiVar14) {\n    *(int *)(iVar6 + 0x78) = (int)ppppppiVar13 - (int)ppppppiVar14;\n  }\n  uVar10 = FUN_00019470(iVar6,(int)ppppppiVar32 + (iVar31 - (int)*pppppppiVar3));\n  return uVar10;\nLAB_00020f60:\n  ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n  pppppppiVar25 = pppppppiStack_100;\n  if (pppppppiVar28 == (int *******)&SUB_fffffffe) {\nLAB_000213b0:\n    (*(code *)ppppiVar19)(ppppppiStack_f4);\n    if (iStack_128 != 0) {\nLAB_000214d4:\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n    }\n    if (ppiVar33 != (int **)0x0) goto LAB_0002112c;\n    uVar10 = 0xc;\n    goto LAB_00020f18;\n  }\nLAB_00020f6c:\n  pppppppiVar27 = pppppppiVar30;\n  if (ppiVar33 == (int **)0x0) {\n    (*(code *)((int *****)ppppppiVar32)[-0x1f6c])(ppppppiStack_f4);\n    if (iStack_128 == 0) {\n      uVar10 = 1;\n    }\n    else {\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n      uVar10 = 1;\n    }\n    goto LAB_00020f18;\n  }\nLAB_00020f7c:\n  ppppiVar19 = ppppiStack_120;\n  pppppppiVar12 = (int *******)&pppppppiStack_100;\n  pppppppiVar3 = (int *******)(ppiVar33 + 2);\n  *(int ********)(puVar37 + 0x14) = param_3;\n  *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n  pppppppiVar28 =\n       (int *******)(*(code *)ppppiVar19)(ppiVar33,pppppppiVar3,pppppppiVar12,pppppppiVar23);\n  pppppppiVar30 = pppppppiVar27;\n  goto LAB_00020db0;\n}" type_identifier (function_declarator "FUN_00020550(int *******param_1,int *******param_2,int *******param_3,int *******param_4,\n                 int *******param_5,int param_6,int *******param_7)" identifier (parameter_list "(int *******param_1,int *******param_2,int *******param_3,int *******param_4,\n                 int *******param_5,int param_6,int *******param_7)" ( (parameter_declaration "int *******param_1" primitive_type (pointer_declarator "*******param_1" * (pointer_declarator "******param_1" * (pointer_declarator "*****param_1" * (pointer_declarator "****param_1" * (pointer_declarator "***param_1" * (pointer_declarator "**param_1" * (pointer_declarator "*param_1" * identifier)))))))) , (parameter_declaration "int *******param_2" primitive_type (pointer_declarator "*******param_2" * (pointer_declarator "******param_2" * (pointer_declarator "*****param_2" * (pointer_declarator "****param_2" * (pointer_declarator "***param_2" * (pointer_declarator "**param_2" * (pointer_declarator "*param_2" * identifier)))))))) , (parameter_declaration "int *******param_3" primitive_type (pointer_declarator "*******param_3" * (pointer_declarator "******param_3" * (pointer_declarator "*****param_3" * (pointer_declarator "****param_3" * (pointer_declarator "***param_3" * (pointer_declarator "**param_3" * (pointer_declarator "*param_3" * identifier)))))))) , (parameter_declaration "int *******param_4" primitive_type (pointer_declarator "*******param_4" * (pointer_declarator "******param_4" * (pointer_declarator "*****param_4" * (pointer_declarator "****param_4" * (pointer_declarator "***param_4" * (pointer_declarator "**param_4" * (pointer_declarator "*param_4" * identifier)))))))) , (parameter_declaration "int *******param_5" primitive_type (pointer_declarator "*******param_5" * (pointer_declarator "******param_5" * (pointer_declarator "*****param_5" * (pointer_declarator "****param_5" * (pointer_declarator "***param_5" * (pointer_declarator "**param_5" * (pointer_declarator "*param_5" * identifier)))))))) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int *******param_7" primitive_type (pointer_declarator "*******param_7" * (pointer_declarator "******param_7" * (pointer_declarator "*****param_7" * (pointer_declarator "****param_7" * (pointer_declarator "***param_7" * (pointer_declarator "**param_7" * (pointer_declarator "*param_7" * identifier)))))))) ))) (compound_statement "{\n  uint *puVar1;\n  undefined *puVar2;\n  int *******pppppppiVar3;\n  int ******ppppppiVar4;\n  code *pcVar5;\n  int iVar6;\n  int *******pppppppiVar7;\n  int *****pppppiVar8;\n  int *piVar9;\n  uint uVar10;\n  int iVar11;\n  int *******pppppppiVar12;\n  int ******ppppppiVar13;\n  int ******ppppppiVar14;\n  code *pcVar15;\n  code *pcVar16;\n  code *pcVar17;\n  int ******ppppppiVar18;\n  int ****ppppiVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  int *******pppppppiVar22;\n  int *******pppppppiVar23;\n  int iVar24;\n  int *******pppppppiVar25;\n  int *******pppppppiVar26;\n  int *******pppppppiVar27;\n  int *******pppppppiVar28;\n  int *******pppppppiVar29;\n  int *******pppppppiVar30;\n  int iVar31;\n  int ******ppppppiVar32;\n  int *******unaff_s5;\n  int **ppiVar33;\n  int *piVar34;\n  int ******unaff_s7;\n  undefined *puVar35;\n  int ****ppppiVar36;\n  undefined1 *puVar37;\n  undefined1 *puVar38;\n  undefined1 *puVar39;\n  int *******unaff_s8;\n  undefined1 auStack_150 [24];\n  int ******appppppiStack_138 [2];\n  int *******pppppppiStack_130;\n  int *piStack_12c;\n  int iStack_128;\n  int *******pppppppiStack_124;\n  int ****ppppiStack_120;\n  int *******pppppppiStack_11c;\n  int ****ppppiStack_118;\n  int ****ppppiStack_114;\n  int ****ppppiStack_110;\n  int *******pppppppiStack_10c;\n  int *******pppppppiStack_108;\n  int ****ppppiStack_104;\n  int *******pppppppiStack_100;\n  int ******ppppppiStack_fc;\n  undefined4 uStack_f8;\n  int ******ppppppiStack_f4;\n  int *piStack_f0;\n  undefined4 uStack_ec;\n  int iStack_e8;\n  int iStack_e4;\n  int *******pppppppiStack_e0;\n  int *******pppppppiStack_dc;\n  int *******pppppppiStack_d8;\n  int *******pppppppiStack_d4;\n  int ******ppppppiStack_d0;\n  int *******pppppppiStack_cc;\n  int *******pppppppiStack_c8;\n  int ******ppppppiStack_c4;\n  int *******pppppppiStack_c0;\n  code *pcStack_bc;\n  undefined4 local_a8;\n  int local_8c;\n  code *local_6c;\n  uint local_4c;\n  uint local_48 [3];\n  undefined4 *local_3c;\n  int ******local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 *local_2c;\n  \n  puVar35 = PTR___stack_chk_guard_0003c314;\n  pppppppiVar12 = (int *******)param_1[0x15];\n  pppppppiVar30 = (int *******)param_2[1];\n  local_2c = *(undefined4 **)PTR___stack_chk_guard_0003c314;\n  pppppppiVar22 = (int *******)((int)param_3 * 8);\n  pppppppiVar23 = (int *******)(param_6 + (int)param_1[0x1e]);\n  local_4c = 0;\n  pppppppiVar3 = (int *******)(*pppppppiVar12)[(int)param_3 * 2];\n  pppppppiVar7 = param_4;\n  if ((int)pppppppiVar23 < (int)pppppppiVar30) {\nLAB_000205e8:\n    puVar2 = PTR_LAB_0003c1e8;\n    ppppppiVar13 = param_1[0x19];\n    pppppppiVar23 = (int *******)param_1[0x16];\n    pppppppiVar28 = (int *******)*param_2;\n    ppppppiVar32 = param_2[2];\n    ppppppiVar14 = param_1[10];\n    if (pppppppiVar28 == (int *******)0x0) {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)param_4 + -1);\n      param_1[10] = (int ******)param_4;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\nLAB_00020b7c:\n      local_48[1] = 1;\n      local_48[2] = 1;\n      local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4);\n      if (local_3c == (undefined4 *)0x0) goto LAB_00020c64;\n      pppppppiVar22 = (int *******)(local_48 + 1);\n      *local_3c = param_3;\n      local_4c = 0;\n      pppppppiVar23 = pppppppiVar3;\n      pppppppiVar7 = param_7;\n      local_4c = FUN_0001afe8(pppppppiVar12);\n      pppppppiVar28 = param_4;\n      if (local_4c == 0) {\nLAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);\n        if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }\n        pppppppiVar22 = pppppppiVar12;\n        pppppppiVar7 = pppppppiVar30;\n        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n        pppppppiVar23 = pppppppiVar25;\n        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }\n      }\nLAB_00020920:\n      (*(code *)PTR_free_0003c320)(local_3c);\n      uVar10 = local_4c;\n    }\n    else {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);\n      param_1[10] = (int ******)pppppppiVar28;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\n      if (pppppppiVar28 == param_4) goto LAB_00020b7c;\n      ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;\n      unaff_s7 = (int ******)*ppppppiVar32;\n      pppppppiVar25 = pppppppiVar28;\n      if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }\n      else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }\n  }\n  else {\n    pppppppiVar28 = (int *******)((int)pppppppiVar23 + 1);\n    ppppppiVar32 = (int ******)((int)pppppppiVar30 + (int)pppppppiVar28);\n    if (((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&\n       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)) {\n      pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);\n      ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);\n      puVar2 = PTR_memset_0003c290;\n      if (ppppppiVar13 != (int ******)0x0) {\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }\n    }\nLAB_00020c64:\n    uVar10 = 0xc;\n  }\n  if (local_2c == *(undefined4 **)puVar35) {\n    return uVar10;\n  }\n  pcVar15 = FUN_00020ca0;\n  puVar21 = local_2c;\n  puVar35 = PTR___stack_chk_fail_0003c2f4;\n  (*(code *)PTR___stack_chk_fail_0003c2f4)();\n  appppppiStack_138[0] = (int ******)(puVar35 + 0x23430);\n  puVar37 = auStack_150;\n  puVar38 = auStack_150;\n  piStack_12c = *(int **)(puVar35 + 0x1b674);\n  uStack_ec = 2;\n  piStack_f0 = (int *)0x0;\n  iStack_e8 = 0;\n  iStack_e4 = *piStack_12c;\n  piVar34 = (int *)*puVar21;\n  pppppppiVar3 = pppppppiVar22;\n  pppppppiVar12 = pppppppiVar23;\n  pppppppiVar25 = pppppppiVar7;\n  pppppppiStack_e0 = pppppppiVar28;\n  pppppppiStack_dc = param_4;\n  pppppppiStack_d8 = pppppppiVar30;\n  pppppppiStack_d4 = param_3;\n  ppppppiStack_d0 = ppppppiVar32;\n  pppppppiStack_cc = unaff_s5;\n  pppppppiStack_c8 = param_1;\n  ppppppiStack_c4 = unaff_s7;\n  pppppppiStack_c0 = unaff_s8;\n  pcStack_bc = pcVar15;\n  if ((char)local_a8 == '\0') {\n    pppppppiVar28 = (int *******)piVar34[0x12];\n    ppiVar33 = (int **)0x0;\n    if ((uint)((int)pppppppiVar23 << 3) < 0xfc0) goto LAB_00020d5c;\nLAB_00021488:\n    pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n    ppppppiStack_f4 = (int ******)0x0;\n    uStack_f8 = 0;\n    ppppppiStack_fc = (int ******)0x0;\n    param_3 = &ppppppiStack_fc;\n    pppppppiStack_124 = (int *******)(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c);\n    iStack_128 = 1;\n    if (pppppppiStack_124 != (int *******)0x0) goto LAB_00020d6c;\n    puVar37 = auStack_150;\n    if (ppiVar33 == (int **)0x0) {\n      uVar10 = 0xc;\n      goto LAB_00020f18;\n    }\nLAB_0002112c:\n    param_3 = &ppppppiStack_fc;\n    FUN_0001ec78(ppiVar33);\n    puVar39 = puVar37;\n  }\n  else {\n    ppiVar33 = &piStack_f0;\n    iStack_e8 = (**(code **)(puVar35 + 0x1b614))(0x30);\n    puVar39 = auStack_150;\n    if (iStack_e8 != 0) {\n      pppppppiVar28 = (int *******)piVar34[0x12];\n      if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n      ppppppiStack_f4 = (int ******)0x0;\n      uStack_f8 = 0;\n      ppppppiStack_fc = (int ******)0x0;\n      puVar37 = auStack_150 + (int)pppppppiVar23 * -8;\n      iStack_128 = 0;\n      pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;\nLAB_00020d6c:\n      param_3 = &ppppppiStack_fc;\n      pppppppiVar3 = pppppppiVar7;\n      pppppppiVar12 = pppppppiStack_11c;\n      (*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);\n      pppppppiStack_100 = (int *******)*pppppppiVar7;\n      ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);\n      ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);\n      ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);\nLAB_00020db0:\n      pppppppiVar29 = (int *******)pppppppiVar7[1];\n      ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n      ppppppiVar32 = appppppiStack_138[0];\n      puVar38 = puVar37;\n      if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }\n      pppppppiVar25 = pppppppiStack_100;\n      (*(code *)ppppiVar19)(ppppppiStack_f4);\n      if (iStack_128 == 0) {\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }\n      else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      FUN_0001ec78(ppiVar33);\nLAB_00020f14:\n      uVar10 = 0;\n      goto LAB_00020f18;\n    }\n  }\n  uVar10 = 0xc;\n  puVar38 = puVar39;\nLAB_00020f18:\n  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f77];\n  if (iStack_e4 == *piStack_12c) {\n    return uVar10;\n  }\n  pcVar15 = FUN_00021550;\n  iVar6 = iStack_e4;\n  (*(code *)ppppiVar19)();\n  *(int ********)(puVar38 + -0x18) = pppppppiVar30;\n  *(int ********)(puVar38 + -0x14) = param_3;\n  *(int ********)(puVar38 + -0x1c) = pppppppiVar7;\n  *(int ********)(puVar38 + -0x10) = pppppppiVar23;\n  *(int *****)(puVar38 + -0x28) = ppppiVar19 + 0x8ae0;\n  *(int ********)(puVar38 + -0x20) = pppppppiVar22;\n  *(code **)(puVar38 + -4) = pcVar15;\n  *(int **)(puVar38 + -8) = piVar34;\n  *(int ***)(puVar38 + -0xc) = ppiVar33;\n  iVar31 = *(int *)(puVar38 + 0x10);\n  *(undefined4 *)(puVar38 + -0x30) = 8;\n  *(int *)(puVar38 + -0x34) = iVar31;\n  *(int ********)(puVar38 + -0x38) = pppppppiVar25;\n  uVar10 = FUN_00020550();\n  if (uVar10 != 0) {\n    return uVar10;\n  }\n  iVar11 = *(int *)(iVar6 + 0x6c);\n  ppppppiVar14 = *pppppppiVar3;\n  ppppppiVar13 = pppppppiVar12[1];\n  iVar20 = *(int *)(iVar6 + 0x74);\n  ppppppiVar32 = ppppppiVar13;\n  if (*(int *)(iVar6 + 0x70) <= iVar11) {\n    iVar11 = (**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))\n                       (iVar20,*(int *)(iVar6 + 0x70) * 0x28);\n    if (iVar11 == 0) {\n      (**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74));\n      return 0xc;\n    }\n    pcVar15 = *(code **)(*(int *)(puVar38 + -0x28) + -0x7e40);\n    *(int *)(iVar6 + 0x74) = iVar11;\n    (*pcVar15)(iVar11 + *(int *)(iVar6 + 0x6c) * 0x14,0,*(int *)(iVar6 + 0x70) * 0x14);\n    ppppppiVar32 = pppppppiVar12[1];\n    iVar11 = *(int *)(iVar6 + 0x6c);\n    iVar20 = *(int *)(iVar6 + 0x74);\n    *(int *)(iVar6 + 0x70) = *(int *)(iVar6 + 0x70) << 1;\n  }\n  if ((0 < iVar11) && (iVar24 = iVar20 + iVar11 * 0x14 + -0x14, iVar31 == *(int *)(iVar24 + 4))) {\n    *(undefined1 *)(iVar24 + 0x10) = 1;\n  }\n  puVar21 = (undefined4 *)(iVar20 + iVar11 * 0x14);\n  *puVar21 = pppppppiVar25;\n  puVar21[1] = iVar31;\n  puVar21[2] = ppppppiVar14;\n  puVar21[3] = ppppppiVar13;\n  *(ushort *)((int)puVar21 + 0x12) = -(ushort)(ppppppiVar14 == ppppppiVar13);\n  *(int *)(iVar6 + 0x6c) = iVar11 + 1;\n  *(undefined1 *)(puVar21 + 4) = 0;\n  if (*(int *)(iVar6 + 0x78) < (int)ppppppiVar13 - (int)ppppppiVar14) {\n    *(int *)(iVar6 + 0x78) = (int)ppppppiVar13 - (int)ppppppiVar14;\n  }\n  uVar10 = FUN_00019470(iVar6,(int)ppppppiVar32 + (iVar31 - (int)*pppppppiVar3));\n  return uVar10;\nLAB_00020f60:\n  ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n  pppppppiVar25 = pppppppiStack_100;\n  if (pppppppiVar28 == (int *******)&SUB_fffffffe) {\nLAB_000213b0:\n    (*(code *)ppppiVar19)(ppppppiStack_f4);\n    if (iStack_128 != 0) {\nLAB_000214d4:\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n    }\n    if (ppiVar33 != (int **)0x0) goto LAB_0002112c;\n    uVar10 = 0xc;\n    goto LAB_00020f18;\n  }\nLAB_00020f6c:\n  pppppppiVar27 = pppppppiVar30;\n  if (ppiVar33 == (int **)0x0) {\n    (*(code *)((int *****)ppppppiVar32)[-0x1f6c])(ppppppiStack_f4);\n    if (iStack_128 == 0) {\n      uVar10 = 1;\n    }\n    else {\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n      uVar10 = 1;\n    }\n    goto LAB_00020f18;\n  }\nLAB_00020f7c:\n  ppppiVar19 = ppppiStack_120;\n  pppppppiVar12 = (int *******)&pppppppiStack_100;\n  pppppppiVar3 = (int *******)(ppiVar33 + 2);\n  *(int ********)(puVar37 + 0x14) = param_3;\n  *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n  pppppppiVar28 =\n       (int *******)(*(code *)ppppiVar19)(ppiVar33,pppppppiVar3,pppppppiVar12,pppppppiVar23);\n  pppppppiVar30 = pppppppiVar27;\n  goto LAB_00020db0;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *******pppppppiVar3;" primitive_type (pointer_declarator "*******pppppppiVar3" * (pointer_declarator "******pppppppiVar3" * (pointer_declarator "*****pppppppiVar3" * (pointer_declarator "****pppppppiVar3" * (pointer_declarator "***pppppppiVar3" * (pointer_declarator "**pppppppiVar3" * (pointer_declarator "*pppppppiVar3" * identifier))))))) ;) (declaration "int ******ppppppiVar4;" primitive_type (pointer_declarator "******ppppppiVar4" * (pointer_declarator "*****ppppppiVar4" * (pointer_declarator "****ppppppiVar4" * (pointer_declarator "***ppppppiVar4" * (pointer_declarator "**ppppppiVar4" * (pointer_declarator "*ppppppiVar4" * identifier)))))) ;) (declaration "code *pcVar5;" type_identifier (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *******pppppppiVar7;" primitive_type (pointer_declarator "*******pppppppiVar7" * (pointer_declarator "******pppppppiVar7" * (pointer_declarator "*****pppppppiVar7" * (pointer_declarator "****pppppppiVar7" * (pointer_declarator "***pppppppiVar7" * (pointer_declarator "**pppppppiVar7" * (pointer_declarator "*pppppppiVar7" * identifier))))))) ;) (declaration "int *****pppppiVar8;" primitive_type (pointer_declarator "*****pppppiVar8" * (pointer_declarator "****pppppiVar8" * (pointer_declarator "***pppppiVar8" * (pointer_declarator "**pppppiVar8" * (pointer_declarator "*pppppiVar8" * identifier))))) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int *******pppppppiVar12;" primitive_type (pointer_declarator "*******pppppppiVar12" * (pointer_declarator "******pppppppiVar12" * (pointer_declarator "*****pppppppiVar12" * (pointer_declarator "****pppppppiVar12" * (pointer_declarator "***pppppppiVar12" * (pointer_declarator "**pppppppiVar12" * (pointer_declarator "*pppppppiVar12" * identifier))))))) ;) (declaration "int ******ppppppiVar13;" primitive_type (pointer_declarator "******ppppppiVar13" * (pointer_declarator "*****ppppppiVar13" * (pointer_declarator "****ppppppiVar13" * (pointer_declarator "***ppppppiVar13" * (pointer_declarator "**ppppppiVar13" * (pointer_declarator "*ppppppiVar13" * identifier)))))) ;) (declaration "int ******ppppppiVar14;" primitive_type (pointer_declarator "******ppppppiVar14" * (pointer_declarator "*****ppppppiVar14" * (pointer_declarator "****ppppppiVar14" * (pointer_declarator "***ppppppiVar14" * (pointer_declarator "**ppppppiVar14" * (pointer_declarator "*ppppppiVar14" * identifier)))))) ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "code *pcVar17;" type_identifier (pointer_declarator "*pcVar17" * identifier) ;) (declaration "int ******ppppppiVar18;" primitive_type (pointer_declarator "******ppppppiVar18" * (pointer_declarator "*****ppppppiVar18" * (pointer_declarator "****ppppppiVar18" * (pointer_declarator "***ppppppiVar18" * (pointer_declarator "**ppppppiVar18" * (pointer_declarator "*ppppppiVar18" * identifier)))))) ;) (declaration "int ****ppppiVar19;" primitive_type (pointer_declarator "****ppppiVar19" * (pointer_declarator "***ppppiVar19" * (pointer_declarator "**ppppiVar19" * (pointer_declarator "*ppppiVar19" * identifier)))) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "undefined4 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "int *******pppppppiVar22;" primitive_type (pointer_declarator "*******pppppppiVar22" * (pointer_declarator "******pppppppiVar22" * (pointer_declarator "*****pppppppiVar22" * (pointer_declarator "****pppppppiVar22" * (pointer_declarator "***pppppppiVar22" * (pointer_declarator "**pppppppiVar22" * (pointer_declarator "*pppppppiVar22" * identifier))))))) ;) (declaration "int *******pppppppiVar23;" primitive_type (pointer_declarator "*******pppppppiVar23" * (pointer_declarator "******pppppppiVar23" * (pointer_declarator "*****pppppppiVar23" * (pointer_declarator "****pppppppiVar23" * (pointer_declarator "***pppppppiVar23" * (pointer_declarator "**pppppppiVar23" * (pointer_declarator "*pppppppiVar23" * identifier))))))) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "int *******pppppppiVar25;" primitive_type (pointer_declarator "*******pppppppiVar25" * (pointer_declarator "******pppppppiVar25" * (pointer_declarator "*****pppppppiVar25" * (pointer_declarator "****pppppppiVar25" * (pointer_declarator "***pppppppiVar25" * (pointer_declarator "**pppppppiVar25" * (pointer_declarator "*pppppppiVar25" * identifier))))))) ;) (declaration "int *******pppppppiVar26;" primitive_type (pointer_declarator "*******pppppppiVar26" * (pointer_declarator "******pppppppiVar26" * (pointer_declarator "*****pppppppiVar26" * (pointer_declarator "****pppppppiVar26" * (pointer_declarator "***pppppppiVar26" * (pointer_declarator "**pppppppiVar26" * (pointer_declarator "*pppppppiVar26" * identifier))))))) ;) (declaration "int *******pppppppiVar27;" primitive_type (pointer_declarator "*******pppppppiVar27" * (pointer_declarator "******pppppppiVar27" * (pointer_declarator "*****pppppppiVar27" * (pointer_declarator "****pppppppiVar27" * (pointer_declarator "***pppppppiVar27" * (pointer_declarator "**pppppppiVar27" * (pointer_declarator "*pppppppiVar27" * identifier))))))) ;) (declaration "int *******pppppppiVar28;" primitive_type (pointer_declarator "*******pppppppiVar28" * (pointer_declarator "******pppppppiVar28" * (pointer_declarator "*****pppppppiVar28" * (pointer_declarator "****pppppppiVar28" * (pointer_declarator "***pppppppiVar28" * (pointer_declarator "**pppppppiVar28" * (pointer_declarator "*pppppppiVar28" * identifier))))))) ;) (declaration "int *******pppppppiVar29;" primitive_type (pointer_declarator "*******pppppppiVar29" * (pointer_declarator "******pppppppiVar29" * (pointer_declarator "*****pppppppiVar29" * (pointer_declarator "****pppppppiVar29" * (pointer_declarator "***pppppppiVar29" * (pointer_declarator "**pppppppiVar29" * (pointer_declarator "*pppppppiVar29" * identifier))))))) ;) (declaration "int *******pppppppiVar30;" primitive_type (pointer_declarator "*******pppppppiVar30" * (pointer_declarator "******pppppppiVar30" * (pointer_declarator "*****pppppppiVar30" * (pointer_declarator "****pppppppiVar30" * (pointer_declarator "***pppppppiVar30" * (pointer_declarator "**pppppppiVar30" * (pointer_declarator "*pppppppiVar30" * identifier))))))) ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "int ******ppppppiVar32;" primitive_type (pointer_declarator "******ppppppiVar32" * (pointer_declarator "*****ppppppiVar32" * (pointer_declarator "****ppppppiVar32" * (pointer_declarator "***ppppppiVar32" * (pointer_declarator "**ppppppiVar32" * (pointer_declarator "*ppppppiVar32" * identifier)))))) ;) (declaration "int *******unaff_s5;" primitive_type (pointer_declarator "*******unaff_s5" * (pointer_declarator "******unaff_s5" * (pointer_declarator "*****unaff_s5" * (pointer_declarator "****unaff_s5" * (pointer_declarator "***unaff_s5" * (pointer_declarator "**unaff_s5" * (pointer_declarator "*unaff_s5" * identifier))))))) ;) (declaration "int **ppiVar33;" primitive_type (pointer_declarator "**ppiVar33" * (pointer_declarator "*ppiVar33" * identifier)) ;) (declaration "int *piVar34;" primitive_type (pointer_declarator "*piVar34" * identifier) ;) (declaration "int ******unaff_s7;" primitive_type (pointer_declarator "******unaff_s7" * (pointer_declarator "*****unaff_s7" * (pointer_declarator "****unaff_s7" * (pointer_declarator "***unaff_s7" * (pointer_declarator "**unaff_s7" * (pointer_declarator "*unaff_s7" * identifier)))))) ;) (declaration "undefined *puVar35;" type_identifier (pointer_declarator "*puVar35" * identifier) ;) (declaration "int ****ppppiVar36;" primitive_type (pointer_declarator "****ppppiVar36" * (pointer_declarator "***ppppiVar36" * (pointer_declarator "**ppppiVar36" * (pointer_declarator "*ppppiVar36" * identifier)))) ;) (declaration "undefined1 *puVar37;" type_identifier (pointer_declarator "*puVar37" * identifier) ;) (declaration "undefined1 *puVar38;" type_identifier (pointer_declarator "*puVar38" * identifier) ;) (declaration "undefined1 *puVar39;" type_identifier (pointer_declarator "*puVar39" * identifier) ;) (declaration "int *******unaff_s8;" primitive_type (pointer_declarator "*******unaff_s8" * (pointer_declarator "******unaff_s8" * (pointer_declarator "*****unaff_s8" * (pointer_declarator "****unaff_s8" * (pointer_declarator "***unaff_s8" * (pointer_declarator "**unaff_s8" * (pointer_declarator "*unaff_s8" * identifier))))))) ;) (declaration "undefined1 auStack_150 [24];" type_identifier (array_declarator "auStack_150 [24]" identifier [ number_literal ]) ;) (declaration "int ******appppppiStack_138 [2];" primitive_type (pointer_declarator "******appppppiStack_138 [2]" * (pointer_declarator "*****appppppiStack_138 [2]" * (pointer_declarator "****appppppiStack_138 [2]" * (pointer_declarator "***appppppiStack_138 [2]" * (pointer_declarator "**appppppiStack_138 [2]" * (pointer_declarator "*appppppiStack_138 [2]" * (array_declarator "appppppiStack_138 [2]" identifier [ number_literal ]))))))) ;) (declaration "int *******pppppppiStack_130;" primitive_type (pointer_declarator "*******pppppppiStack_130" * (pointer_declarator "******pppppppiStack_130" * (pointer_declarator "*****pppppppiStack_130" * (pointer_declarator "****pppppppiStack_130" * (pointer_declarator "***pppppppiStack_130" * (pointer_declarator "**pppppppiStack_130" * (pointer_declarator "*pppppppiStack_130" * identifier))))))) ;) (declaration "int *piStack_12c;" primitive_type (pointer_declarator "*piStack_12c" * identifier) ;) (declaration "int iStack_128;" primitive_type identifier ;) (declaration "int *******pppppppiStack_124;" primitive_type (pointer_declarator "*******pppppppiStack_124" * (pointer_declarator "******pppppppiStack_124" * (pointer_declarator "*****pppppppiStack_124" * (pointer_declarator "****pppppppiStack_124" * (pointer_declarator "***pppppppiStack_124" * (pointer_declarator "**pppppppiStack_124" * (pointer_declarator "*pppppppiStack_124" * identifier))))))) ;) (declaration "int ****ppppiStack_120;" primitive_type (pointer_declarator "****ppppiStack_120" * (pointer_declarator "***ppppiStack_120" * (pointer_declarator "**ppppiStack_120" * (pointer_declarator "*ppppiStack_120" * identifier)))) ;) (declaration "int *******pppppppiStack_11c;" primitive_type (pointer_declarator "*******pppppppiStack_11c" * (pointer_declarator "******pppppppiStack_11c" * (pointer_declarator "*****pppppppiStack_11c" * (pointer_declarator "****pppppppiStack_11c" * (pointer_declarator "***pppppppiStack_11c" * (pointer_declarator "**pppppppiStack_11c" * (pointer_declarator "*pppppppiStack_11c" * identifier))))))) ;) (declaration "int ****ppppiStack_118;" primitive_type (pointer_declarator "****ppppiStack_118" * (pointer_declarator "***ppppiStack_118" * (pointer_declarator "**ppppiStack_118" * (pointer_declarator "*ppppiStack_118" * identifier)))) ;) (declaration "int ****ppppiStack_114;" primitive_type (pointer_declarator "****ppppiStack_114" * (pointer_declarator "***ppppiStack_114" * (pointer_declarator "**ppppiStack_114" * (pointer_declarator "*ppppiStack_114" * identifier)))) ;) (declaration "int ****ppppiStack_110;" primitive_type (pointer_declarator "****ppppiStack_110" * (pointer_declarator "***ppppiStack_110" * (pointer_declarator "**ppppiStack_110" * (pointer_declarator "*ppppiStack_110" * identifier)))) ;) (declaration "int *******pppppppiStack_10c;" primitive_type (pointer_declarator "*******pppppppiStack_10c" * (pointer_declarator "******pppppppiStack_10c" * (pointer_declarator "*****pppppppiStack_10c" * (pointer_declarator "****pppppppiStack_10c" * (pointer_declarator "***pppppppiStack_10c" * (pointer_declarator "**pppppppiStack_10c" * (pointer_declarator "*pppppppiStack_10c" * identifier))))))) ;) (declaration "int *******pppppppiStack_108;" primitive_type (pointer_declarator "*******pppppppiStack_108" * (pointer_declarator "******pppppppiStack_108" * (pointer_declarator "*****pppppppiStack_108" * (pointer_declarator "****pppppppiStack_108" * (pointer_declarator "***pppppppiStack_108" * (pointer_declarator "**pppppppiStack_108" * (pointer_declarator "*pppppppiStack_108" * identifier))))))) ;) (declaration "int ****ppppiStack_104;" primitive_type (pointer_declarator "****ppppiStack_104" * (pointer_declarator "***ppppiStack_104" * (pointer_declarator "**ppppiStack_104" * (pointer_declarator "*ppppiStack_104" * identifier)))) ;) (declaration "int *******pppppppiStack_100;" primitive_type (pointer_declarator "*******pppppppiStack_100" * (pointer_declarator "******pppppppiStack_100" * (pointer_declarator "*****pppppppiStack_100" * (pointer_declarator "****pppppppiStack_100" * (pointer_declarator "***pppppppiStack_100" * (pointer_declarator "**pppppppiStack_100" * (pointer_declarator "*pppppppiStack_100" * identifier))))))) ;) (declaration "int ******ppppppiStack_fc;" primitive_type (pointer_declarator "******ppppppiStack_fc" * (pointer_declarator "*****ppppppiStack_fc" * (pointer_declarator "****ppppppiStack_fc" * (pointer_declarator "***ppppppiStack_fc" * (pointer_declarator "**ppppppiStack_fc" * (pointer_declarator "*ppppppiStack_fc" * identifier)))))) ;) (declaration "undefined4 uStack_f8;" type_identifier identifier ;) (declaration "int ******ppppppiStack_f4;" primitive_type (pointer_declarator "******ppppppiStack_f4" * (pointer_declarator "*****ppppppiStack_f4" * (pointer_declarator "****ppppppiStack_f4" * (pointer_declarator "***ppppppiStack_f4" * (pointer_declarator "**ppppppiStack_f4" * (pointer_declarator "*ppppppiStack_f4" * identifier)))))) ;) (declaration "int *piStack_f0;" primitive_type (pointer_declarator "*piStack_f0" * identifier) ;) (declaration "undefined4 uStack_ec;" type_identifier identifier ;) (declaration "int iStack_e8;" primitive_type identifier ;) (declaration "int iStack_e4;" primitive_type identifier ;) (declaration "int *******pppppppiStack_e0;" primitive_type (pointer_declarator "*******pppppppiStack_e0" * (pointer_declarator "******pppppppiStack_e0" * (pointer_declarator "*****pppppppiStack_e0" * (pointer_declarator "****pppppppiStack_e0" * (pointer_declarator "***pppppppiStack_e0" * (pointer_declarator "**pppppppiStack_e0" * (pointer_declarator "*pppppppiStack_e0" * identifier))))))) ;) (declaration "int *******pppppppiStack_dc;" primitive_type (pointer_declarator "*******pppppppiStack_dc" * (pointer_declarator "******pppppppiStack_dc" * (pointer_declarator "*****pppppppiStack_dc" * (pointer_declarator "****pppppppiStack_dc" * (pointer_declarator "***pppppppiStack_dc" * (pointer_declarator "**pppppppiStack_dc" * (pointer_declarator "*pppppppiStack_dc" * identifier))))))) ;) (declaration "int *******pppppppiStack_d8;" primitive_type (pointer_declarator "*******pppppppiStack_d8" * (pointer_declarator "******pppppppiStack_d8" * (pointer_declarator "*****pppppppiStack_d8" * (pointer_declarator "****pppppppiStack_d8" * (pointer_declarator "***pppppppiStack_d8" * (pointer_declarator "**pppppppiStack_d8" * (pointer_declarator "*pppppppiStack_d8" * identifier))))))) ;) (declaration "int *******pppppppiStack_d4;" primitive_type (pointer_declarator "*******pppppppiStack_d4" * (pointer_declarator "******pppppppiStack_d4" * (pointer_declarator "*****pppppppiStack_d4" * (pointer_declarator "****pppppppiStack_d4" * (pointer_declarator "***pppppppiStack_d4" * (pointer_declarator "**pppppppiStack_d4" * (pointer_declarator "*pppppppiStack_d4" * identifier))))))) ;) (declaration "int ******ppppppiStack_d0;" primitive_type (pointer_declarator "******ppppppiStack_d0" * (pointer_declarator "*****ppppppiStack_d0" * (pointer_declarator "****ppppppiStack_d0" * (pointer_declarator "***ppppppiStack_d0" * (pointer_declarator "**ppppppiStack_d0" * (pointer_declarator "*ppppppiStack_d0" * identifier)))))) ;) (declaration "int *******pppppppiStack_cc;" primitive_type (pointer_declarator "*******pppppppiStack_cc" * (pointer_declarator "******pppppppiStack_cc" * (pointer_declarator "*****pppppppiStack_cc" * (pointer_declarator "****pppppppiStack_cc" * (pointer_declarator "***pppppppiStack_cc" * (pointer_declarator "**pppppppiStack_cc" * (pointer_declarator "*pppppppiStack_cc" * identifier))))))) ;) (declaration "int *******pppppppiStack_c8;" primitive_type (pointer_declarator "*******pppppppiStack_c8" * (pointer_declarator "******pppppppiStack_c8" * (pointer_declarator "*****pppppppiStack_c8" * (pointer_declarator "****pppppppiStack_c8" * (pointer_declarator "***pppppppiStack_c8" * (pointer_declarator "**pppppppiStack_c8" * (pointer_declarator "*pppppppiStack_c8" * identifier))))))) ;) (declaration "int ******ppppppiStack_c4;" primitive_type (pointer_declarator "******ppppppiStack_c4" * (pointer_declarator "*****ppppppiStack_c4" * (pointer_declarator "****ppppppiStack_c4" * (pointer_declarator "***ppppppiStack_c4" * (pointer_declarator "**ppppppiStack_c4" * (pointer_declarator "*ppppppiStack_c4" * identifier)))))) ;) (declaration "int *******pppppppiStack_c0;" primitive_type (pointer_declarator "*******pppppppiStack_c0" * (pointer_declarator "******pppppppiStack_c0" * (pointer_declarator "*****pppppppiStack_c0" * (pointer_declarator "****pppppppiStack_c0" * (pointer_declarator "***pppppppiStack_c0" * (pointer_declarator "**pppppppiStack_c0" * (pointer_declarator "*pppppppiStack_c0" * identifier))))))) ;) (declaration "code *pcStack_bc;" type_identifier (pointer_declarator "*pcStack_bc" * identifier) ;) (declaration "undefined4 local_a8;" type_identifier identifier ;) (declaration "int local_8c;" primitive_type identifier ;) (declaration "code *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "uint local_48 [3];" type_identifier (array_declarator "local_48 [3]" identifier [ number_literal ]) ;) (declaration "undefined4 *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (declaration "int ******local_38;" primitive_type (pointer_declarator "******local_38" * (pointer_declarator "*****local_38" * (pointer_declarator "****local_38" * (pointer_declarator "***local_38" * (pointer_declarator "**local_38" * (pointer_declarator "*local_38" * identifier)))))) ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar35 = PTR___stack_chk_guard_0003c314;" (assignment_expression "puVar35 = PTR___stack_chk_guard_0003c314" identifier = identifier) ;) (expression_statement "pppppppiVar12 = (int *******)param_1[0x15];" (assignment_expression "pppppppiVar12 = (int *******)param_1[0x15]" identifier = (cast_expression "(int *******)param_1[0x15]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "param_1[0x15]" identifier [ number_literal ]))) ;) (expression_statement "pppppppiVar30 = (int *******)param_2[1];" (assignment_expression "pppppppiVar30 = (int *******)param_2[1]" identifier = (cast_expression "(int *******)param_2[1]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))) ;) (expression_statement "local_2c = *(undefined4 **)PTR___stack_chk_guard_0003c314;" (assignment_expression "local_2c = *(undefined4 **)PTR___stack_chk_guard_0003c314" identifier = (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_0003c314" * (cast_expression "(undefined4 **)PTR___stack_chk_guard_0003c314" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pppppppiVar22 = (int *******)((int)param_3 * 8);" (assignment_expression "pppppppiVar22 = (int *******)((int)param_3 * 8)" identifier = (cast_expression "(int *******)((int)param_3 * 8)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)param_3 * 8)" ( (binary_expression "(int)param_3 * 8" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "pppppppiVar23 = (int *******)(param_6 + (int)param_1[0x1e]);" (assignment_expression "pppppppiVar23 = (int *******)(param_6 + (int)param_1[0x1e])" identifier = (cast_expression "(int *******)(param_6 + (int)param_1[0x1e])" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(param_6 + (int)param_1[0x1e])" ( (binary_expression "param_6 + (int)param_1[0x1e]" identifier + (cast_expression "(int)param_1[0x1e]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x1e]" identifier [ number_literal ]))) )))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "pppppppiVar3 = (int *******)(*pppppppiVar12)[(int)param_3 * 2];" (assignment_expression "pppppppiVar3 = (int *******)(*pppppppiVar12)[(int)param_3 * 2]" identifier = (cast_expression "(int *******)(*pppppppiVar12)[(int)param_3 * 2]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "(*pppppppiVar12)[(int)param_3 * 2]" (parenthesized_expression "(*pppppppiVar12)" ( (pointer_expression "*pppppppiVar12" * identifier) )) [ (binary_expression "(int)param_3 * 2" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ]))) ;) (expression_statement "pppppppiVar7 = param_4;" (assignment_expression "pppppppiVar7 = param_4" identifier = identifier) ;) (if_statement "if ((int)pppppppiVar23 < (int)pppppppiVar30) {\nLAB_000205e8:\n    puVar2 = PTR_LAB_0003c1e8;\n    ppppppiVar13 = param_1[0x19];\n    pppppppiVar23 = (int *******)param_1[0x16];\n    pppppppiVar28 = (int *******)*param_2;\n    ppppppiVar32 = param_2[2];\n    ppppppiVar14 = param_1[10];\n    if (pppppppiVar28 == (int *******)0x0) {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)param_4 + -1);\n      param_1[10] = (int ******)param_4;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\nLAB_00020b7c:\n      local_48[1] = 1;\n      local_48[2] = 1;\n      local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4);\n      if (local_3c == (undefined4 *)0x0) goto LAB_00020c64;\n      pppppppiVar22 = (int *******)(local_48 + 1);\n      *local_3c = param_3;\n      local_4c = 0;\n      pppppppiVar23 = pppppppiVar3;\n      pppppppiVar7 = param_7;\n      local_4c = FUN_0001afe8(pppppppiVar12);\n      pppppppiVar28 = param_4;\n      if (local_4c == 0) {\nLAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);\n        if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }\n        pppppppiVar22 = pppppppiVar12;\n        pppppppiVar7 = pppppppiVar30;\n        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n        pppppppiVar23 = pppppppiVar25;\n        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }\n      }\nLAB_00020920:\n      (*(code *)PTR_free_0003c320)(local_3c);\n      uVar10 = local_4c;\n    }\n    else {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);\n      param_1[10] = (int ******)pppppppiVar28;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\n      if (pppppppiVar28 == param_4) goto LAB_00020b7c;\n      ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;\n      unaff_s7 = (int ******)*ppppppiVar32;\n      pppppppiVar25 = pppppppiVar28;\n      if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }\n      else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }\n  }\n  else {\n    pppppppiVar28 = (int *******)((int)pppppppiVar23 + 1);\n    ppppppiVar32 = (int ******)((int)pppppppiVar30 + (int)pppppppiVar28);\n    if (((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&\n       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)) {\n      pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);\n      ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);\n      puVar2 = PTR_memset_0003c290;\n      if (ppppppiVar13 != (int ******)0x0) {\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }\n    }\nLAB_00020c64:\n    uVar10 = 0xc;\n  }" if (parenthesized_expression "((int)pppppppiVar23 < (int)pppppppiVar30)" ( (binary_expression "(int)pppppppiVar23 < (int)pppppppiVar30" (cast_expression "(int)pppppppiVar23" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppppiVar30" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\nLAB_000205e8:\n    puVar2 = PTR_LAB_0003c1e8;\n    ppppppiVar13 = param_1[0x19];\n    pppppppiVar23 = (int *******)param_1[0x16];\n    pppppppiVar28 = (int *******)*param_2;\n    ppppppiVar32 = param_2[2];\n    ppppppiVar14 = param_1[10];\n    if (pppppppiVar28 == (int *******)0x0) {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)param_4 + -1);\n      param_1[10] = (int ******)param_4;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\nLAB_00020b7c:\n      local_48[1] = 1;\n      local_48[2] = 1;\n      local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4);\n      if (local_3c == (undefined4 *)0x0) goto LAB_00020c64;\n      pppppppiVar22 = (int *******)(local_48 + 1);\n      *local_3c = param_3;\n      local_4c = 0;\n      pppppppiVar23 = pppppppiVar3;\n      pppppppiVar7 = param_7;\n      local_4c = FUN_0001afe8(pppppppiVar12);\n      pppppppiVar28 = param_4;\n      if (local_4c == 0) {\nLAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);\n        if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }\n        pppppppiVar22 = pppppppiVar12;\n        pppppppiVar7 = pppppppiVar30;\n        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n        pppppppiVar23 = pppppppiVar25;\n        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }\n      }\nLAB_00020920:\n      (*(code *)PTR_free_0003c320)(local_3c);\n      uVar10 = local_4c;\n    }\n    else {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);\n      param_1[10] = (int ******)pppppppiVar28;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\n      if (pppppppiVar28 == param_4) goto LAB_00020b7c;\n      ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;\n      unaff_s7 = (int ******)*ppppppiVar32;\n      pppppppiVar25 = pppppppiVar28;\n      if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }\n      else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }\n  }" { (labeled_statement "LAB_000205e8:\n    puVar2 = PTR_LAB_0003c1e8;" statement_identifier : (expression_statement "puVar2 = PTR_LAB_0003c1e8;" (assignment_expression "puVar2 = PTR_LAB_0003c1e8" identifier = identifier) ;)) (expression_statement "ppppppiVar13 = param_1[0x19];" (assignment_expression "ppppppiVar13 = param_1[0x19]" identifier = (subscript_expression "param_1[0x19]" identifier [ number_literal ])) ;) (expression_statement "pppppppiVar23 = (int *******)param_1[0x16];" (assignment_expression "pppppppiVar23 = (int *******)param_1[0x16]" identifier = (cast_expression "(int *******)param_1[0x16]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "param_1[0x16]" identifier [ number_literal ]))) ;) (expression_statement "pppppppiVar28 = (int *******)*param_2;" (assignment_expression "pppppppiVar28 = (int *******)*param_2" identifier = (cast_expression "(int *******)*param_2" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "ppppppiVar32 = param_2[2];" (assignment_expression "ppppppiVar32 = param_2[2]" identifier = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar14 = param_1[10];" (assignment_expression "ppppppiVar14 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (if_statement "if (pppppppiVar28 == (int *******)0x0) {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)param_4 + -1);\n      param_1[10] = (int ******)param_4;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\nLAB_00020b7c:\n      local_48[1] = 1;\n      local_48[2] = 1;\n      local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4);\n      if (local_3c == (undefined4 *)0x0) goto LAB_00020c64;\n      pppppppiVar22 = (int *******)(local_48 + 1);\n      *local_3c = param_3;\n      local_4c = 0;\n      pppppppiVar23 = pppppppiVar3;\n      pppppppiVar7 = param_7;\n      local_4c = FUN_0001afe8(pppppppiVar12);\n      pppppppiVar28 = param_4;\n      if (local_4c == 0) {\nLAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);\n        if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }\n        pppppppiVar22 = pppppppiVar12;\n        pppppppiVar7 = pppppppiVar30;\n        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n        pppppppiVar23 = pppppppiVar25;\n        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }\n      }\nLAB_00020920:\n      (*(code *)PTR_free_0003c320)(local_3c);\n      uVar10 = local_4c;\n    }\n    else {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);\n      param_1[10] = (int ******)pppppppiVar28;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\n      if (pppppppiVar28 == param_4) goto LAB_00020b7c;\n      ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;\n      unaff_s7 = (int ******)*ppppppiVar32;\n      pppppppiVar25 = pppppppiVar28;\n      if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }\n      else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }" if (parenthesized_expression "(pppppppiVar28 == (int *******)0x0)" ( (binary_expression "pppppppiVar28 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)param_4 + -1);\n      param_1[10] = (int ******)param_4;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\nLAB_00020b7c:\n      local_48[1] = 1;\n      local_48[2] = 1;\n      local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4);\n      if (local_3c == (undefined4 *)0x0) goto LAB_00020c64;\n      pppppppiVar22 = (int *******)(local_48 + 1);\n      *local_3c = param_3;\n      local_4c = 0;\n      pppppppiVar23 = pppppppiVar3;\n      pppppppiVar7 = param_7;\n      local_4c = FUN_0001afe8(pppppppiVar12);\n      pppppppiVar28 = param_4;\n      if (local_4c == 0) {\nLAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);\n        if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }\n        pppppppiVar22 = pppppppiVar12;\n        pppppppiVar7 = pppppppiVar30;\n        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n        pppppppiVar23 = pppppppiVar25;\n        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }\n      }\nLAB_00020920:\n      (*(code *)PTR_free_0003c320)(local_3c);\n      uVar10 = local_4c;\n    }" { (expression_statement "param_1[0x19] = ppppppiVar32;" (assignment_expression "param_1[0x19] = ppppppiVar32" (subscript_expression "param_1[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppiVar22 = (int *******)((int)param_4 + -1);" (assignment_expression "pppppppiVar22 = (int *******)((int)param_4 + -1)" identifier = (cast_expression "(int *******)((int)param_4 + -1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)param_4 + -1)" ( (binary_expression "(int)param_4 + -1" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "param_1[10] = (int ******)param_4;" (assignment_expression "param_1[10] = (int ******)param_4" (subscript_expression "param_1[10]" identifier [ number_literal ]) = (cast_expression "(int ******)param_4" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "pppppppiVar30 = (int *******)FUN_0001cb50(param_1);" (assignment_expression "pppppppiVar30 = (int *******)FUN_0001cb50(param_1)" identifier = (cast_expression "(int *******)FUN_0001cb50(param_1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_0001cb50(param_1)" identifier (argument_list "(param_1)" ( identifier ))))) ;) (labeled_statement "LAB_00020b7c:\n      local_48[1] = 1;" statement_identifier : (expression_statement "local_48[1] = 1;" (assignment_expression "local_48[1] = 1" (subscript_expression "local_48[1]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "local_48[2] = 1;" (assignment_expression "local_48[2] = 1" (subscript_expression "local_48[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4);" (assignment_expression "local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0003c2b4)(4)" (parenthesized_expression "(*(code *)PTR_malloc_0003c2b4)" ( (pointer_expression "*(code *)PTR_malloc_0003c2b4" * (cast_expression "(code *)PTR_malloc_0003c2b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(4)" ( number_literal ))))) ;) (if_statement "if (local_3c == (undefined4 *)0x0) goto LAB_00020c64;" if (parenthesized_expression "(local_3c == (undefined4 *)0x0)" ( (binary_expression "local_3c == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00020c64;" goto statement_identifier ;)) (expression_statement "pppppppiVar22 = (int *******)(local_48 + 1);" (assignment_expression "pppppppiVar22 = (int *******)(local_48 + 1)" identifier = (cast_expression "(int *******)(local_48 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(local_48 + 1)" ( (binary_expression "local_48 + 1" identifier + number_literal) )))) ;) (expression_statement "*local_3c = param_3;" (assignment_expression "*local_3c = param_3" (pointer_expression "*local_3c" * identifier) = identifier) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "pppppppiVar23 = pppppppiVar3;" (assignment_expression "pppppppiVar23 = pppppppiVar3" identifier = identifier) ;) (expression_statement "pppppppiVar7 = param_7;" (assignment_expression "pppppppiVar7 = param_7" identifier = identifier) ;) (expression_statement "local_4c = FUN_0001afe8(pppppppiVar12);" (assignment_expression "local_4c = FUN_0001afe8(pppppppiVar12)" identifier = (call_expression "FUN_0001afe8(pppppppiVar12)" identifier (argument_list "(pppppppiVar12)" ( identifier )))) ;) (expression_statement "pppppppiVar28 = param_4;" (assignment_expression "pppppppiVar28 = param_4" identifier = identifier) ;) (if_statement "if (local_4c == 0) {\nLAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);\n        if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }\n        pppppppiVar22 = pppppppiVar12;\n        pppppppiVar7 = pppppppiVar30;\n        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n        pppppppiVar23 = pppppppiVar25;\n        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }\n      }" if (parenthesized_expression "(local_4c == 0)" ( (binary_expression "local_4c == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);\n        if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }\n        pppppppiVar22 = pppppppiVar12;\n        pppppppiVar7 = pppppppiVar30;\n        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n        pppppppiVar23 = pppppppiVar25;\n        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }\n      }" { (labeled_statement "LAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);" statement_identifier : (expression_statement "pppppppiVar25 = (int *******)(local_48 + 1);" (assignment_expression "pppppppiVar25 = (int *******)(local_48 + 1)" identifier = (cast_expression "(int *******)(local_48 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(local_48 + 1)" ( (binary_expression "local_48 + 1" identifier + number_literal) )))) ;)) (if_statement "if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }" if (parenthesized_expression "(local_48[2] != 0)" ( (binary_expression "local_48[2] != 0" (subscript_expression "local_48[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }" { (expression_statement "local_a8 = param_7;" (assignment_expression "local_a8 = param_7" identifier = identifier) ;) (expression_statement "pppppppiVar22 = pppppppiVar25;" (assignment_expression "pppppppiVar22 = pppppppiVar25" identifier = identifier) ;) (expression_statement "pppppppiVar23 = pppppppiVar28;" (assignment_expression "pppppppiVar23 = pppppppiVar28" identifier = identifier) ;) (expression_statement "pppppppiVar7 = pppppppiVar3;" (assignment_expression "pppppppiVar7 = pppppppiVar3" identifier = identifier) ;) (expression_statement "local_4c = FUN_0001c580(param_1);" (assignment_expression "local_4c = FUN_0001c580(param_1)" identifier = (call_expression "FUN_0001c580(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (local_4c != 0) goto LAB_00020920;" if (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 0" identifier != number_literal) )) (goto_statement "goto LAB_00020920;" goto statement_identifier ;)) })) (expression_statement "pppppppiVar22 = pppppppiVar12;" (assignment_expression "pppppppiVar22 = pppppppiVar12" identifier = identifier) ;) (expression_statement "pppppppiVar7 = pppppppiVar30;" (assignment_expression "pppppppiVar7 = pppppppiVar30" identifier = identifier) ;) (expression_statement "unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);" (assignment_expression "unaff_s7 = (int ******)FUN_0001bd4c(&local_4c)" identifier = (cast_expression "(int ******)FUN_0001bd4c(&local_4c)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_0001bd4c(&local_4c)" identifier (argument_list "(&local_4c)" ( (pointer_expression "&local_4c" & identifier) ))))) ;) (expression_statement "pppppppiVar23 = pppppppiVar25;" (assignment_expression "pppppppiVar23 = pppppppiVar25" identifier = identifier) ;) (if_statement "if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }" if (parenthesized_expression "((unaff_s7 != (int ******)0x0) || (local_4c == 0))" ( (binary_expression "(unaff_s7 != (int ******)0x0) || (local_4c == 0)" (parenthesized_expression "(unaff_s7 != (int ******)0x0)" ( (binary_expression "unaff_s7 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) || (parenthesized_expression "(local_4c == 0)" ( (binary_expression "local_4c == 0" identifier == number_literal) ))) )) (compound_statement "{\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }" { (expression_statement "param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;" (assignment_expression "param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7" (subscript_expression "param_1[0x19][(int)pppppppiVar28]" (subscript_expression "param_1[0x19]" identifier [ number_literal ]) [ (cast_expression "(int)pppppppiVar28" ( (type_descriptor "int" primitive_type) ) identifier) ]) = (cast_expression "(int *****)unaff_s7" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (expression_statement "pppppppiVar25 = pppppppiVar28;" (assignment_expression "pppppppiVar25 = pppppppiVar28" identifier = identifier) ;) (goto_statement "goto LAB_00020670;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00020920:\n      (*(code *)PTR_free_0003c320)(local_3c);" statement_identifier : (expression_statement "(*(code *)PTR_free_0003c320)(local_3c);" (call_expression "(*(code *)PTR_free_0003c320)(local_3c)" (parenthesized_expression "(*(code *)PTR_free_0003c320)" ( (pointer_expression "*(code *)PTR_free_0003c320" * (cast_expression "(code *)PTR_free_0003c320" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_3c)" ( identifier ))) ;)) (expression_statement "uVar10 = local_4c;" (assignment_expression "uVar10 = local_4c" identifier = identifier) ;) }) (else_clause "else {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);\n      param_1[10] = (int ******)pppppppiVar28;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\n      if (pppppppiVar28 == param_4) goto LAB_00020b7c;\n      ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;\n      unaff_s7 = (int ******)*ppppppiVar32;\n      pppppppiVar25 = pppppppiVar28;\n      if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }\n      else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }" else (compound_statement "{\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);\n      param_1[10] = (int ******)pppppppiVar28;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\n      if (pppppppiVar28 == param_4) goto LAB_00020b7c;\n      ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;\n      unaff_s7 = (int ******)*ppppppiVar32;\n      pppppppiVar25 = pppppppiVar28;\n      if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }\n      else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }" { (expression_statement "param_1[0x19] = ppppppiVar32;" (assignment_expression "param_1[0x19] = ppppppiVar32" (subscript_expression "param_1[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);" (assignment_expression "pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1)" identifier = (cast_expression "(int *******)((int)pppppppiVar28 + -1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar28 + -1)" ( (binary_expression "(int)pppppppiVar28 + -1" (cast_expression "(int)pppppppiVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "param_1[10] = (int ******)pppppppiVar28;" (assignment_expression "param_1[10] = (int ******)pppppppiVar28" (subscript_expression "param_1[10]" identifier [ number_literal ]) = (cast_expression "(int ******)pppppppiVar28" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "pppppppiVar30 = (int *******)FUN_0001cb50(param_1);" (assignment_expression "pppppppiVar30 = (int *******)FUN_0001cb50(param_1)" identifier = (cast_expression "(int *******)FUN_0001cb50(param_1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_0001cb50(param_1)" identifier (argument_list "(param_1)" ( identifier ))))) ;) (if_statement "if (pppppppiVar28 == param_4) goto LAB_00020b7c;" if (parenthesized_expression "(pppppppiVar28 == param_4)" ( (binary_expression "pppppppiVar28 == param_4" identifier == identifier) )) (goto_statement "goto LAB_00020b7c;" goto statement_identifier ;)) (expression_statement "ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;" (assignment_expression "ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28" identifier = (binary_expression "ppppppiVar32 + (int)pppppppiVar28" identifier + (cast_expression "(int)pppppppiVar28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "unaff_s7 = (int ******)*ppppppiVar32;" (assignment_expression "unaff_s7 = (int ******)*ppppppiVar32" identifier = (cast_expression "(int ******)*ppppppiVar32" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "*ppppppiVar32" * identifier))) ;) (expression_statement "pppppppiVar25 = pppppppiVar28;" (assignment_expression "pppppppiVar25 = pppppppiVar28" identifier = identifier) ;) (if_statement "if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }\n      else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }" if (parenthesized_expression "((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0))" ( (binary_expression "(unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)" (parenthesized_expression "(unaff_s7 == (int ******)0x0)" ( (binary_expression "unaff_s7 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) || (parenthesized_expression "(((uint)unaff_s7[0xd] & 0x2000000) == 0)" ( (binary_expression "((uint)unaff_s7[0xd] & 0x2000000) == 0" (parenthesized_expression "((uint)unaff_s7[0xd] & 0x2000000)" ( (binary_expression "(uint)unaff_s7[0xd] & 0x2000000" (cast_expression "(uint)unaff_s7[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "unaff_s7[0xd]" identifier [ number_literal ])) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }" { (expression_statement "local_48[1] = 0;" (assignment_expression "local_48[1] = 0" (subscript_expression "local_48[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_48[2] = 0;" (assignment_expression "local_48[2] = 0" (subscript_expression "local_48[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_3c = (undefined4 *)0x0;" (assignment_expression "local_3c = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);" statement_identifier : (expression_statement "local_6c = (code *)(puVar2 + -0x34b0);" (assignment_expression "local_6c = (code *)(puVar2 + -0x34b0)" identifier = (cast_expression "(code *)(puVar2 + -0x34b0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x34b0)" ( (binary_expression "puVar2 + -0x34b0" identifier + number_literal) )))) ;)) (expression_statement "puVar1 = local_48 + 1;" (assignment_expression "puVar1 = local_48 + 1" identifier = (binary_expression "local_48 + 1" identifier + number_literal)) ;) (if_statement "if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }" if (parenthesized_expression "(((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e]))" ( (binary_expression "((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])" (parenthesized_expression "((int)pppppppiVar25 < param_6)" ( (binary_expression "(int)pppppppiVar25 < param_6" (cast_expression "(int)pppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) && (parenthesized_expression "(-1 < (int)param_1[0x1e])" ( (binary_expression "-1 < (int)param_1[0x1e]" number_literal < (cast_expression "(int)param_1[0x1e]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x1e]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }" { (expression_statement "ppppppiVar4 = param_1[0x19];" (assignment_expression "ppppppiVar4 = param_1[0x19]" identifier = (subscript_expression "param_1[0x19]" identifier [ number_literal ])) ;) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" identifier = number_literal) ;) (expression_statement "pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);" (assignment_expression "pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018)" identifier = (cast_expression "(code *)(PTR_LAB_0003c1e8 + -0x5018)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0003c1e8 + -0x5018)" ( (binary_expression "PTR_LAB_0003c1e8 + -0x5018" identifier + number_literal) )))) ;) (expression_statement "pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);" (assignment_expression "pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368)" identifier = (cast_expression "(code *)(PTR_LAB_0003c1e8 + -0x3368)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0003c1e8 + -0x3368)" ( (binary_expression "PTR_LAB_0003c1e8 + -0x3368" identifier + number_literal) )))) ;) (expression_statement "pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);" (assignment_expression "pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38)" identifier = (cast_expression "(code *)(PTR_LAB_0003c1e8 + -0x7b38)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0003c1e8 + -0x7b38)" ( (binary_expression "PTR_LAB_0003c1e8 + -0x7b38" identifier + number_literal) )))) ;) (expression_statement "pppppppiVar28 = pppppppiVar25;" (assignment_expression "pppppppiVar28 = pppppppiVar25" identifier = identifier) ;) (expression_statement "unaff_s8 = (int *******)((int)pppppppiVar25 + 1);" (assignment_expression "unaff_s8 = (int *******)((int)pppppppiVar25 + 1)" identifier = (cast_expression "(int *******)((int)pppppppiVar25 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar25 + 1)" ( (binary_expression "(int)pppppppiVar25 + 1" (cast_expression "(int)pppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));" do (compound_statement "{\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          }" { (expression_statement "pppppppiVar25 = unaff_s8;" (assignment_expression "pppppppiVar25 = unaff_s8" identifier = identifier) ;) (expression_statement "local_48[2] = 0;" (assignment_expression "local_48[2] = 0" (subscript_expression "local_48[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_3 = (int *******)((int)pppppppiVar25 + -1);" (assignment_expression "param_3 = (int *******)((int)pppppppiVar25 + -1)" identifier = (cast_expression "(int *******)((int)pppppppiVar25 + -1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar25 + -1)" ( (binary_expression "(int)pppppppiVar25 + -1" (cast_expression "(int)pppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }" if (parenthesized_expression "(ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0)" ( (binary_expression "ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0" (subscript_expression "ppppppiVar4[(int)pppppppiVar25]" identifier [ (cast_expression "(int)pppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier) ]) == (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }" { (expression_statement "uVar10 = local_4c;" (assignment_expression "uVar10 = local_4c" identifier = identifier) ;) (if_statement "if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;" if (parenthesized_expression "(unaff_s7 != (int ******)0x0)" ( (binary_expression "unaff_s7 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_000206f8;" goto statement_identifier ;)) (expression_statement "ppppppiVar4 = param_1[0x16];" (assignment_expression "ppppppiVar4 = param_1[0x16]" identifier = (subscript_expression "param_1[0x16]" identifier [ number_literal ])) ;) }) (else_clause "else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }" else (compound_statement "{\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }" { (expression_statement "pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);" (assignment_expression "pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1)" identifier = (cast_expression "(int *******)(ppppppiVar4[(int)pppppppiVar25] + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(ppppppiVar4[(int)pppppppiVar25] + 1)" ( (binary_expression "ppppppiVar4[(int)pppppppiVar25] + 1" (subscript_expression "ppppppiVar4[(int)pppppppiVar25]" identifier [ (cast_expression "(int)pppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier) ]) + number_literal) )))) ;) (expression_statement "local_4c = FUN_0001aa4c(puVar1);" (assignment_expression "local_4c = FUN_0001aa4c(puVar1)" identifier = (call_expression "FUN_0001aa4c(puVar1)" identifier (argument_list "(puVar1)" ( identifier )))) ;) (expression_statement "unaff_s8 = pppppppiVar25;" (assignment_expression "unaff_s8 = pppppppiVar25" identifier = identifier) ;) (if_statement "if (local_4c != 0) goto LAB_00020920;" if (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 0" identifier != number_literal) )) (goto_statement "goto LAB_00020920;" goto statement_identifier ;)) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (if_statement "if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }" if (parenthesized_expression "(unaff_s7 != (int ******)0x0)" ( (binary_expression "unaff_s7 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }" { (labeled_statement "LAB_000206f8:\n                local_4c = uVar10;" statement_identifier : (expression_statement "local_4c = uVar10;" (assignment_expression "local_4c = uVar10" identifier = identifier) ;)) (expression_statement "unaff_s5 = &local_38;" (assignment_expression "unaff_s5 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (expression_statement "pppppppiVar30 = (int *******)param_1[0x15];" (assignment_expression "pppppppiVar30 = (int *******)param_1[0x15]" identifier = (cast_expression "(int *******)param_1[0x15]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "param_1[0x15]" identifier [ number_literal ]))) ;) (expression_statement "local_38 = (int ******)0x0;" (assignment_expression "local_38 = (int ******)0x0" identifier = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "local_48[0] = 0;" (assignment_expression "local_48[0] = 0" (subscript_expression "local_48[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }" if (parenthesized_expression "(0 < (int)unaff_s7[5])" ( (binary_expression "0 < (int)unaff_s7[5]" number_literal < (cast_expression "(int)unaff_s7[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "unaff_s7[5]" identifier [ number_literal ]))) )) (compound_statement "{\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }" { (expression_statement "ppppppiVar32 = (int ******)0x0;" (assignment_expression "ppppppiVar32 = (int ******)0x0" identifier = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);" (assignment_expression "pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4)" identifier = (cast_expression "(code *)(PTR_LAB_0003c1e8 + -0x3ea4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0003c1e8 + -0x3ea4)" ( (binary_expression "PTR_LAB_0003c1e8 + -0x3ea4" identifier + number_literal) )))) ;) (do_statement "do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);" do (compound_statement "{\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  }" { (expression_statement "pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];" (assignment_expression "pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32]" identifier = (cast_expression "(int *******)unaff_s7[6][(int)ppppppiVar32]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "unaff_s7[6][(int)ppppppiVar32]" (subscript_expression "unaff_s7[6]" identifier [ number_literal ]) [ (cast_expression "(int)ppppppiVar32" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "param_4 = (int *******)((int)pppppppiVar29 * 8);" (assignment_expression "param_4 = (int *******)((int)pppppppiVar29 * 8)" identifier = (cast_expression "(int *******)((int)pppppppiVar29 * 8)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar29 * 8)" ( (binary_expression "(int)pppppppiVar29 * 8" (cast_expression "(int)pppppppiVar29" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;" (assignment_expression "ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2" identifier = (binary_expression "*pppppppiVar30 + (int)pppppppiVar29 * 2" (pointer_expression "*pppppppiVar30" * identifier) + (binary_expression "(int)pppppppiVar29 * 2" (cast_expression "(int)pppppppiVar29" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (if_statement "if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }" if (parenthesized_expression "(((uint)ppppppiVar4[1] & 0x800) != 0)" ( (binary_expression "((uint)ppppppiVar4[1] & 0x800) != 0" (parenthesized_expression "((uint)ppppppiVar4[1] & 0x800)" ( (binary_expression "(uint)ppppppiVar4[1] & 0x800" (cast_expression "(uint)ppppppiVar4[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppiVar4[1]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) (compound_statement "{\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }" { (expression_statement "pppppppiVar23 = pppppppiVar29;" (assignment_expression "pppppppiVar23 = pppppppiVar29" identifier = identifier) ;) (expression_statement "pppppppiVar7 = param_1;" (assignment_expression "pppppppiVar7 = param_1" identifier = identifier) ;) (expression_statement "local_a8 = param_3;" (assignment_expression "local_a8 = param_3" identifier = identifier) ;) (expression_statement "iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);" (assignment_expression "iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20)" identifier = (call_expression "FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20)" identifier (argument_list "(*pppppppiVar30,pppppppiVar30 + 0x20)" ( (pointer_expression "*pppppppiVar30" * identifier) , (binary_expression "pppppppiVar30 + 0x20" identifier + number_literal) )))) ;) (if_statement "if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }" if (parenthesized_expression "(iVar6 < 2)" ( (binary_expression "iVar6 < 2" identifier < number_literal) )) (compound_statement "{\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }" { (expression_statement "unaff_s8 = pppppppiVar25;" (assignment_expression "unaff_s8 = pppppppiVar25" identifier = identifier) ;) (if_statement "if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }" { (expression_statement "ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;" (assignment_expression "ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2" identifier = (binary_expression "*pppppppiVar30 + (int)pppppppiVar29 * 2" (pointer_expression "*pppppppiVar30" * identifier) + (binary_expression "(int)pppppppiVar29 * 2" (cast_expression "(int)pppppppiVar29" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (goto_statement "goto LAB_00020768;" goto statement_identifier ;) })) (goto_statement "goto LAB_00020784;" goto statement_identifier ;) })) (expression_statement "iVar6 = (int)param_3 + iVar6;" (assignment_expression "iVar6 = (int)param_3 + iVar6" identifier = (binary_expression "(int)param_3 + iVar6" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);" (assignment_expression "pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4)" identifier = (cast_expression "(int *******)((int)pppppppiVar29 * 4)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar29 * 4)" ( (binary_expression "(int)pppppppiVar29 * 4" (cast_expression "(int)pppppppiVar29" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "param_4 = (int *******)(iVar6 * 4);" (assignment_expression "param_4 = (int *******)(iVar6 * 4)" identifier = (cast_expression "(int *******)(iVar6 * 4)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(iVar6 * 4)" ( (binary_expression "iVar6 * 4" identifier * number_literal) )))) ;) (expression_statement "unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];" (assignment_expression "unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29]" identifier = (cast_expression "(int *******)pppppppiVar30[3][(int)pppppppiVar29]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar30[3][(int)pppppppiVar29]" (subscript_expression "pppppppiVar30[3]" identifier [ number_literal ]) [ (cast_expression "(int)pppppppiVar29" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (if_statement "if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }" if (parenthesized_expression "(param_1[0x19][iVar6] == (int *****)0x0)" ( (binary_expression "param_1[0x19][iVar6] == (int *****)0x0" (subscript_expression "param_1[0x19][iVar6]" (subscript_expression "param_1[0x19]" identifier [ number_literal ]) [ identifier ]) == (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }" { (labeled_statement "LAB_000209e0:\n                        pppppppiVar22 = unaff_s8;" statement_identifier : (expression_statement "pppppppiVar22 = unaff_s8;" (assignment_expression "pppppppiVar22 = unaff_s8" identifier = identifier) ;)) (expression_statement "iVar31 = (*pcVar17)(unaff_s5);" (assignment_expression "iVar31 = (*pcVar17)(unaff_s5)" identifier = (call_expression "(*pcVar17)(unaff_s5)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(unaff_s5)" ( identifier )))) ;) (if_statement "if (iVar31 == 0) goto LAB_00020904;" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00020904;" goto statement_identifier ;)) (expression_statement "pppppppiVar7 = (int *******)param_1[0x19];" (assignment_expression "pppppppiVar7 = (int *******)param_1[0x19]" identifier = (cast_expression "(int *******)param_1[0x19]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "param_1[0x19]" identifier [ number_literal ]))) ;) (expression_statement "unaff_s8 = pppppppiVar7 + iVar6;" (assignment_expression "unaff_s8 = pppppppiVar7 + iVar6" identifier = (binary_expression "pppppppiVar7 + iVar6" identifier + identifier)) ;) (expression_statement "pppppppiVar22 = pppppppiVar30;" (assignment_expression "pppppppiVar22 = pppppppiVar30" identifier = identifier) ;) (expression_statement "pppppppiVar23 = unaff_s5;" (assignment_expression "pppppppiVar23 = unaff_s5" identifier = identifier) ;) (expression_statement "ppppppiVar4 = (int ******)(*pcVar5)(local_48);" (assignment_expression "ppppppiVar4 = (int ******)(*pcVar5)(local_48)" identifier = (cast_expression "(int ******)(*pcVar5)(local_48)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(*pcVar5)(local_48)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(local_48)" ( identifier ))))) ;) (expression_statement "ppppppiVar18 = param_1[0x19];" (assignment_expression "ppppppiVar18 = param_1[0x19]" identifier = (subscript_expression "param_1[0x19]" identifier [ number_literal ])) ;) (expression_statement "*unaff_s8 = ppppppiVar4;" (assignment_expression "*unaff_s8 = ppppppiVar4" (pointer_expression "*unaff_s8" * identifier) = identifier) ;) (expression_statement "param_4 = (int *******)(ppppppiVar18 + iVar6);" (assignment_expression "param_4 = (int *******)(ppppppiVar18 + iVar6)" identifier = (cast_expression "(int *******)(ppppppiVar18 + iVar6)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(ppppppiVar18 + iVar6)" ( (binary_expression "ppppppiVar18 + iVar6" identifier + identifier) )))) ;) (if_statement "if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;" if (parenthesized_expression "((*param_4 != (int ******)0x0) || (local_48[0] == 0))" ( (binary_expression "(*param_4 != (int ******)0x0) || (local_48[0] == 0)" (parenthesized_expression "(*param_4 != (int ******)0x0)" ( (binary_expression "*param_4 != (int ******)0x0" (pointer_expression "*param_4" * identifier) != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) || (parenthesized_expression "(local_48[0] == 0)" ( (binary_expression "local_48[0] == 0" (subscript_expression "local_48[0]" identifier [ number_literal ]) == number_literal) ))) )) (goto_statement "goto LAB_00020784;" goto statement_identifier ;)) }) (else_clause "else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }" else (compound_statement "{\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }" { (expression_statement "pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);" (assignment_expression "pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1)" identifier = (cast_expression "(int *******)(param_1[0x19][iVar6] + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(param_1[0x19][iVar6] + 1)" ( (binary_expression "param_1[0x19][iVar6] + 1" (subscript_expression "param_1[0x19][iVar6]" (subscript_expression "param_1[0x19]" identifier [ number_literal ]) [ identifier ]) + number_literal) )))) ;) (expression_statement "local_48[0] = FUN_0001aa4c(unaff_s5);" (assignment_expression "local_48[0] = FUN_0001aa4c(unaff_s5)" (subscript_expression "local_48[0]" identifier [ number_literal ]) = (call_expression "FUN_0001aa4c(unaff_s5)" identifier (argument_list "(unaff_s5)" ( identifier )))) ;) (if_statement "if (local_48[0] == 0) goto LAB_000209e0;" if (parenthesized_expression "(local_48[0] == 0)" ( (binary_expression "local_48[0] == 0" (subscript_expression "local_48[0]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_000209e0;" goto statement_identifier ;)) }))) (expression_statement "(*(code *)PTR_free_0003c320)(local_30);" (call_expression "(*(code *)PTR_free_0003c320)(local_30)" (parenthesized_expression "(*(code *)PTR_free_0003c320)" ( (pointer_expression "*(code *)PTR_free_0003c320" * (cast_expression "(code *)PTR_free_0003c320" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_30)" ( identifier ))) ;) (expression_statement "local_4c = local_48[0];" (assignment_expression "local_4c = local_48[0]" identifier = (subscript_expression "local_48[0]" identifier [ number_literal ])) ;) (expression_statement "unaff_s8 = pppppppiVar25;" (assignment_expression "unaff_s8 = pppppppiVar25" identifier = identifier) ;) (if_statement "if (local_48[0] == 0) goto LAB_000207d0;" if (parenthesized_expression "(local_48[0] == 0)" ( (binary_expression "local_48[0] == 0" (subscript_expression "local_48[0]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_000207d0;" goto statement_identifier ;)) (goto_statement "goto LAB_00020920;" goto statement_identifier ;) })) (labeled_statement "LAB_00020768:\n                    pppppppiVar23 = param_3;" statement_identifier : (expression_statement "pppppppiVar23 = param_3;" (assignment_expression "pppppppiVar23 = param_3" identifier = identifier) ;)) (expression_statement "iVar6 = (*pcVar16)(param_1,ppppppiVar4);" (assignment_expression "iVar6 = (*pcVar16)(param_1,ppppppiVar4)" identifier = (call_expression "(*pcVar16)(param_1,ppppppiVar4)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(param_1,ppppppiVar4)" ( identifier , identifier )))) ;) (expression_statement "unaff_s8 = pppppppiVar25;" (assignment_expression "unaff_s8 = pppppppiVar25" identifier = identifier) ;) (if_statement "if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }" { (labeled_statement "LAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);" statement_identifier : (expression_statement "pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);" (assignment_expression "pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29)" identifier = (cast_expression "(int *******)(pppppppiVar30[3] + (int)pppppppiVar29)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppppiVar30[3] + (int)pppppppiVar29)" ( (binary_expression "pppppppiVar30[3] + (int)pppppppiVar29" (subscript_expression "pppppppiVar30[3]" identifier [ number_literal ]) + (cast_expression "(int)pppppppiVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "pppppppiVar22 = (int *******)*pppppppiVar28;" (assignment_expression "pppppppiVar22 = (int *******)*pppppppiVar28" identifier = (cast_expression "(int *******)*pppppppiVar28" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppiVar28" * identifier))) ;) (expression_statement "iVar6 = (*pcVar17)(puVar1);" (assignment_expression "iVar6 = (*pcVar17)(puVar1)" identifier = (call_expression "(*pcVar17)(puVar1)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(puVar1)" ( identifier )))) ;) (if_statement "if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }" { (labeled_statement "LAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);" statement_identifier : (expression_statement "(*(code *)PTR_free_0003c320)(local_30);" (call_expression "(*(code *)PTR_free_0003c320)(local_30)" (parenthesized_expression "(*(code *)PTR_free_0003c320)" ( (pointer_expression "*(code *)PTR_free_0003c320" * (cast_expression "(code *)PTR_free_0003c320" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_30)" ( identifier ))) ;)) (expression_statement "local_4c = 0xc;" (assignment_expression "local_4c = 0xc" identifier = number_literal) ;) (goto_statement "goto LAB_00020920;" goto statement_identifier ;) })) })) (expression_statement "ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);" (assignment_expression "ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1)" identifier = (cast_expression "(int ******)((int)ppppppiVar32 + 1)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)ppppppiVar32 + 1)" ( (binary_expression "(int)ppppppiVar32 + 1" (cast_expression "(int)ppppppiVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int)ppppppiVar32 < (int)unaff_s7[5])" ( (binary_expression "(int)ppppppiVar32 < (int)unaff_s7[5]" (cast_expression "(int)ppppppiVar32" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)unaff_s7[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "unaff_s7[5]" identifier [ number_literal ]))) )) ;) })) (expression_statement "(*(code *)PTR_free_0003c320)(local_30);" (call_expression "(*(code *)PTR_free_0003c320)(local_30)" (parenthesized_expression "(*(code *)PTR_free_0003c320)" ( (pointer_expression "*(code *)PTR_free_0003c320" * (cast_expression "(code *)PTR_free_0003c320" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_30)" ( identifier ))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) })) (labeled_statement "LAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }" statement_identifier : (if_statement "if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }" if (parenthesized_expression "(local_48[2] != 0)" ( (binary_expression "local_48[2] != 0" (subscript_expression "local_48[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }" { (expression_statement "pppppppiVar22 = (int *******)puVar1;" (assignment_expression "pppppppiVar22 = (int *******)puVar1" identifier = (cast_expression "(int *******)puVar1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) identifier)) ;) (expression_statement "pppppppiVar23 = pppppppiVar3;" (assignment_expression "pppppppiVar23 = pppppppiVar3" identifier = identifier) ;) (expression_statement "pppppppiVar7 = param_7;" (assignment_expression "pppppppiVar7 = param_7" identifier = identifier) ;) (expression_statement "local_4c = (*pcVar15)(pppppppiVar12);" (assignment_expression "local_4c = (*pcVar15)(pppppppiVar12)" identifier = (call_expression "(*pcVar15)(pppppppiVar12)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(pppppppiVar12)" ( identifier )))) ;) (expression_statement "pppppppiVar28 = pppppppiVar25;" (assignment_expression "pppppppiVar28 = pppppppiVar25" identifier = identifier) ;) (expression_statement "unaff_s8 = pppppppiVar25;" (assignment_expression "unaff_s8 = pppppppiVar25" identifier = identifier) ;) (if_statement "if (local_4c != 0) goto LAB_00020920;" if (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 0" identifier != number_literal) )) (goto_statement "goto LAB_00020920;" goto statement_identifier ;)) (expression_statement "local_a8 = param_7;" (assignment_expression "local_a8 = param_7" identifier = identifier) ;) (expression_statement "pppppppiVar22 = (int *******)puVar1;" (assignment_expression "pppppppiVar22 = (int *******)puVar1" identifier = (cast_expression "(int *******)puVar1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) identifier)) ;) (expression_statement "pppppppiVar23 = pppppppiVar25;" (assignment_expression "pppppppiVar23 = pppppppiVar25" identifier = identifier) ;) (expression_statement "pppppppiVar7 = pppppppiVar3;" (assignment_expression "pppppppiVar7 = pppppppiVar3" identifier = identifier) ;) (expression_statement "local_4c = FUN_0001c580(param_1);" (assignment_expression "local_4c = FUN_0001c580(param_1)" identifier = (call_expression "FUN_0001c580(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (local_4c != 0) goto LAB_00020920;" if (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 0" identifier != number_literal) )) (goto_statement "goto LAB_00020920;" goto statement_identifier ;)) }))) (expression_statement "ppppppiVar4 = param_1[0x16];" (assignment_expression "ppppppiVar4 = param_1[0x16]" identifier = (subscript_expression "param_1[0x16]" identifier [ number_literal ])) ;) }))) (expression_statement "pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);" (assignment_expression "pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4)" identifier = (cast_expression "(int *******)(*local_6c)(param_1,param_3,ppppppiVar4)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*local_6c)(param_1,param_3,ppppppiVar4)" (parenthesized_expression "(*local_6c)" ( (pointer_expression "*local_6c" * identifier) )) (argument_list "(param_1,param_3,ppppppiVar4)" ( identifier , identifier , identifier ))))) ;) (expression_statement "pppppppiVar22 = pppppppiVar12;" (assignment_expression "pppppppiVar22 = pppppppiVar12" identifier = identifier) ;) (expression_statement "pppppppiVar23 = (int *******)puVar1;" (assignment_expression "pppppppiVar23 = (int *******)puVar1" identifier = (cast_expression "(int *******)puVar1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) identifier)) ;) (expression_statement "unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);" (assignment_expression "unaff_s7 = (int ******)FUN_0001bd4c(&local_4c)" identifier = (cast_expression "(int ******)FUN_0001bd4c(&local_4c)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_0001bd4c(&local_4c)" identifier (argument_list "(&local_4c)" ( (pointer_expression "&local_4c" & identifier) ))))) ;) (if_statement "if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }" if (parenthesized_expression "(unaff_s7 == (int ******)0x0)" ( (binary_expression "unaff_s7 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }" { (expression_statement "pppppppiVar28 = pppppppiVar25;" (assignment_expression "pppppppiVar28 = pppppppiVar25" identifier = identifier) ;) (expression_statement "unaff_s8 = pppppppiVar25;" (assignment_expression "unaff_s8 = pppppppiVar25" identifier = identifier) ;) (if_statement "if (local_4c != 0) goto LAB_00020920;" if (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 0" identifier != number_literal) )) (goto_statement "goto LAB_00020920;" goto statement_identifier ;)) (expression_statement "ppppppiVar4 = param_1[0x19];" (assignment_expression "ppppppiVar4 = param_1[0x19]" identifier = (subscript_expression "param_1[0x19]" identifier [ number_literal ])) ;) (expression_statement "local_8c = local_8c + 1;" (assignment_expression "local_8c = local_8c + 1" identifier = (binary_expression "local_8c + 1" identifier + number_literal)) ;) (expression_statement "unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);" (assignment_expression "unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25)" identifier = (cast_expression "(int *******)(ppppppiVar4 + (int)pppppppiVar25)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(ppppppiVar4 + (int)pppppppiVar25)" ( (binary_expression "ppppppiVar4 + (int)pppppppiVar25" identifier + (cast_expression "(int)pppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*unaff_s5 = (int ******)0x0;" (assignment_expression "*unaff_s5 = (int ******)0x0" (pointer_expression "*unaff_s5" * identifier) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) }) (else_clause "else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }" else (compound_statement "{\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }" { (expression_statement "ppppppiVar4 = param_1[0x19];" (assignment_expression "ppppppiVar4 = param_1[0x19]" identifier = (subscript_expression "param_1[0x19]" identifier [ number_literal ])) ;) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" identifier = number_literal) ;) (expression_statement "unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);" (assignment_expression "unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25)" identifier = (cast_expression "(int *******)(ppppppiVar4 + (int)pppppppiVar25)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(ppppppiVar4 + (int)pppppppiVar25)" ( (binary_expression "ppppppiVar4 + (int)pppppppiVar25" identifier + (cast_expression "(int)pppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*unaff_s5 = unaff_s7;" (assignment_expression "*unaff_s5 = unaff_s7" (pointer_expression "*unaff_s5" * identifier) = identifier) ;) }))) (expression_statement "unaff_s8 = pppppppiVar25;" (assignment_expression "unaff_s8 = pppppppiVar25" identifier = identifier) ;) }) while (parenthesized_expression "(((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]))" ( (binary_expression "((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e])" (parenthesized_expression "((int)pppppppiVar25 < param_6)" ( (binary_expression "(int)pppppppiVar25 < param_6" (cast_expression "(int)pppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) && (parenthesized_expression "(unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e])" ( (comma_expression "unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]" (assignment_expression "unaff_s8 = (int *******)((int)pppppppiVar25 + 1)" identifier = (cast_expression "(int *******)((int)pppppppiVar25 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar25 + 1)" ( (binary_expression "(int)pppppppiVar25 + 1" (cast_expression "(int)pppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]" (assignment_expression "pppppppiVar28 = pppppppiVar25" identifier = identifier) , (binary_expression "local_8c <= (int)param_1[0x1e]" identifier <= (cast_expression "(int)param_1[0x1e]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x1e]" identifier [ number_literal ]))))) ))) )) ;) })) (expression_statement "(*(code *)PTR_free_0003c320)(local_3c);" (call_expression "(*(code *)PTR_free_0003c320)(local_3c)" (parenthesized_expression "(*(code *)PTR_free_0003c320)" ( (pointer_expression "*(code *)PTR_free_0003c320" * (cast_expression "(code *)PTR_free_0003c320" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_3c)" ( identifier ))) ;) (expression_statement "pppppiVar8 = param_1[0x19][param_6];" (assignment_expression "pppppiVar8 = param_1[0x19][param_6]" identifier = (subscript_expression "param_1[0x19][param_6]" (subscript_expression "param_1[0x19]" identifier [ number_literal ]) [ identifier ])) ;) (expression_statement "pppppppiVar28 = pppppppiVar25;" (assignment_expression "pppppppiVar28 = pppppppiVar25" identifier = identifier) ;) (if_statement "if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }" if (parenthesized_expression "(pppppiVar8 == (int *****)0x0)" ( (binary_expression "pppppiVar8 == (int *****)0x0" identifier == (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }" { (expression_statement "*param_2 = (int ******)pppppppiVar25;" (assignment_expression "*param_2 = (int ******)pppppppiVar25" (pointer_expression "*param_2" * identifier) = (cast_expression "(int ******)pppppppiVar25" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "param_1[0x19] = ppppppiVar13;" (assignment_expression "param_1[0x19] = ppppppiVar13" (subscript_expression "param_1[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[10] = ppppppiVar14;" (assignment_expression "param_1[10] = ppppppiVar14" (subscript_expression "param_1[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }" else (compound_statement "{\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }" { (expression_statement "pppppppiVar22 = (int *******)(pppppiVar8 + 3);" (assignment_expression "pppppppiVar22 = (int *******)(pppppiVar8 + 3)" identifier = (cast_expression "(int *******)(pppppiVar8 + 3)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppiVar8 + 3)" ( (binary_expression "pppppiVar8 + 3" identifier + number_literal) )))) ;) (expression_statement "*param_2 = (int ******)pppppppiVar25;" (assignment_expression "*param_2 = (int ******)pppppppiVar25" (pointer_expression "*param_2" * identifier) = (cast_expression "(int ******)pppppppiVar25" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "param_1[10] = ppppppiVar14;" (assignment_expression "param_1[10] = ppppppiVar14" (subscript_expression "param_1[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppiVar19 = pppppiVar8[2];" (assignment_expression "ppppiVar19 = pppppiVar8[2]" identifier = (subscript_expression "pppppiVar8[2]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x19] = ppppppiVar13;" (assignment_expression "param_1[0x19] = ppppppiVar13" (subscript_expression "param_1[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar6 = FUN_0001a2d0(ppppiVar19);" (assignment_expression "iVar6 = FUN_0001a2d0(ppppiVar19)" identifier = (call_expression "FUN_0001a2d0(ppppiVar19)" identifier (argument_list "(ppppiVar19)" ( identifier )))) ;) (expression_statement "uVar10 = (uint)(iVar6 == 0);" (assignment_expression "uVar10 = (uint)(iVar6 == 0)" identifier = (call_expression "(uint)(iVar6 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )))) ;) (expression_statement "pppppppiVar23 = param_5;" (assignment_expression "pppppppiVar23 = param_5" identifier = identifier) ;) }))) }) (else_clause "else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }" else (compound_statement "{\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }" { (expression_statement "pppppppiVar22 = (int *******)(unaff_s7 + 1);" (assignment_expression "pppppppiVar22 = (int *******)(unaff_s7 + 1)" identifier = (cast_expression "(int *******)(unaff_s7 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(unaff_s7 + 1)" ( (binary_expression "unaff_s7 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar10 = FUN_0001ba80(local_48 + 1);" (assignment_expression "uVar10 = FUN_0001ba80(local_48 + 1)" identifier = (call_expression "FUN_0001ba80(local_48 + 1)" identifier (argument_list "(local_48 + 1)" ( (binary_expression "local_48 + 1" identifier + number_literal) )))) ;) (expression_statement "local_4c = uVar10;" (assignment_expression "local_4c = uVar10" identifier = identifier) ;) (if_statement "if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }" { (if_statement "if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;" if (parenthesized_expression "(((uint)unaff_s7[0xd] & 0x2000000) == 0)" ( (binary_expression "((uint)unaff_s7[0xd] & 0x2000000) == 0" (parenthesized_expression "((uint)unaff_s7[0xd] & 0x2000000)" ( (binary_expression "(uint)unaff_s7[0xd] & 0x2000000" (cast_expression "(uint)unaff_s7[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "unaff_s7[0xd]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00020670;" goto statement_identifier ;)) (goto_statement "goto LAB_00020ab8;" goto statement_identifier ;) })) }))) }))) }) (else_clause "else {\n    pppppppiVar28 = (int *******)((int)pppppppiVar23 + 1);\n    ppppppiVar32 = (int ******)((int)pppppppiVar30 + (int)pppppppiVar28);\n    if (((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&\n       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)) {\n      pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);\n      ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);\n      puVar2 = PTR_memset_0003c290;\n      if (ppppppiVar13 != (int ******)0x0) {\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }\n    }\nLAB_00020c64:\n    uVar10 = 0xc;\n  }" else (compound_statement "{\n    pppppppiVar28 = (int *******)((int)pppppppiVar23 + 1);\n    ppppppiVar32 = (int ******)((int)pppppppiVar30 + (int)pppppppiVar28);\n    if (((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&\n       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)) {\n      pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);\n      ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);\n      puVar2 = PTR_memset_0003c290;\n      if (ppppppiVar13 != (int ******)0x0) {\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }\n    }\nLAB_00020c64:\n    uVar10 = 0xc;\n  }" { (expression_statement "pppppppiVar28 = (int *******)((int)pppppppiVar23 + 1);" (assignment_expression "pppppppiVar28 = (int *******)((int)pppppppiVar23 + 1)" identifier = (cast_expression "(int *******)((int)pppppppiVar23 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar23 + 1)" ( (binary_expression "(int)pppppppiVar23 + 1" (cast_expression "(int)pppppppiVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ppppppiVar32 = (int ******)((int)pppppppiVar30 + (int)pppppppiVar28);" (assignment_expression "ppppppiVar32 = (int ******)((int)pppppppiVar30 + (int)pppppppiVar28)" identifier = (cast_expression "(int ******)((int)pppppppiVar30 + (int)pppppppiVar28)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)pppppppiVar30 + (int)pppppppiVar28)" ( (binary_expression "(int)pppppppiVar30 + (int)pppppppiVar28" (cast_expression "(int)pppppppiVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppiVar28" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&\n       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)) {\n      pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);\n      ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);\n      puVar2 = PTR_memset_0003c290;\n      if (ppppppiVar13 != (int ******)0x0) {\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }\n    }" if (parenthesized_expression "(((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&\n       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000))" ( (binary_expression "((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&\n       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)" (parenthesized_expression "((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30)" ( (binary_expression "(int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30" (cast_expression "(int)pppppppiVar28" ( (type_descriptor "int" primitive_type) ) identifier) <= (binary_expression "0x7fffffff - (int)pppppppiVar30" number_literal - (cast_expression "(int)pppppppiVar30" ( (type_descriptor "int" primitive_type) ) identifier))) )) && (parenthesized_expression "(unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)" ( (comma_expression "unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000" (assignment_expression "unaff_s5 = param_2" identifier = identifier) , (binary_expression "ppppppiVar32 < (int ******)0x40000000" identifier < (cast_expression "(int ******)0x40000000" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal))) ))) )) (compound_statement "{\n      pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);\n      ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);\n      puVar2 = PTR_memset_0003c290;\n      if (ppppppiVar13 != (int ******)0x0) {\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }\n    }" { (expression_statement "pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);" (assignment_expression "pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4)" identifier = (cast_expression "(int *******)((int)ppppppiVar32 * 4)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)ppppppiVar32 * 4)" ( (binary_expression "(int)ppppppiVar32 * 4" (cast_expression "(int)ppppppiVar32" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);" (assignment_expression "ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2])" identifier = (cast_expression "(int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2])" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(*(code *)PTR_realloc_0003c2b8)(param_2[2])" (parenthesized_expression "(*(code *)PTR_realloc_0003c2b8)" ( (pointer_expression "*(code *)PTR_realloc_0003c2b8" * (cast_expression "(code *)PTR_realloc_0003c2b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2[2])" ( (subscript_expression "param_2[2]" identifier [ number_literal ]) ))))) ;) (expression_statement "puVar2 = PTR_memset_0003c290;" (assignment_expression "puVar2 = PTR_memset_0003c290" identifier = identifier) ;) (if_statement "if (ppppppiVar13 != (int ******)0x0) {\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }" if (parenthesized_expression "(ppppppiVar13 != (int ******)0x0)" ( (binary_expression "ppppppiVar13 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }" { (expression_statement "param_2[2] = ppppppiVar13;" (assignment_expression "param_2[2] = ppppppiVar13" (subscript_expression "param_2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[1] = ppppppiVar32;" (assignment_expression "param_2[1] = ppppppiVar32" (subscript_expression "param_2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);" (call_expression "(*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4)" ( (binary_expression "ppppppiVar13 + (int)pppppppiVar30" identifier + (cast_expression "(int)pppppppiVar30" ( (type_descriptor "int" primitive_type) ) identifier)) , number_literal , (binary_expression "(int)pppppppiVar28 * 4" (cast_expression "(int)pppppppiVar28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) ;) (goto_statement "goto LAB_000205e8;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00020c64:\n    uVar10 = 0xc;" statement_identifier : (expression_statement "uVar10 = 0xc;" (assignment_expression "uVar10 = 0xc" identifier = number_literal) ;)) }))) (if_statement "if (local_2c == *(undefined4 **)puVar35) {\n    return uVar10;\n  }" if (parenthesized_expression "(local_2c == *(undefined4 **)puVar35)" ( (binary_expression "local_2c == *(undefined4 **)puVar35" identifier == (pointer_expression "*(undefined4 **)puVar35" * (cast_expression "(undefined4 **)puVar35" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return uVar10;\n  }" { (return_statement "return uVar10;" return identifier ;) })) (expression_statement "pcVar15 = FUN_00020ca0;" (assignment_expression "pcVar15 = FUN_00020ca0" identifier = identifier) ;) (expression_statement "puVar21 = local_2c;" (assignment_expression "puVar21 = local_2c" identifier = identifier) ;) (expression_statement "puVar35 = PTR___stack_chk_fail_0003c2f4;" (assignment_expression "puVar35 = PTR___stack_chk_fail_0003c2f4" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0003c2f4)();" (call_expression "(*(code *)PTR___stack_chk_fail_0003c2f4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0003c2f4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0003c2f4" * (cast_expression "(code *)PTR___stack_chk_fail_0003c2f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "appppppiStack_138[0] = (int ******)(puVar35 + 0x23430);" (assignment_expression "appppppiStack_138[0] = (int ******)(puVar35 + 0x23430)" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) = (cast_expression "(int ******)(puVar35 + 0x23430)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar35 + 0x23430)" ( (binary_expression "puVar35 + 0x23430" identifier + number_literal) )))) ;) (expression_statement "puVar37 = auStack_150;" (assignment_expression "puVar37 = auStack_150" identifier = identifier) ;) (expression_statement "puVar38 = auStack_150;" (assignment_expression "puVar38 = auStack_150" identifier = identifier) ;) (expression_statement "piStack_12c = *(int **)(puVar35 + 0x1b674);" (assignment_expression "piStack_12c = *(int **)(puVar35 + 0x1b674)" identifier = (pointer_expression "*(int **)(puVar35 + 0x1b674)" * (cast_expression "(int **)(puVar35 + 0x1b674)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + 0x1b674)" ( (binary_expression "puVar35 + 0x1b674" identifier + number_literal) ))))) ;) (expression_statement "uStack_ec = 2;" (assignment_expression "uStack_ec = 2" identifier = number_literal) ;) (expression_statement "piStack_f0 = (int *)0x0;" (assignment_expression "piStack_f0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iStack_e8 = 0;" (assignment_expression "iStack_e8 = 0" identifier = number_literal) ;) (expression_statement "iStack_e4 = *piStack_12c;" (assignment_expression "iStack_e4 = *piStack_12c" identifier = (pointer_expression "*piStack_12c" * identifier)) ;) (expression_statement "piVar34 = (int *)*puVar21;" (assignment_expression "piVar34 = (int *)*puVar21" identifier = (cast_expression "(int *)*puVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ;) (expression_statement "pppppppiVar3 = pppppppiVar22;" (assignment_expression "pppppppiVar3 = pppppppiVar22" identifier = identifier) ;) (expression_statement "pppppppiVar12 = pppppppiVar23;" (assignment_expression "pppppppiVar12 = pppppppiVar23" identifier = identifier) ;) (expression_statement "pppppppiVar25 = pppppppiVar7;" (assignment_expression "pppppppiVar25 = pppppppiVar7" identifier = identifier) ;) (expression_statement "pppppppiStack_e0 = pppppppiVar28;" (assignment_expression "pppppppiStack_e0 = pppppppiVar28" identifier = identifier) ;) (expression_statement "pppppppiStack_dc = param_4;" (assignment_expression "pppppppiStack_dc = param_4" identifier = identifier) ;) (expression_statement "pppppppiStack_d8 = pppppppiVar30;" (assignment_expression "pppppppiStack_d8 = pppppppiVar30" identifier = identifier) ;) (expression_statement "pppppppiStack_d4 = param_3;" (assignment_expression "pppppppiStack_d4 = param_3" identifier = identifier) ;) (expression_statement "ppppppiStack_d0 = ppppppiVar32;" (assignment_expression "ppppppiStack_d0 = ppppppiVar32" identifier = identifier) ;) (expression_statement "pppppppiStack_cc = unaff_s5;" (assignment_expression "pppppppiStack_cc = unaff_s5" identifier = identifier) ;) (expression_statement "pppppppiStack_c8 = param_1;" (assignment_expression "pppppppiStack_c8 = param_1" identifier = identifier) ;) (expression_statement "ppppppiStack_c4 = unaff_s7;" (assignment_expression "ppppppiStack_c4 = unaff_s7" identifier = identifier) ;) (expression_statement "pppppppiStack_c0 = unaff_s8;" (assignment_expression "pppppppiStack_c0 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_bc = pcVar15;" (assignment_expression "pcStack_bc = pcVar15" identifier = identifier) ;) (if_statement "if ((char)local_a8 == '\0') {\n    pppppppiVar28 = (int *******)piVar34[0x12];\n    ppiVar33 = (int **)0x0;\n    if ((uint)((int)pppppppiVar23 << 3) < 0xfc0) goto LAB_00020d5c;\nLAB_00021488:\n    pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n    ppppppiStack_f4 = (int ******)0x0;\n    uStack_f8 = 0;\n    ppppppiStack_fc = (int ******)0x0;\n    param_3 = &ppppppiStack_fc;\n    pppppppiStack_124 = (int *******)(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c);\n    iStack_128 = 1;\n    if (pppppppiStack_124 != (int *******)0x0) goto LAB_00020d6c;\n    puVar37 = auStack_150;\n    if (ppiVar33 == (int **)0x0) {\n      uVar10 = 0xc;\n      goto LAB_00020f18;\n    }\nLAB_0002112c:\n    param_3 = &ppppppiStack_fc;\n    FUN_0001ec78(ppiVar33);\n    puVar39 = puVar37;\n  }\n  else {\n    ppiVar33 = &piStack_f0;\n    iStack_e8 = (**(code **)(puVar35 + 0x1b614))(0x30);\n    puVar39 = auStack_150;\n    if (iStack_e8 != 0) {\n      pppppppiVar28 = (int *******)piVar34[0x12];\n      if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n      ppppppiStack_f4 = (int ******)0x0;\n      uStack_f8 = 0;\n      ppppppiStack_fc = (int ******)0x0;\n      puVar37 = auStack_150 + (int)pppppppiVar23 * -8;\n      iStack_128 = 0;\n      pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;\nLAB_00020d6c:\n      param_3 = &ppppppiStack_fc;\n      pppppppiVar3 = pppppppiVar7;\n      pppppppiVar12 = pppppppiStack_11c;\n      (*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);\n      pppppppiStack_100 = (int *******)*pppppppiVar7;\n      ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);\n      ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);\n      ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);\nLAB_00020db0:\n      pppppppiVar29 = (int *******)pppppppiVar7[1];\n      ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n      ppppppiVar32 = appppppiStack_138[0];\n      puVar38 = puVar37;\n      if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }\n      pppppppiVar25 = pppppppiStack_100;\n      (*(code *)ppppiVar19)(ppppppiStack_f4);\n      if (iStack_128 == 0) {\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }\n      else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      FUN_0001ec78(ppiVar33);\nLAB_00020f14:\n      uVar10 = 0;\n      goto LAB_00020f18;\n    }\n  }" if (parenthesized_expression "((char)local_a8 == '\0')" ( (binary_expression "(char)local_a8 == '\0'" (cast_expression "(char)local_a8" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pppppppiVar28 = (int *******)piVar34[0x12];\n    ppiVar33 = (int **)0x0;\n    if ((uint)((int)pppppppiVar23 << 3) < 0xfc0) goto LAB_00020d5c;\nLAB_00021488:\n    pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n    ppppppiStack_f4 = (int ******)0x0;\n    uStack_f8 = 0;\n    ppppppiStack_fc = (int ******)0x0;\n    param_3 = &ppppppiStack_fc;\n    pppppppiStack_124 = (int *******)(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c);\n    iStack_128 = 1;\n    if (pppppppiStack_124 != (int *******)0x0) goto LAB_00020d6c;\n    puVar37 = auStack_150;\n    if (ppiVar33 == (int **)0x0) {\n      uVar10 = 0xc;\n      goto LAB_00020f18;\n    }\nLAB_0002112c:\n    param_3 = &ppppppiStack_fc;\n    FUN_0001ec78(ppiVar33);\n    puVar39 = puVar37;\n  }" { (expression_statement "pppppppiVar28 = (int *******)piVar34[0x12];" (assignment_expression "pppppppiVar28 = (int *******)piVar34[0x12]" identifier = (cast_expression "(int *******)piVar34[0x12]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "piVar34[0x12]" identifier [ number_literal ]))) ;) (expression_statement "ppiVar33 = (int **)0x0;" (assignment_expression "ppiVar33 = (int **)0x0" identifier = (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if ((uint)((int)pppppppiVar23 << 3) < 0xfc0) goto LAB_00020d5c;" if (parenthesized_expression "((uint)((int)pppppppiVar23 << 3) < 0xfc0)" ( (binary_expression "(uint)((int)pppppppiVar23 << 3) < 0xfc0" (call_expression "(uint)((int)pppppppiVar23 << 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pppppppiVar23 << 3)" ( (binary_expression "(int)pppppppiVar23 << 3" (cast_expression "(int)pppppppiVar23" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) < number_literal) )) (goto_statement "goto LAB_00020d5c;" goto statement_identifier ;)) (labeled_statement "LAB_00021488:\n    pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);" statement_identifier : (expression_statement "pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);" (assignment_expression "pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3)" identifier = (cast_expression "(int *******)((int)pppppppiVar23 << 3)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar23 << 3)" ( (binary_expression "(int)pppppppiVar23 << 3" (cast_expression "(int)pppppppiVar23" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;)) (expression_statement "ppppppiStack_f4 = (int ******)0x0;" (assignment_expression "ppppppiStack_f4 = (int ******)0x0" identifier = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "uStack_f8 = 0;" (assignment_expression "uStack_f8 = 0" identifier = number_literal) ;) (expression_statement "ppppppiStack_fc = (int ******)0x0;" (assignment_expression "ppppppiStack_fc = (int ******)0x0" identifier = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "param_3 = &ppppppiStack_fc;" (assignment_expression "param_3 = &ppppppiStack_fc" identifier = (pointer_expression "&ppppppiStack_fc" & identifier)) ;) (expression_statement "pppppppiStack_124 = (int *******)(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c);" (assignment_expression "pppppppiStack_124 = (int *******)(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c)" identifier = (cast_expression "(int *******)(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c)" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f87])" ( (pointer_expression "*(code *)appppppiStack_138[0][-0x1f87]" * (cast_expression "(code *)appppppiStack_138[0][-0x1f87]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "appppppiStack_138[0][-0x1f87]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(pppppppiStack_11c)" ( identifier ))))) ;) (expression_statement "iStack_128 = 1;" (assignment_expression "iStack_128 = 1" identifier = number_literal) ;) (if_statement "if (pppppppiStack_124 != (int *******)0x0) goto LAB_00020d6c;" if (parenthesized_expression "(pppppppiStack_124 != (int *******)0x0)" ( (binary_expression "pppppppiStack_124 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00020d6c;" goto statement_identifier ;)) (expression_statement "puVar37 = auStack_150;" (assignment_expression "puVar37 = auStack_150" identifier = identifier) ;) (if_statement "if (ppiVar33 == (int **)0x0) {\n      uVar10 = 0xc;\n      goto LAB_00020f18;\n    }" if (parenthesized_expression "(ppiVar33 == (int **)0x0)" ( (binary_expression "ppiVar33 == (int **)0x0" identifier == (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n      uVar10 = 0xc;\n      goto LAB_00020f18;\n    }" { (expression_statement "uVar10 = 0xc;" (assignment_expression "uVar10 = 0xc" identifier = number_literal) ;) (goto_statement "goto LAB_00020f18;" goto statement_identifier ;) })) (labeled_statement "LAB_0002112c:\n    param_3 = &ppppppiStack_fc;" statement_identifier : (expression_statement "param_3 = &ppppppiStack_fc;" (assignment_expression "param_3 = &ppppppiStack_fc" identifier = (pointer_expression "&ppppppiStack_fc" & identifier)) ;)) (expression_statement "FUN_0001ec78(ppiVar33);" (call_expression "FUN_0001ec78(ppiVar33)" identifier (argument_list "(ppiVar33)" ( identifier ))) ;) (expression_statement "puVar39 = puVar37;" (assignment_expression "puVar39 = puVar37" identifier = identifier) ;) }) (else_clause "else {\n    ppiVar33 = &piStack_f0;\n    iStack_e8 = (**(code **)(puVar35 + 0x1b614))(0x30);\n    puVar39 = auStack_150;\n    if (iStack_e8 != 0) {\n      pppppppiVar28 = (int *******)piVar34[0x12];\n      if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n      ppppppiStack_f4 = (int ******)0x0;\n      uStack_f8 = 0;\n      ppppppiStack_fc = (int ******)0x0;\n      puVar37 = auStack_150 + (int)pppppppiVar23 * -8;\n      iStack_128 = 0;\n      pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;\nLAB_00020d6c:\n      param_3 = &ppppppiStack_fc;\n      pppppppiVar3 = pppppppiVar7;\n      pppppppiVar12 = pppppppiStack_11c;\n      (*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);\n      pppppppiStack_100 = (int *******)*pppppppiVar7;\n      ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);\n      ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);\n      ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);\nLAB_00020db0:\n      pppppppiVar29 = (int *******)pppppppiVar7[1];\n      ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n      ppppppiVar32 = appppppiStack_138[0];\n      puVar38 = puVar37;\n      if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }\n      pppppppiVar25 = pppppppiStack_100;\n      (*(code *)ppppiVar19)(ppppppiStack_f4);\n      if (iStack_128 == 0) {\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }\n      else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      FUN_0001ec78(ppiVar33);\nLAB_00020f14:\n      uVar10 = 0;\n      goto LAB_00020f18;\n    }\n  }" else (compound_statement "{\n    ppiVar33 = &piStack_f0;\n    iStack_e8 = (**(code **)(puVar35 + 0x1b614))(0x30);\n    puVar39 = auStack_150;\n    if (iStack_e8 != 0) {\n      pppppppiVar28 = (int *******)piVar34[0x12];\n      if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n      ppppppiStack_f4 = (int ******)0x0;\n      uStack_f8 = 0;\n      ppppppiStack_fc = (int ******)0x0;\n      puVar37 = auStack_150 + (int)pppppppiVar23 * -8;\n      iStack_128 = 0;\n      pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;\nLAB_00020d6c:\n      param_3 = &ppppppiStack_fc;\n      pppppppiVar3 = pppppppiVar7;\n      pppppppiVar12 = pppppppiStack_11c;\n      (*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);\n      pppppppiStack_100 = (int *******)*pppppppiVar7;\n      ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);\n      ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);\n      ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);\nLAB_00020db0:\n      pppppppiVar29 = (int *******)pppppppiVar7[1];\n      ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n      ppppppiVar32 = appppppiStack_138[0];\n      puVar38 = puVar37;\n      if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }\n      pppppppiVar25 = pppppppiStack_100;\n      (*(code *)ppppiVar19)(ppppppiStack_f4);\n      if (iStack_128 == 0) {\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }\n      else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      FUN_0001ec78(ppiVar33);\nLAB_00020f14:\n      uVar10 = 0;\n      goto LAB_00020f18;\n    }\n  }" { (expression_statement "ppiVar33 = &piStack_f0;" (assignment_expression "ppiVar33 = &piStack_f0" identifier = (pointer_expression "&piStack_f0" & identifier)) ;) (expression_statement "iStack_e8 = (**(code **)(puVar35 + 0x1b614))(0x30);" (assignment_expression "iStack_e8 = (**(code **)(puVar35 + 0x1b614))(0x30)" identifier = (call_expression "(**(code **)(puVar35 + 0x1b614))(0x30)" (parenthesized_expression "(**(code **)(puVar35 + 0x1b614))" ( (pointer_expression "**(code **)(puVar35 + 0x1b614)" * (pointer_expression "*(code **)(puVar35 + 0x1b614)" * (cast_expression "(code **)(puVar35 + 0x1b614)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + 0x1b614)" ( (binary_expression "puVar35 + 0x1b614" identifier + number_literal) ))))) )) (argument_list "(0x30)" ( number_literal )))) ;) (expression_statement "puVar39 = auStack_150;" (assignment_expression "puVar39 = auStack_150" identifier = identifier) ;) (if_statement "if (iStack_e8 != 0) {\n      pppppppiVar28 = (int *******)piVar34[0x12];\n      if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n      ppppppiStack_f4 = (int ******)0x0;\n      uStack_f8 = 0;\n      ppppppiStack_fc = (int ******)0x0;\n      puVar37 = auStack_150 + (int)pppppppiVar23 * -8;\n      iStack_128 = 0;\n      pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;\nLAB_00020d6c:\n      param_3 = &ppppppiStack_fc;\n      pppppppiVar3 = pppppppiVar7;\n      pppppppiVar12 = pppppppiStack_11c;\n      (*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);\n      pppppppiStack_100 = (int *******)*pppppppiVar7;\n      ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);\n      ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);\n      ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);\nLAB_00020db0:\n      pppppppiVar29 = (int *******)pppppppiVar7[1];\n      ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n      ppppppiVar32 = appppppiStack_138[0];\n      puVar38 = puVar37;\n      if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }\n      pppppppiVar25 = pppppppiStack_100;\n      (*(code *)ppppiVar19)(ppppppiStack_f4);\n      if (iStack_128 == 0) {\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }\n      else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      FUN_0001ec78(ppiVar33);\nLAB_00020f14:\n      uVar10 = 0;\n      goto LAB_00020f18;\n    }" if (parenthesized_expression "(iStack_e8 != 0)" ( (binary_expression "iStack_e8 != 0" identifier != number_literal) )) (compound_statement "{\n      pppppppiVar28 = (int *******)piVar34[0x12];\n      if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n      ppppppiStack_f4 = (int ******)0x0;\n      uStack_f8 = 0;\n      ppppppiStack_fc = (int ******)0x0;\n      puVar37 = auStack_150 + (int)pppppppiVar23 * -8;\n      iStack_128 = 0;\n      pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;\nLAB_00020d6c:\n      param_3 = &ppppppiStack_fc;\n      pppppppiVar3 = pppppppiVar7;\n      pppppppiVar12 = pppppppiStack_11c;\n      (*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);\n      pppppppiStack_100 = (int *******)*pppppppiVar7;\n      ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);\n      ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);\n      ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);\nLAB_00020db0:\n      pppppppiVar29 = (int *******)pppppppiVar7[1];\n      ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n      ppppppiVar32 = appppppiStack_138[0];\n      puVar38 = puVar37;\n      if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }\n      pppppppiVar25 = pppppppiStack_100;\n      (*(code *)ppppiVar19)(ppppppiStack_f4);\n      if (iStack_128 == 0) {\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }\n      else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      FUN_0001ec78(ppiVar33);\nLAB_00020f14:\n      uVar10 = 0;\n      goto LAB_00020f18;\n    }" { (expression_statement "pppppppiVar28 = (int *******)piVar34[0x12];" (assignment_expression "pppppppiVar28 = (int *******)piVar34[0x12]" identifier = (cast_expression "(int *******)piVar34[0x12]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "piVar34[0x12]" identifier [ number_literal ]))) ;) (if_statement "if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;" if (parenthesized_expression "(0xfbf < (uint)((int)pppppppiVar23 << 3))" ( (binary_expression "0xfbf < (uint)((int)pppppppiVar23 << 3)" number_literal < (call_expression "(uint)((int)pppppppiVar23 << 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pppppppiVar23 << 3)" ( (binary_expression "(int)pppppppiVar23 << 3" (cast_expression "(int)pppppppiVar23" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) )) (goto_statement "goto LAB_00021488;" goto statement_identifier ;)) (labeled_statement "LAB_00020d5c:\n      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);" statement_identifier : (expression_statement "pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);" (assignment_expression "pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3)" identifier = (cast_expression "(int *******)((int)pppppppiVar23 << 3)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar23 << 3)" ( (binary_expression "(int)pppppppiVar23 << 3" (cast_expression "(int)pppppppiVar23" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;)) (expression_statement "ppppppiStack_f4 = (int ******)0x0;" (assignment_expression "ppppppiStack_f4 = (int ******)0x0" identifier = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "uStack_f8 = 0;" (assignment_expression "uStack_f8 = 0" identifier = number_literal) ;) (expression_statement "ppppppiStack_fc = (int ******)0x0;" (assignment_expression "ppppppiStack_fc = (int ******)0x0" identifier = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "puVar37 = auStack_150 + (int)pppppppiVar23 * -8;" (assignment_expression "puVar37 = auStack_150 + (int)pppppppiVar23 * -8" identifier = (binary_expression "auStack_150 + (int)pppppppiVar23 * -8" identifier + (binary_expression "(int)pppppppiVar23 * -8" (cast_expression "(int)pppppppiVar23" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "iStack_128 = 0;" (assignment_expression "iStack_128 = 0" identifier = number_literal) ;) (expression_statement "pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;" (assignment_expression "pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2" identifier = (binary_expression "appppppiStack_138 + (int)pppppppiVar23 * -2" identifier + (binary_expression "(int)pppppppiVar23 * -2" (cast_expression "(int)pppppppiVar23" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (labeled_statement "LAB_00020d6c:\n      param_3 = &ppppppiStack_fc;" statement_identifier : (expression_statement "param_3 = &ppppppiStack_fc;" (assignment_expression "param_3 = &ppppppiStack_fc" identifier = (pointer_expression "&ppppppiStack_fc" & identifier)) ;)) (expression_statement "pppppppiVar3 = pppppppiVar7;" (assignment_expression "pppppppiVar3 = pppppppiVar7" identifier = identifier) ;) (expression_statement "pppppppiVar12 = pppppppiStack_11c;" (assignment_expression "pppppppiVar12 = pppppppiStack_11c" identifier = identifier) ;) (expression_statement "(*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);" (call_expression "(*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124)" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f6e])" ( (pointer_expression "*(code *)appppppiStack_138[0][-0x1f6e]" * (cast_expression "(code *)appppppiStack_138[0][-0x1f6e]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "appppppiStack_138[0][-0x1f6e]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(pppppppiStack_124)" ( identifier ))) ;) (expression_statement "pppppppiStack_100 = (int *******)*pppppppiVar7;" (assignment_expression "pppppppiStack_100 = (int *******)*pppppppiVar7" identifier = (cast_expression "(int *******)*pppppppiVar7" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppiVar7" * identifier))) ;) (expression_statement "ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);" (assignment_expression "ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb)" identifier = (cast_expression "(int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(appppppiStack_138[0][-0x1fba] + -0x4bb)" ( (binary_expression "appppppiStack_138[0][-0x1fba] + -0x4bb" (subscript_expression "appppppiStack_138[0][-0x1fba]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]) + number_literal) )))) ;) (expression_statement "ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);" (assignment_expression "ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c)" identifier = (cast_expression "(int ****)(appppppiStack_138[0][-0x1fba] + -0x174c)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(appppppiStack_138[0][-0x1fba] + -0x174c)" ( (binary_expression "appppppiStack_138[0][-0x1fba] + -0x174c" (subscript_expression "appppppiStack_138[0][-0x1fba]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]) + number_literal) )))) ;) (expression_statement "ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);" (assignment_expression "ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece)" identifier = (cast_expression "(int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(appppppiStack_138[0][-0x1fba] + -0x1ece)" ( (binary_expression "appppppiStack_138[0][-0x1fba] + -0x1ece" (subscript_expression "appppppiStack_138[0][-0x1fba]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]) + number_literal) )))) ;) (labeled_statement "LAB_00020db0:\n      pppppppiVar29 = (int *******)pppppppiVar7[1];" statement_identifier : (expression_statement "pppppppiVar29 = (int *******)pppppppiVar7[1];" (assignment_expression "pppppppiVar29 = (int *******)pppppppiVar7[1]" identifier = (cast_expression "(int *******)pppppppiVar7[1]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar7[1]" identifier [ number_literal ]))) ;)) (expression_statement "ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];" (assignment_expression "ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba]" identifier = (cast_expression "(int ****)appppppiStack_138[0][-0x1fba]" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "appppppiStack_138[0][-0x1fba]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) ;) (expression_statement "ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];" (assignment_expression "ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba]" identifier = (cast_expression "(int ****)appppppiStack_138[0][-0x1fba]" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "appppppiStack_138[0][-0x1fba]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) ;) (expression_statement "ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];" (assignment_expression "ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c]" identifier = (cast_expression "(int ****)appppppiStack_138[0][-0x1f6c]" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "appppppiStack_138[0][-0x1f6c]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) ;) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" identifier = (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ])) ;) (expression_statement "puVar38 = puVar37;" (assignment_expression "puVar38 = puVar37" identifier = identifier) ;) (if_statement "if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }" if (parenthesized_expression "((int)pppppppiStack_100 <= (int)pppppppiVar29)" ( (binary_expression "(int)pppppppiStack_100 <= (int)pppppppiVar29" (cast_expression "(int)pppppppiStack_100" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pppppppiVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }" { (do_statement "do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );" do (compound_statement "{\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        }" { (expression_statement "pppppppiVar30 = pppppppiVar28;" (assignment_expression "pppppppiVar30 = pppppppiVar28" identifier = identifier) ;) (expression_statement "pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);" (assignment_expression "pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8)" identifier = (cast_expression "(int *******)((int)pppppppiVar30 * 8)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar30 * 8)" ( (binary_expression "(int)pppppppiVar30 * 8" (cast_expression "(int)pppppppiVar30" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "pppppppiVar12 = (int *******)0x8;" (assignment_expression "pppppppiVar12 = (int *******)0x8" identifier = (cast_expression "(int *******)0x8" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);" (assignment_expression "piVar9 = (int *)(*piVar34 + (int)pppppppiVar28)" identifier = (cast_expression "(int *)(*piVar34 + (int)pppppppiVar28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar34 + (int)pppppppiVar28)" ( (binary_expression "*piVar34 + (int)pppppppiVar28" (pointer_expression "*piVar34" * identifier) + (cast_expression "(int)pppppppiVar28" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);" (assignment_expression "pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1)" identifier = (binary_expression "(int *******)(uint)*(byte *)(piVar9 + 1)" (cast_expression "(int *******)(uint)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(piVar9 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 1)" ( (binary_expression "piVar9 + 1" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar25 = pppppppiStack_100;" (assignment_expression "pppppppiVar25 = pppppppiStack_100" identifier = identifier) ;) (if_statement "if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }" if (parenthesized_expression "(pppppppiVar3 == (int *******)0x8)" ( (binary_expression "pppppppiVar3 == (int *******)0x8" identifier == (cast_expression "(int *******)0x8" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }" { (expression_statement "iVar6 = *piVar9;" (assignment_expression "iVar6 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);" (assignment_expression "pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23)" identifier = (cast_expression "(int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)(iVar6 + 1 < (int)pppppppiVar23)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar6 + 1 < (int)pppppppiVar23)" ( (binary_expression "iVar6 + 1 < (int)pppppppiVar23" (binary_expression "iVar6 + 1" identifier + number_literal) < (cast_expression "(int)pppppppiVar23" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }" if (parenthesized_expression "(pppppppiVar3 != (int *******)0x0)" ( (binary_expression "pppppppiVar3 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }" { (expression_statement "(pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;" (assignment_expression "(pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff" (subscript_expression "(pppppppiVar7 + (iVar6 + 1) * 2)[1]" (parenthesized_expression "(pppppppiVar7 + (iVar6 + 1) * 2)" ( (binary_expression "pppppppiVar7 + (iVar6 + 1) * 2" identifier + (binary_expression "(iVar6 + 1) * 2" (parenthesized_expression "(iVar6 + 1)" ( (binary_expression "iVar6 + 1" identifier + number_literal) )) * number_literal)) )) [ number_literal ]) = (cast_expression "(int ******)0xffffffff" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;" (assignment_expression "pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100" (subscript_expression "pppppppiVar7[(iVar6 + 1) * 2]" identifier [ (binary_expression "(iVar6 + 1) * 2" (parenthesized_expression "(iVar6 + 1)" ( (binary_expression "iVar6 + 1" identifier + number_literal) )) * number_literal) ]) = (cast_expression "(int ******)pppppppiStack_100" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "pppppppiVar29 = (int *******)pppppppiVar7[1];" (assignment_expression "pppppppiVar29 = (int *******)pppppppiVar7[1]" identifier = (cast_expression "(int *******)pppppppiVar7[1]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar7[1]" identifier [ number_literal ]))) ;) })) }) (else_clause "else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }" else (compound_statement "{\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }" { (expression_statement "pppppppiVar12 = (int *******)&DAT_00000009;" (assignment_expression "pppppppiVar12 = (int *******)&DAT_00000009" identifier = (cast_expression "(int *******)&DAT_00000009" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&DAT_00000009" & identifier))) ;) (if_statement "if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }" if (parenthesized_expression "(pppppppiVar3 == (int *******)&DAT_00000009)" ( (binary_expression "pppppppiVar3 == (int *******)&DAT_00000009" identifier == (cast_expression "(int *******)&DAT_00000009" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&DAT_00000009" & identifier))) )) (compound_statement "{\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }" { (expression_statement "iVar6 = *piVar9 + 1;" (assignment_expression "iVar6 = *piVar9 + 1" identifier = (binary_expression "*piVar9 + 1" (pointer_expression "*piVar9" * identifier) + number_literal)) ;) (expression_statement "pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);" (assignment_expression "pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23)" identifier = (cast_expression "(int *******)(uint)(iVar6 < (int)pppppppiVar23)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)(iVar6 < (int)pppppppiVar23)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar6 < (int)pppppppiVar23)" ( (binary_expression "iVar6 < (int)pppppppiVar23" identifier < (cast_expression "(int)pppppppiVar23" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "pppppppiVar3 = (int *******)(iVar6 * 8);" (assignment_expression "pppppppiVar3 = (int *******)(iVar6 * 8)" identifier = (cast_expression "(int *******)(iVar6 * 8)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(iVar6 * 8)" ( (binary_expression "iVar6 * 8" identifier * number_literal) )))) ;) (if_statement "if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }" if (parenthesized_expression "(pppppppiVar12 != (int *******)0x0)" ( (binary_expression "pppppppiVar12 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }" { (expression_statement "pppppppiVar29 = pppppppiVar7 + iVar6 * 2;" (assignment_expression "pppppppiVar29 = pppppppiVar7 + iVar6 * 2" identifier = (binary_expression "pppppppiVar7 + iVar6 * 2" identifier + (binary_expression "iVar6 * 2" identifier * number_literal))) ;) (expression_statement "ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];" (assignment_expression "ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e]" identifier = (subscript_expression "((int *****)ppppppiVar32)[-0x1f6e]" (parenthesized_expression "((int *****)ppppppiVar32)" ( (cast_expression "(int *****)ppppppiVar32" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ])) ;) (if_statement "if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }" if (parenthesized_expression "((int)*pppppppiVar29 < (int)pppppppiStack_100)" ( (binary_expression "(int)*pppppppiVar29 < (int)pppppppiStack_100" (cast_expression "(int)*pppppppiVar29" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppppppiVar29" * identifier)) < (cast_expression "(int)pppppppiStack_100" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }" { (expression_statement "pppppppiVar29[1] = (int ******)pppppppiStack_100;" (assignment_expression "pppppppiVar29[1] = (int ******)pppppppiStack_100" (subscript_expression "pppppppiVar29[1]" identifier [ number_literal ]) = (cast_expression "(int ******)pppppppiStack_100" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "pppppppiVar26 = pppppppiStack_124;" (assignment_expression "pppppppiVar26 = pppppppiStack_124" identifier = identifier) ;) (expression_statement "pppppppiVar3 = pppppppiVar7;" (assignment_expression "pppppppiVar3 = pppppppiVar7" identifier = identifier) ;) }) (else_clause "else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }" else (if_statement "if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }" if (parenthesized_expression "(((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff))" ( (binary_expression "((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)" (parenthesized_expression "((piVar9[1] & 0x1000U) == 0)" ( (binary_expression "(piVar9[1] & 0x1000U) == 0" (parenthesized_expression "(piVar9[1] & 0x1000U)" ( (binary_expression "piVar9[1] & 0x1000U" (subscript_expression "piVar9[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) || (parenthesized_expression "(pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)" ( (comma_expression "pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff" (assignment_expression "pppppppiVar26 = pppppppiVar7" identifier = identifier) , (comma_expression "pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff" (assignment_expression "pppppppiVar3 = pppppppiStack_124" identifier = identifier) , (binary_expression "pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff" (subscript_expression "pppppppiStack_124[iVar6 * 2]" identifier [ (binary_expression "iVar6 * 2" identifier * number_literal) ]) == (cast_expression "(int ******)0xffffffff" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)))) ))) )) (compound_statement "{\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }" { (expression_statement "pppppppiVar29[1] = (int ******)pppppppiStack_100;" (assignment_expression "pppppppiVar29[1] = (int ******)pppppppiStack_100" (subscript_expression "pppppppiVar29[1]" identifier [ number_literal ]) = (cast_expression "(int ******)pppppppiStack_100" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "pppppppiVar29 = (int *******)pppppppiVar7[1];" (assignment_expression "pppppppiVar29 = (int *******)pppppppiVar7[1]" identifier = (cast_expression "(int *******)pppppppiVar7[1]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar7[1]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_00020df8;" goto statement_identifier ;) })))) (expression_statement "pppppppiVar12 = pppppppiStack_11c;" (assignment_expression "pppppppiVar12 = pppppppiStack_11c" identifier = identifier) ;) (expression_statement "pppppppiStack_10c = pppppppiVar28;" (assignment_expression "pppppppiStack_10c = pppppppiVar28" identifier = identifier) ;) (expression_statement "pppppppiStack_108 = pppppppiStack_100;" (assignment_expression "pppppppiStack_108 = pppppppiStack_100" identifier = identifier) ;) (expression_statement "(*(code *)ppppiVar19)(pppppppiVar26);" (call_expression "(*(code *)ppppiVar19)(pppppppiVar26)" (parenthesized_expression "(*(code *)ppppiVar19)" ( (pointer_expression "*(code *)ppppiVar19" * (cast_expression "(code *)ppppiVar19" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pppppppiVar26)" ( identifier ))) ;) (expression_statement "pppppppiVar29 = (int *******)pppppppiVar7[1];" (assignment_expression "pppppppiVar29 = (int *******)pppppppiVar7[1]" identifier = (cast_expression "(int *******)pppppppiVar7[1]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar7[1]" identifier [ number_literal ]))) ;) (expression_statement "pppppppiVar25 = pppppppiStack_108;" (assignment_expression "pppppppiVar25 = pppppppiStack_108" identifier = identifier) ;) (expression_statement "pppppppiVar28 = pppppppiStack_10c;" (assignment_expression "pppppppiVar28 = pppppppiStack_10c" identifier = identifier) ;) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" identifier = (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ])) ;) })) })) }))) (labeled_statement "LAB_00020df8:\n          ppppiVar19 = ppppiStack_120;" statement_identifier : (expression_statement "ppppiVar19 = ppppiStack_120;" (assignment_expression "ppppiVar19 = ppppiStack_120" identifier = identifier) ;)) (if_statement "if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }" if (parenthesized_expression "((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30))" ( (binary_expression "(pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)" (parenthesized_expression "(pppppppiVar25 == pppppppiVar29)" ( (binary_expression "pppppppiVar25 == pppppppiVar29" identifier == identifier) )) && (parenthesized_expression "((int *******)pppppppiVar22[0x18] == pppppppiVar30)" ( (binary_expression "(int *******)pppppppiVar22[0x18] == pppppppiVar30" (cast_expression "(int *******)pppppppiVar22[0x18]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar22[0x18]" identifier [ number_literal ])) == identifier) ))) )) (compound_statement "{\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }" { (expression_statement "ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];" (assignment_expression "ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c]" identifier = (subscript_expression "((int *****)ppppppiVar32)[-0x1f6c]" (parenthesized_expression "((int *****)ppppppiVar32)" ( (cast_expression "(int *****)ppppppiVar32" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ])) ;) (if_statement "if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }" if (parenthesized_expression "(ppiVar33 == (int **)0x0)" ( (binary_expression "ppiVar33 == (int **)0x0" identifier == (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }" { (expression_statement "(*(code *)ppppiVar36)(ppppppiStack_f4);" (call_expression "(*(code *)ppppiVar36)(ppppppiStack_f4)" (parenthesized_expression "(*(code *)ppppiVar36)" ( (pointer_expression "*(code *)ppppiVar36" * (cast_expression "(code *)ppppiVar36" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppppppiStack_f4)" ( identifier ))) ;) (if_statement "if (iStack_128 == 0) goto LAB_00020f14;" if (parenthesized_expression "(iStack_128 == 0)" ( (binary_expression "iStack_128 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00020f14;" goto statement_identifier ;)) (expression_statement "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);" (call_expression "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124)" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f6c])" ( (pointer_expression "*(code *)appppppiStack_138[0][-0x1f6c]" * (cast_expression "(code *)appppppiStack_138[0][-0x1f6c]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "appppppiStack_138[0][-0x1f6c]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(pppppppiStack_124)" ( identifier ))) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00020f18;" goto statement_identifier ;) })) (expression_statement "pppppppiVar28 = (int *******)0x0;" (assignment_expression "pppppppiVar28 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }" if (parenthesized_expression "(pppppppiVar23 == (int *******)0x0)" ( (binary_expression "pppppppiVar23 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }" { (labeled_statement "LAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);" statement_identifier : (expression_statement "(*(code *)ppppiVar36)(ppppppiStack_f4);" (call_expression "(*(code *)ppppiVar36)(ppppppiStack_f4)" (parenthesized_expression "(*(code *)ppppiVar36)" ( (pointer_expression "*(code *)ppppiVar36" * (cast_expression "(code *)ppppiVar36" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppppppiStack_f4)" ( identifier ))) ;)) (if_statement "if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }" if (parenthesized_expression "(iStack_128 != 0)" ( (binary_expression "iStack_128 != 0" identifier != number_literal) )) (compound_statement "{\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }" { (expression_statement "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);" (call_expression "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124)" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f6c])" ( (pointer_expression "*(code *)appppppiStack_138[0][-0x1f6c]" * (cast_expression "(code *)appppppiStack_138[0][-0x1f6c]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "appppppiStack_138[0][-0x1f6c]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(pppppppiStack_124)" ( identifier ))) ;) })) (goto_statement "goto LAB_00020f00;" goto statement_identifier ;) })) (expression_statement "pppppppiVar3 = (int *******)0xffffffff;" (assignment_expression "pppppppiVar3 = (int *******)0xffffffff" identifier = (cast_expression "(int *******)0xffffffff" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppiVar29 = pppppppiVar7;" (assignment_expression "pppppppiVar29 = pppppppiVar7" identifier = identifier) ;) (while_statement "while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }" while (parenthesized_expression "(((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff)))" ( (parenthesized_expression "((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))" ( (binary_expression "(int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff)" (binary_expression "(int)*pppppppiVar29 < 0" (cast_expression "(int)*pppppppiVar29" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppppppiVar29" * identifier)) < number_literal) || (parenthesized_expression "(pppppppiVar29[1] != (int ******)0xffffffff)" ( (binary_expression "pppppppiVar29[1] != (int ******)0xffffffff" (subscript_expression "pppppppiVar29[1]" identifier [ number_literal ]) != (cast_expression "(int ******)0xffffffff" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) )) (compound_statement "{\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }" { (expression_statement "pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);" (assignment_expression "pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1)" identifier = (cast_expression "(int *******)((int)pppppppiVar28 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar28 + 1)" ( (binary_expression "(int)pppppppiVar28 + 1" (cast_expression "(int)pppppppiVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pppppppiVar29 = pppppppiVar29 + 2;" (assignment_expression "pppppppiVar29 = pppppppiVar29 + 2" identifier = (binary_expression "pppppppiVar29 + 2" identifier + number_literal)) ;) (if_statement "if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }" if (parenthesized_expression "(pppppppiVar23 == pppppppiVar28)" ( (binary_expression "pppppppiVar23 == pppppppiVar28" identifier == identifier) )) (compound_statement "{\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }" { (expression_statement "ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];" (assignment_expression "ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c]" identifier = (subscript_expression "((int *****)ppppppiVar32)[-0x1f6c]" (parenthesized_expression "((int *****)ppppppiVar32)" ( (cast_expression "(int *****)ppppppiVar32" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ])) ;) (goto_statement "goto LAB_000212c0;" goto statement_identifier ;) })) })) (expression_statement "*(int ********)(puVar37 + 0x14) = param_3;" (assignment_expression "*(int ********)(puVar37 + 0x14) = param_3" (pointer_expression "*(int ********)(puVar37 + 0x14)" * (cast_expression "(int ********)(puVar37 + 0x14)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(puVar37 + 0x14)" ( (binary_expression "puVar37 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int ********)(puVar37 + 0x10) = pppppppiVar7;" (assignment_expression "*(int ********)(puVar37 + 0x10) = pppppppiVar7" (pointer_expression "*(int ********)(puVar37 + 0x10)" * (cast_expression "(int ********)(puVar37 + 0x10)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(puVar37 + 0x10)" ( (binary_expression "puVar37 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pppppppiVar25 = pppppppiVar23;" (assignment_expression "pppppppiVar25 = pppppppiVar23" identifier = identifier) ;) (expression_statement "pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);" (assignment_expression "pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100)" identifier = (cast_expression "(int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100)" (parenthesized_expression "(*(code *)ppppiVar19)" ( (pointer_expression "*(code *)ppppiVar19" * (cast_expression "(code *)ppppiVar19" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppiVar33,ppiVar33 + 2,&pppppppiStack_100)" ( identifier , (binary_expression "ppiVar33 + 2" identifier + number_literal) , (pointer_expression "&pppppppiStack_100" & identifier) ))))) ;) (expression_statement "pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);" (assignment_expression "pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3)" identifier = (cast_expression "(int *******)((int)pppppppiVar30 << 3)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar30 << 3)" ( (binary_expression "(int)pppppppiVar30 << 3" (cast_expression "(int)pppppppiVar30" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" identifier = (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ])) ;) })) (expression_statement "pppppppiVar29 = pppppppiStack_100;" (assignment_expression "pppppppiVar29 = pppppppiStack_100" identifier = identifier) ;) (expression_statement "pppppppiVar26 = (int *******)pppppppiVar22[0x15];" (assignment_expression "pppppppiVar26 = (int *******)pppppppiVar22[0x15]" identifier = (cast_expression "(int *******)pppppppiVar22[0x15]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar22[0x15]" identifier [ number_literal ]))) ;) (expression_statement "pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);" (assignment_expression "pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28)" identifier = (cast_expression "(int *******)((int)*pppppppiVar26 + (int)pppppppiVar28)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)*pppppppiVar26 + (int)pppppppiVar28)" ( (binary_expression "(int)*pppppppiVar26 + (int)pppppppiVar28" (cast_expression "(int)*pppppppiVar26" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppppppiVar26" * identifier)) + (cast_expression "(int)pppppppiVar28" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);" (assignment_expression "pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1)" identifier = (binary_expression "(int *******)(uint)*(byte *)(pppppppiVar3 + 1)" (cast_expression "(int *******)(uint)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(pppppppiVar3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar3 + 1)" ( (binary_expression "pppppppiVar3 + 1" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }" if (parenthesized_expression "((*(byte *)(pppppppiVar3 + 1) & 8) == 0)" ( (binary_expression "(*(byte *)(pppppppiVar3 + 1) & 8) == 0" (parenthesized_expression "(*(byte *)(pppppppiVar3 + 1) & 8)" ( (binary_expression "*(byte *)(pppppppiVar3 + 1) & 8" (pointer_expression "*(byte *)(pppppppiVar3 + 1)" * (cast_expression "(byte *)(pppppppiVar3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar3 + 1)" ( (binary_expression "pppppppiVar3 + 1" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }" { (if_statement "if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }" if (parenthesized_expression "(((uint)pppppppiVar3[1] & 0x800) == 0)" ( (binary_expression "((uint)pppppppiVar3[1] & 0x800) == 0" (parenthesized_expression "((uint)pppppppiVar3[1] & 0x800)" ( (binary_expression "(uint)pppppppiVar3[1] & 0x800" (cast_expression "(uint)pppppppiVar3[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar3[1]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }" { (expression_statement "pppppppiVar25 = pppppppiStack_100;" (assignment_expression "pppppppiVar25 = pppppppiStack_100" identifier = identifier) ;) (if_statement "if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;" if (parenthesized_expression "(pppppppiVar12 != (int *******)0x4)" ( (binary_expression "pppppppiVar12 != (int *******)0x4" identifier != (cast_expression "(int *******)0x4" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00020e44;" goto statement_identifier ;)) (expression_statement "ppppppiVar13 = *pppppppiVar3;" (assignment_expression "ppppppiVar13 = *pppppppiVar3" identifier = (pointer_expression "*pppppppiVar3" * identifier)) ;) (expression_statement "pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];" (assignment_expression "pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1]" identifier = (cast_expression "(int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1]" (parenthesized_expression "(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)" ( (binary_expression "pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2" identifier + (binary_expression "((int)ppppppiVar13 + 1) * 2" (parenthesized_expression "((int)ppppppiVar13 + 1)" ( (binary_expression "(int)ppppppiVar13 + 1" (cast_expression "(int)ppppppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) * number_literal)) )) [ number_literal ]))) ;) (expression_statement "ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];" (assignment_expression "ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2]" identifier = (subscript_expression "pppppppiVar7[((int)ppppppiVar13 + 1) * 2]" identifier [ (binary_expression "((int)ppppppiVar13 + 1) * 2" (parenthesized_expression "((int)ppppppiVar13 + 1)" ( (binary_expression "(int)ppppppiVar13 + 1" (cast_expression "(int)ppppppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) * number_literal) ])) ;) (expression_statement "pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);" (assignment_expression "pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13)" identifier = (cast_expression "(int *******)((int)pppppppiVar3 - (int)ppppppiVar13)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar3 - (int)ppppppiVar13)" ( (binary_expression "(int)pppppppiVar3 - (int)ppppppiVar13" (cast_expression "(int)pppppppiVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppppppiVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }" if (parenthesized_expression "(ppiVar33 == (int **)0x0)" ( (binary_expression "ppiVar33 == (int **)0x0" identifier == (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }" { (if_statement "if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;" if (parenthesized_expression "(pppppppiVar25 == (int *******)0x0)" ( (binary_expression "pppppppiVar25 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00021318;" goto statement_identifier ;)) }) (else_clause "else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }" else (compound_statement "{\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }" { (expression_statement "pppppppiVar27 = pppppppiVar30;" (assignment_expression "pppppppiVar27 = pppppppiVar30" identifier = identifier) ;) (if_statement "if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;" if (parenthesized_expression "((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff))" ( (binary_expression "(ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)" (parenthesized_expression "(ppppppiVar13 == (int ******)0xffffffff)" ( (binary_expression "ppppppiVar13 == (int ******)0xffffffff" identifier == (cast_expression "(int ******)0xffffffff" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) || (parenthesized_expression "(pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)" ( (comma_expression "pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff" (assignment_expression "pppppppiVar12 = (int *******)&pppppppiStack_100" identifier = (cast_expression "(int *******)&pppppppiStack_100" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&pppppppiStack_100" & identifier))) , (binary_expression "pppppppiVar3 == (int *******)0xffffffff" identifier == (cast_expression "(int *******)0xffffffff" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal))) ))) )) (goto_statement "goto LAB_00020f7c;" goto statement_identifier ;)) (if_statement "if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }" if (parenthesized_expression "(pppppppiVar25 == (int *******)0x0)" ( (binary_expression "pppppppiVar25 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }" { (labeled_statement "LAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;" statement_identifier : (expression_statement "pppppppiVar3 = pppppppiVar30;" (assignment_expression "pppppppiVar3 = pppppppiVar30" identifier = identifier) ;)) (expression_statement "pppppppiStack_10c = pppppppiVar28;" (assignment_expression "pppppppiStack_10c = pppppppiVar28" identifier = identifier) ;) (expression_statement "pppppppiStack_108 = pppppppiVar26;" (assignment_expression "pppppppiStack_108 = pppppppiVar26" identifier = identifier) ;) (expression_statement "iVar6 = (*(code *)ppppiStack_114)(param_3);" (assignment_expression "iVar6 = (*(code *)ppppiStack_114)(param_3)" identifier = (call_expression "(*(code *)ppppiStack_114)(param_3)" (parenthesized_expression "(*(code *)ppppiStack_114)" ( (pointer_expression "*(code *)ppppiStack_114" * (cast_expression "(code *)ppppiStack_114" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "pppppppiVar28 = pppppppiVar30;" (assignment_expression "pppppppiVar28 = pppppppiVar30" identifier = identifier) ;) (if_statement "if (iVar6 == 0) goto LAB_000213ac;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000213ac;" goto statement_identifier ;)) (expression_statement "pppppppiVar3 = pppppppiStack_108 + 5;" (assignment_expression "pppppppiVar3 = pppppppiStack_108 + 5" identifier = (binary_expression "pppppppiStack_108 + 5" identifier + number_literal)) ;) (expression_statement "pppppppiStack_130 = pppppppiStack_108;" (assignment_expression "pppppppiStack_130 = pppppppiStack_108" identifier = identifier) ;) (expression_statement "pppppppiStack_108 = pppppppiStack_100;" (assignment_expression "pppppppiStack_108 = pppppppiStack_100" identifier = identifier) ;) (expression_statement "pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];" (assignment_expression "pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2]" identifier = (cast_expression "(int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2]" * (subscript_expression "(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2]" (parenthesized_expression "(*pppppppiVar3)" ( (pointer_expression "*pppppppiVar3" * identifier) )) [ (binary_expression "(int)pppppppiVar30 * 3 + 2" (binary_expression "(int)pppppppiVar30 * 3" (cast_expression "(int)pppppppiVar30" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])))) ;) (expression_statement "pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);" (assignment_expression "pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3)" identifier = (cast_expression "(int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3)" ( (binary_expression "pppppppiVar22[0x19][(int)pppppppiStack_100] + 3" (subscript_expression "pppppppiVar22[0x19][(int)pppppppiStack_100]" (subscript_expression "pppppppiVar22[0x19]" identifier [ number_literal ]) [ (cast_expression "(int)pppppppiStack_100" ( (type_descriptor "int" primitive_type) ) identifier) ]) + number_literal) )))) ;) (expression_statement "pppppppiVar12 = pppppppiVar28;" (assignment_expression "pppppppiVar12 = pppppppiVar28" identifier = identifier) ;) (expression_statement "iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);" (assignment_expression "iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2])" identifier = (call_expression "(*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2])" (parenthesized_expression "(*(code *)ppppiStack_104)" ( (pointer_expression "*(code *)ppppiStack_104" * (cast_expression "(code *)ppppiStack_104" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pppppppiVar22[0x19][(int)pppppppiStack_100][2])" ( (subscript_expression "pppppppiVar22[0x19][(int)pppppppiStack_100][2]" (subscript_expression "pppppppiVar22[0x19][(int)pppppppiStack_100]" (subscript_expression "pppppppiVar22[0x19]" identifier [ number_literal ]) [ (cast_expression "(int)pppppppiStack_100" ( (type_descriptor "int" primitive_type) ) identifier) ]) [ number_literal ]) )))) ;) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" identifier = (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ])) ;) (if_statement "if (iVar6 != 0) goto LAB_00020ecc;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00020ecc;" goto statement_identifier ;)) (expression_statement "pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);" (assignment_expression "pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c)" identifier = (cast_expression "(int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)*pppppppiStack_130 + (int)pppppppiStack_10c)" ( (binary_expression "(int)*pppppppiStack_130 + (int)pppppppiStack_10c" (cast_expression "(int)*pppppppiStack_130" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppppppiStack_130" * identifier)) + (cast_expression "(int)pppppppiStack_10c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppiVar25 = pppppppiStack_108;" (assignment_expression "pppppppiVar25 = pppppppiStack_108" identifier = identifier) ;) (expression_statement "pppppppiVar26 = pppppppiStack_130;" (assignment_expression "pppppppiVar26 = pppppppiStack_130" identifier = identifier) ;) (goto_statement "goto LAB_00020e44;" goto statement_identifier ;) })) (expression_statement "pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);" (assignment_expression "pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100)" identifier = (cast_expression "(int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar22[1] + (int)pppppppiStack_100)" ( (binary_expression "(int)pppppppiVar22[1] + (int)pppppppiStack_100" (cast_expression "(int)pppppppiVar22[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar22[1]" identifier [ number_literal ])) + (cast_expression "(int)pppppppiStack_100" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppiStack_10c = pppppppiVar26;" (assignment_expression "pppppppiStack_10c = pppppppiVar26" identifier = identifier) ;) (expression_statement "pppppppiStack_108 = pppppppiVar25;" (assignment_expression "pppppppiStack_108 = pppppppiVar25" identifier = identifier) ;) (expression_statement "iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);" (assignment_expression "iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13)" identifier = (call_expression "(*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13)" (parenthesized_expression "(*(code *)((int *****)ppppppiVar32)[-0x1f74])" ( (pointer_expression "*(code *)((int *****)ppppppiVar32)[-0x1f74]" * (cast_expression "(code *)((int *****)ppppppiVar32)[-0x1f74]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "((int *****)ppppppiVar32)[-0x1f74]" (parenthesized_expression "((int *****)ppppppiVar32)" ( (cast_expression "(int *****)ppppppiVar32" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]))) )) (argument_list "((int)pppppppiVar22[1] + (int)ppppppiVar13)" ( (binary_expression "(int)pppppppiVar22[1] + (int)ppppppiVar13" (cast_expression "(int)pppppppiVar22[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar22[1]" identifier [ number_literal ])) + (cast_expression "(int)ppppppiVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppiVar12 = pppppppiVar25;" (assignment_expression "pppppppiVar12 = pppppppiVar25" identifier = identifier) ;) (expression_statement "pppppppiVar25 = pppppppiStack_108;" (assignment_expression "pppppppiVar25 = pppppppiStack_108" identifier = identifier) ;) (expression_statement "pppppppiVar26 = pppppppiStack_10c;" (assignment_expression "pppppppiVar26 = pppppppiStack_10c" identifier = identifier) ;) (expression_statement "pppppppiVar27 = pppppppiVar29;" (assignment_expression "pppppppiVar27 = pppppppiVar29" identifier = identifier) ;) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" identifier = (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ])) ;) (if_statement "if (iVar6 != 0) goto LAB_00020f7c;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00020f7c;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);" statement_identifier : (expression_statement "pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);" (assignment_expression "pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25)" identifier = (cast_expression "(int *******)((int)pppppppiVar29 + (int)pppppppiVar25)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar29 + (int)pppppppiVar25)" ( (binary_expression "(int)pppppppiVar29 + (int)pppppppiVar25" (cast_expression "(int)pppppppiVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];" (assignment_expression "pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30]" identifier = (cast_expression "(int *******)pppppppiVar26[3][(int)pppppppiVar30]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar26[3][(int)pppppppiVar30]" (subscript_expression "pppppppiVar26[3]" identifier [ number_literal ]) [ (cast_expression "(int)pppppppiVar30" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "pppppppiVar30 = pppppppiVar29;" (assignment_expression "pppppppiVar30 = pppppppiVar29" identifier = identifier) ;) }) (else_clause "else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }" else (compound_statement "{\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }" { (expression_statement "pppppppiVar3 = pppppppiVar26 + 0x20;" (assignment_expression "pppppppiVar3 = pppppppiVar26 + 0x20" identifier = (binary_expression "pppppppiVar26 + 0x20" identifier + number_literal)) ;) (expression_statement "pppppppiStack_10c = pppppppiVar28;" (assignment_expression "pppppppiStack_10c = pppppppiVar28" identifier = identifier) ;) (expression_statement "pppppppiStack_108 = pppppppiVar26;" (assignment_expression "pppppppiStack_108 = pppppppiVar26" identifier = identifier) ;) (expression_statement "*(int ********)(puVar37 + 0x10) = pppppppiStack_100;" (assignment_expression "*(int ********)(puVar37 + 0x10) = pppppppiStack_100" (pointer_expression "*(int ********)(puVar37 + 0x10)" * (cast_expression "(int ********)(puVar37 + 0x10)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(puVar37 + 0x10)" ( (binary_expression "puVar37 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pppppppiVar12 = pppppppiVar30;" (assignment_expression "pppppppiVar12 = pppppppiVar30" identifier = identifier) ;) (expression_statement "pppppppiVar25 = (int *******)FUN_000201f0();" (assignment_expression "pppppppiVar25 = (int *******)FUN_000201f0()" identifier = (cast_expression "(int *******)FUN_000201f0()" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_000201f0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "pppppppiVar26 = pppppppiStack_108;" (assignment_expression "pppppppiVar26 = pppppppiStack_108" identifier = identifier) ;) (expression_statement "pppppppiVar29 = pppppppiStack_100;" (assignment_expression "pppppppiVar29 = pppppppiStack_100" identifier = identifier) ;) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" identifier = (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ])) ;) (if_statement "if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;" if (parenthesized_expression "(pppppppiVar25 != (int *******)0x0)" ( (binary_expression "pppppppiVar25 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00021258;" goto statement_identifier ;)) (expression_statement "pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);" (assignment_expression "pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c)" identifier = (cast_expression "(int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)*pppppppiStack_108 + (int)pppppppiStack_10c)" ( (binary_expression "(int)*pppppppiStack_108 + (int)pppppppiStack_10c" (cast_expression "(int)*pppppppiStack_108" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppppppiStack_108" * identifier)) + (cast_expression "(int)pppppppiStack_10c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppiVar25 = pppppppiStack_100;" (assignment_expression "pppppppiVar25 = pppppppiStack_100" identifier = identifier) ;) (labeled_statement "LAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;" statement_identifier : (expression_statement "pppppppiVar12 = pppppppiVar25;" (assignment_expression "pppppppiVar12 = pppppppiVar25" identifier = identifier) ;)) (expression_statement "pppppppiStack_10c = pppppppiVar26;" (assignment_expression "pppppppiStack_10c = pppppppiVar26" identifier = identifier) ;) (expression_statement "pppppppiStack_108 = pppppppiVar12;" (assignment_expression "pppppppiStack_108 = pppppppiVar12" identifier = identifier) ;) (expression_statement "iVar6 = FUN_0001cc98(pppppppiVar22);" (assignment_expression "iVar6 = FUN_0001cc98(pppppppiVar22)" identifier = (call_expression "FUN_0001cc98(pppppppiVar22)" identifier (argument_list "(pppppppiVar22)" ( identifier )))) ;) (expression_statement "pppppppiVar25 = pppppppiStack_108;" (assignment_expression "pppppppiVar25 = pppppppiStack_108" identifier = identifier) ;) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" identifier = (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ])) ;) (if_statement "if (iVar6 == 0) goto LAB_00020f6c;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00020f6c;" goto statement_identifier ;)) (expression_statement "pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);" (assignment_expression "pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1)" identifier = (cast_expression "(int *******)((int)pppppppiStack_108 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiStack_108 + 1)" ( (binary_expression "(int)pppppppiStack_108 + 1" (cast_expression "(int)pppppppiStack_108" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];" (assignment_expression "pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30]" identifier = (cast_expression "(int *******)pppppppiStack_10c[3][(int)pppppppiVar30]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiStack_10c[3][(int)pppppppiVar30]" (subscript_expression "pppppppiStack_10c[3]" identifier [ number_literal ]) [ (cast_expression "(int)pppppppiVar30" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);" (assignment_expression "pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30)" identifier = (cast_expression "(int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppppiStack_10c[3] + (int)pppppppiVar30)" ( (binary_expression "pppppppiStack_10c[3] + (int)pppppppiVar30" (subscript_expression "pppppppiStack_10c[3]" identifier [ number_literal ]) + (cast_expression "(int)pppppppiVar30" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }))) (if_statement "if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }" if (parenthesized_expression "(ppiVar33 != (int **)0x0)" ( (binary_expression "ppiVar33 != (int **)0x0" identifier != (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }" { (expression_statement "pppppppiVar27 = pppppppiVar30;" (assignment_expression "pppppppiVar27 = pppppppiVar30" identifier = identifier) ;) (if_statement "if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;" if (parenthesized_expression "(((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0))" ( (binary_expression "((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)" (parenthesized_expression "((int)pppppppiVar22[0x17] < (int)pppppppiStack_100)" ( (binary_expression "(int)pppppppiVar22[0x17] < (int)pppppppiStack_100" (cast_expression "(int)pppppppiVar22[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar22[0x17]" identifier [ number_literal ])) < (cast_expression "(int)pppppppiStack_100" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)" ( (comma_expression "pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0" (assignment_expression "pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100]" identifier = (subscript_expression "pppppppiVar22[0x19][(int)pppppppiStack_100]" (subscript_expression "pppppppiVar22[0x19]" identifier [ number_literal ]) [ (cast_expression "(int)pppppppiStack_100" ( (type_descriptor "int" primitive_type) ) identifier) ])) , (binary_expression "pppppiVar8 == (int *****)0x0" identifier == (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal))) ))) )) (goto_statement "goto LAB_00020f7c;" goto statement_identifier ;)) (expression_statement "pppppppiVar3 = (int *******)(pppppiVar8 + 3);" (assignment_expression "pppppppiVar3 = (int *******)(pppppiVar8 + 3)" identifier = (cast_expression "(int *******)(pppppiVar8 + 3)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppiVar8 + 3)" ( (binary_expression "pppppiVar8 + 3" identifier + number_literal) )))) ;) (expression_statement "pppppppiVar12 = pppppppiVar28;" (assignment_expression "pppppppiVar12 = pppppppiVar28" identifier = identifier) ;) (expression_statement "iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);" (assignment_expression "iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2])" identifier = (call_expression "(*(code *)ppppiStack_104)(pppppiVar8[2])" (parenthesized_expression "(*(code *)ppppiStack_104)" ( (pointer_expression "*(code *)ppppiStack_104" * (cast_expression "(code *)ppppiStack_104" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pppppiVar8[2])" ( (subscript_expression "pppppiVar8[2]" identifier [ number_literal ]) )))) ;) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" identifier = (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ])) ;) (if_statement "if (iVar6 == 0) goto LAB_00020f7c;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00020f7c;" goto statement_identifier ;)) })) (expression_statement "uStack_f8 = 0;" (assignment_expression "uStack_f8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }" else (compound_statement "{\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }" { (expression_statement "pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);" (assignment_expression "pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3)" identifier = (cast_expression "(int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppppiVar26[5] + (int)pppppppiVar30 * 3)" ( (binary_expression "pppppppiVar26[5] + (int)pppppppiVar30 * 3" (subscript_expression "pppppppiVar26[5]" identifier [ number_literal ]) + (binary_expression "(int)pppppppiVar30 * 3" (cast_expression "(int)pppppppiVar30" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];" (assignment_expression "pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100]" identifier = (subscript_expression "pppppppiVar22[0x19][(int)pppppppiStack_100]" (subscript_expression "pppppppiVar22[0x19]" identifier [ number_literal ]) [ (cast_expression "(int)pppppppiStack_100" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) (expression_statement "iVar6 = (*(code *)ppppiStack_114)(param_3);" (assignment_expression "iVar6 = (*(code *)ppppiStack_114)(param_3)" identifier = (call_expression "(*(code *)ppppiStack_114)(param_3)" (parenthesized_expression "(*(code *)ppppiStack_114)" ( (pointer_expression "*(code *)ppppiStack_114" * (cast_expression "(code *)ppppiStack_114" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "pppppppiVar3 = pppppppiVar30;" (assignment_expression "pppppppiVar3 = pppppppiVar30" identifier = identifier) ;) (if_statement "if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }" { (labeled_statement "LAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;" statement_identifier : (expression_statement "pppppppiVar30 = pppppppiVar28;" (assignment_expression "pppppppiVar30 = pppppppiVar28" identifier = identifier) ;)) (expression_statement "ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];" (assignment_expression "ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c]" identifier = (cast_expression "(int ****)appppppiStack_138[0][-0x1f6c]" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "appppppiStack_138[0][-0x1f6c]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) ;) (goto_statement "goto LAB_000213b0;" goto statement_identifier ;) })) (expression_statement "ppppppiVar13 = pppppppiVar28[1];" (assignment_expression "ppppppiVar13 = pppppppiVar28[1]" identifier = (subscript_expression "pppppppiVar28[1]" identifier [ number_literal ])) ;) (expression_statement "pppppppiVar30 = pppppppiVar28;" (assignment_expression "pppppppiVar30 = pppppppiVar28" identifier = identifier) ;) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" identifier = (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ])) ;) (if_statement "if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;" if (parenthesized_expression "((int)ppppppiVar13 < 1)" ( (binary_expression "(int)ppppppiVar13 < 1" (cast_expression "(int)ppppppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00020f6c;" goto statement_identifier ;)) (expression_statement "ppppiVar19 = pppppiVar8[2];" (assignment_expression "ppppiVar19 = pppppiVar8[2]" identifier = (subscript_expression "pppppiVar8[2]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar4 = pppppppiVar28[2];" (assignment_expression "ppppppiVar4 = pppppppiVar28[2]" identifier = (subscript_expression "pppppppiVar28[2]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar14 = (int ******)0x0;" (assignment_expression "ppppppiVar14 = (int ******)0x0" identifier = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar27 = (int *******)0xffffffff;" (assignment_expression "pppppppiVar27 = (int *******)0xffffffff" identifier = (cast_expression "(int *******)0xffffffff" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppiVar29 = (int *******)(pppppiVar8 + 3);" (assignment_expression "pppppppiVar29 = (int *******)(pppppiVar8 + 3)" identifier = (cast_expression "(int *******)(pppppiVar8 + 3)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppiVar8 + 3)" ( (binary_expression "pppppiVar8 + 3" identifier + number_literal) )))) ;) (expression_statement "pppppppiVar26 = (int *******)0xffffffff;" (assignment_expression "pppppppiVar26 = (int *******)0xffffffff" identifier = (cast_expression "(int *******)0xffffffff" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (do_statement "do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);" do (compound_statement "{\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            }" { (expression_statement "pppppppiVar3 = pppppppiVar29;" (assignment_expression "pppppppiVar3 = pppppppiVar29" identifier = identifier) ;) (expression_statement "pppppppiVar30 = (int *******)*ppppppiVar4;" (assignment_expression "pppppppiVar30 = (int *******)*ppppppiVar4" identifier = (cast_expression "(int *******)*ppppppiVar4" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*ppppppiVar4" * identifier))) ;) (expression_statement "pppppppiVar12 = pppppppiVar30;" (assignment_expression "pppppppiVar12 = pppppppiVar30" identifier = identifier) ;) (expression_statement "pppppppiVar29 = pppppppiVar3;" (assignment_expression "pppppppiVar29 = pppppppiVar3" identifier = identifier) ;) (expression_statement "iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);" (assignment_expression "iVar6 = (*(code *)ppppiStack_104)(ppppiVar19)" identifier = (call_expression "(*(code *)ppppiStack_104)(ppppiVar19)" (parenthesized_expression "(*(code *)ppppiStack_104)" ( (pointer_expression "*(code *)ppppiStack_104" * (cast_expression "(code *)ppppiStack_104" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppppiVar19)" ( identifier )))) ;) (expression_statement "pppppppiVar28 = pppppppiVar26;" (assignment_expression "pppppppiVar28 = pppppppiVar26" identifier = identifier) ;) (if_statement "if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }" if (parenthesized_expression "((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27))" ( (binary_expression "(iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)" (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) && (parenthesized_expression "(pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)" ( (comma_expression "pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27" (assignment_expression "pppppppiVar28 = pppppppiVar30" identifier = identifier) , (binary_expression "pppppppiVar26 != pppppppiVar27" identifier != identifier)) ))) )) (compound_statement "{\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }" { (expression_statement "pppppppiVar3 = &ppppppiStack_f4;" (assignment_expression "pppppppiVar3 = &ppppppiStack_f4" identifier = (pointer_expression "&ppppppiStack_f4" & identifier)) ;) (expression_statement "pppppppiVar12 = pppppppiVar26;" (assignment_expression "pppppppiVar12 = pppppppiVar26" identifier = identifier) ;) (expression_statement "iVar6 = (*(code *)ppppiStack_104)(uStack_f8);" (assignment_expression "iVar6 = (*(code *)ppppiStack_104)(uStack_f8)" identifier = (call_expression "(*(code *)ppppiStack_104)(uStack_f8)" (parenthesized_expression "(*(code *)ppppiStack_104)" ( (pointer_expression "*(code *)ppppiStack_104" * (cast_expression "(code *)ppppiStack_104" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uStack_f8)" ( identifier )))) ;) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" identifier = (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ])) ;) (if_statement "if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;" if (parenthesized_expression "((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0))" ( (binary_expression "(iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)" (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) || (parenthesized_expression "(pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)" ( (comma_expression "pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0" (assignment_expression "pppppppiVar28 = pppppppiVar26" identifier = identifier) , (binary_expression "ppiVar33 == (int **)0x0" identifier == (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) ))) )) (break_statement "break;" break ;)) (expression_statement "pppppppiVar12 = (int *******)*ppiVar33;" (assignment_expression "pppppppiVar12 = (int *******)*ppiVar33" identifier = (cast_expression "(int *******)*ppiVar33" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*ppiVar33" * identifier))) ;) (expression_statement "pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);" (assignment_expression "pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1)" identifier = (cast_expression "(int *******)((int)pppppppiVar12 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar12 + 1)" ( (binary_expression "(int)pppppppiVar12 + 1" (cast_expression "(int)pppppppiVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*ppiVar33 = (int *)pppppppiVar3;" (assignment_expression "*ppiVar33 = (int *)pppppppiVar3" (pointer_expression "*ppiVar33" * identifier) = (cast_expression "(int *)pppppppiVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }" if (parenthesized_expression "(pppppppiVar3 == (int *******)ppiVar33[1])" ( (binary_expression "pppppppiVar3 == (int *******)ppiVar33[1]" identifier == (cast_expression "(int *******)ppiVar33[1]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "ppiVar33[1]" identifier [ number_literal ]))) )) (compound_statement "{\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }" { (expression_statement "pppppppiStack_108 = pppppppiStack_100;" (assignment_expression "pppppppiStack_108 = pppppppiStack_100" identifier = identifier) ;) (expression_statement "pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);" (assignment_expression "pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30)" identifier = (cast_expression "(int *******)((int)pppppppiVar3 * 0x30)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar3 * 0x30)" ( (binary_expression "(int)pppppppiVar3 * 0x30" (cast_expression "(int)pppppppiVar3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "pppppppiStack_10c = pppppppiVar12;" (assignment_expression "pppppppiStack_10c = pppppppiVar12" identifier = identifier) ;) (expression_statement "piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);" (assignment_expression "piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2])" identifier = (cast_expression "(int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2])" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2])" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f86])" ( (pointer_expression "*(code *)appppppiStack_138[0][-0x1f86]" * (cast_expression "(code *)appppppiStack_138[0][-0x1f86]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "appppppiStack_138[0][-0x1f86]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(ppiVar33[2])" ( (subscript_expression "ppiVar33[2]" identifier [ number_literal ]) ))))) ;) (if_statement "if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }" if (parenthesized_expression "(piVar9 != (int *)0x0)" ( (binary_expression "piVar9 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }" { (expression_statement "ppiVar33[2] = piVar9;" (assignment_expression "ppiVar33[2] = piVar9" (subscript_expression "ppiVar33[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);" (assignment_expression "ppiVar33[1] = (int *)((int)ppiVar33[1] << 1)" (subscript_expression "ppiVar33[1]" identifier [ number_literal ]) = (cast_expression "(int *)((int)ppiVar33[1] << 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar33[1] << 1)" ( (binary_expression "(int)ppiVar33[1] << 1" (cast_expression "(int)ppiVar33[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar33[1]" identifier [ number_literal ])) << number_literal) )))) ;) (expression_statement "pppppppiVar12 = pppppppiStack_10c;" (assignment_expression "pppppppiVar12 = pppppppiStack_10c" identifier = identifier) ;) (expression_statement "pppppppiVar28 = pppppppiStack_108;" (assignment_expression "pppppppiVar28 = pppppppiStack_108" identifier = identifier) ;) (goto_statement "goto LAB_000210a0;" goto statement_identifier ;) })) }) (else_clause "else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }" else (compound_statement "{\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }" { (expression_statement "piVar9 = ppiVar33[2];" (assignment_expression "piVar9 = ppiVar33[2]" identifier = (subscript_expression "ppiVar33[2]" identifier [ number_literal ])) ;) (expression_statement "pppppppiVar28 = pppppppiStack_100;" (assignment_expression "pppppppiVar28 = pppppppiStack_100" identifier = identifier) ;) (labeled_statement "LAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];" statement_identifier : (expression_statement "ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];" (assignment_expression "ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87]" identifier = (cast_expression "(int ****)appppppiStack_138[0][-0x1f87]" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "appppppiStack_138[0][-0x1f87]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) ;)) (expression_statement "pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);" (assignment_expression "pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6)" identifier = (cast_expression "(int *******)(piVar9 + (int)pppppppiVar12 * 6)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(piVar9 + (int)pppppppiVar12 * 6)" ( (binary_expression "piVar9 + (int)pppppppiVar12 * 6" identifier + (binary_expression "(int)pppppppiVar12 * 6" (cast_expression "(int)pppppppiVar12" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "*pppppppiStack_108 = (int ******)pppppppiVar28;" (assignment_expression "*pppppppiStack_108 = (int ******)pppppppiVar28" (pointer_expression "*pppppppiStack_108" * identifier) = (cast_expression "(int ******)pppppppiVar28" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "pppppppiStack_108[1] = (int ******)pppppppiVar30;" (assignment_expression "pppppppiStack_108[1] = (int ******)pppppppiVar30" (subscript_expression "pppppppiStack_108[1]" identifier [ number_literal ]) = (cast_expression "(int ******)pppppppiVar30" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);" (assignment_expression "ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c)" identifier = (cast_expression "(int ******)(*(code *)ppppiVar19)(pppppppiStack_11c)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(*(code *)ppppiVar19)(pppppppiStack_11c)" (parenthesized_expression "(*(code *)ppppiVar19)" ( (pointer_expression "*(code *)ppppiVar19" * (cast_expression "(code *)ppppiVar19" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pppppppiStack_11c)" ( identifier ))))) ;) (expression_statement "pppppppiStack_108[2] = ppppppiVar32;" (assignment_expression "pppppppiStack_108[2] = ppppppiVar32" (subscript_expression "pppppppiStack_108[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppiVar25 = pppppppiStack_108;" (assignment_expression "pppppppiVar25 = pppppppiStack_108" identifier = identifier) ;) (if_statement "if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }" if (parenthesized_expression "(ppppppiVar32 != (int ******)0x0)" ( (binary_expression "ppppppiVar32 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }" { (expression_statement "pppppppiVar12 = pppppppiStack_11c;" (assignment_expression "pppppppiVar12 = pppppppiStack_11c" identifier = identifier) ;) (expression_statement "(*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);" (call_expression "(*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7)" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f6e])" ( (pointer_expression "*(code *)appppppiStack_138[0][-0x1f6e]" * (cast_expression "(code *)appppppiStack_138[0][-0x1f6e]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "appppppiStack_138[0][-0x1f6e]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(ppppppiVar32,pppppppiVar7)" ( identifier , identifier ))) ;) (expression_statement "pppppppiVar3 = param_3;" (assignment_expression "pppppppiVar3 = param_3" identifier = identifier) ;) (expression_statement "pppppppiVar25 = pppppppiStack_108;" (assignment_expression "pppppppiVar25 = pppppppiStack_108" identifier = identifier) ;) (expression_statement "iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);" (assignment_expression "iVar6 = FUN_0001ba80(pppppppiStack_108 + 3)" identifier = (call_expression "FUN_0001ba80(pppppppiStack_108 + 3)" identifier (argument_list "(pppppppiStack_108 + 3)" ( (binary_expression "pppppppiStack_108 + 3" identifier + number_literal) )))) ;) (expression_statement "pppppppiVar28 = pppppppiVar26;" (assignment_expression "pppppppiVar28 = pppppppiVar26" identifier = identifier) ;) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" identifier = (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ])) ;) (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) })) }))) (expression_statement "(*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);" (call_expression "(*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4)" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f6c])" ( (pointer_expression "*(code *)appppppiStack_138[0][-0x1f6c]" * (cast_expression "(code *)appppppiStack_138[0][-0x1f6c]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "appppppiStack_138[0][-0x1f6c]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(ppppppiStack_f4)" ( identifier ))) ;) (if_statement "if (iStack_128 != 0) goto LAB_000214d4;" if (parenthesized_expression "(iStack_128 != 0)" ( (binary_expression "iStack_128 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000214d4;" goto statement_identifier ;)) (goto_statement "goto LAB_0002112c;" goto statement_identifier ;) })) (expression_statement "ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);" (assignment_expression "ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1)" identifier = (cast_expression "(int ******)((int)ppppppiVar14 + 1)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)ppppppiVar14 + 1)" ( (binary_expression "(int)ppppppiVar14 + 1" (cast_expression "(int)ppppppiVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ppppppiVar4 = ppppppiVar4 + 1;" (assignment_expression "ppppppiVar4 = ppppppiVar4 + 1" identifier = (binary_expression "ppppppiVar4 + 1" identifier + number_literal)) ;) (expression_statement "pppppppiVar26 = pppppppiVar28;" (assignment_expression "pppppppiVar26 = pppppppiVar28" identifier = identifier) ;) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" identifier = (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(ppppppiVar13 != ppppppiVar14)" ( (binary_expression "ppppppiVar13 != ppppppiVar14" identifier != identifier) )) ;) }))) (labeled_statement "LAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;" statement_identifier : (if_statement "if ((int)pppppppiVar28 < 0) goto LAB_00020f60;" if (parenthesized_expression "((int)pppppppiVar28 < 0)" ( (binary_expression "(int)pppppppiVar28 < 0" (cast_expression "(int)pppppppiVar28" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00020f60;" goto statement_identifier ;))) (expression_statement "pppppppiVar29 = (int *******)pppppppiVar7[1];" (assignment_expression "pppppppiVar29 = (int *******)pppppppiVar7[1]" identifier = (cast_expression "(int *******)pppppppiVar7[1]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar7[1]" identifier [ number_literal ]))) ;) (expression_statement "ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];" (assignment_expression "ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c]" identifier = (subscript_expression "((int *****)ppppppiVar32)[-0x1f6c]" (parenthesized_expression "((int *****)ppppppiVar32)" ( (cast_expression "(int *****)ppppppiVar32" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ])) ;) (if_statement "if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;" if (parenthesized_expression "((int)pppppppiVar29 < (int)pppppppiStack_100)" ( (binary_expression "(int)pppppppiVar29 < (int)pppppppiStack_100" (cast_expression "(int)pppppppiVar29" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppppiStack_100" ( (type_descriptor "int" primitive_type) ) identifier)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "pppppppiVar25 = pppppppiStack_100;" (assignment_expression "pppppppiVar25 = pppppppiStack_100" identifier = identifier) ;) (expression_statement "(*(code *)ppppiVar19)(ppppppiStack_f4);" (call_expression "(*(code *)ppppiVar19)(ppppppiStack_f4)" (parenthesized_expression "(*(code *)ppppiVar19)" ( (pointer_expression "*(code *)ppppiVar19" * (cast_expression "(code *)ppppiVar19" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppppppiStack_f4)" ( identifier ))) ;) (if_statement "if (iStack_128 == 0) {\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }\n      else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }" if (parenthesized_expression "(iStack_128 == 0)" ( (binary_expression "iStack_128 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (if_statement "if (ppiVar33 == (int **)0x0) goto LAB_00020f18;" if (parenthesized_expression "(ppiVar33 == (int **)0x0)" ( (binary_expression "ppiVar33 == (int **)0x0" identifier == (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_00020f18;" goto statement_identifier ;)) }) (else_clause "else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }" else (compound_statement "{\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }" { (expression_statement "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);" (call_expression "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124)" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f6c])" ( (pointer_expression "*(code *)appppppiStack_138[0][-0x1f6c]" * (cast_expression "(code *)appppppiStack_138[0][-0x1f6c]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "appppppiStack_138[0][-0x1f6c]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(pppppppiStack_124)" ( identifier ))) ;) (if_statement "if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }" if (parenthesized_expression "(ppiVar33 == (int **)0x0)" ( (binary_expression "ppiVar33 == (int **)0x0" identifier == (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00020f18;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00020f00:\n      FUN_0001ec78(ppiVar33);" statement_identifier : (expression_statement "FUN_0001ec78(ppiVar33);" (call_expression "FUN_0001ec78(ppiVar33)" identifier (argument_list "(ppiVar33)" ( identifier ))) ;)) (labeled_statement "LAB_00020f14:\n      uVar10 = 0;" statement_identifier : (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_00020f18;" goto statement_identifier ;) })) }))) (expression_statement "uVar10 = 0xc;" (assignment_expression "uVar10 = 0xc" identifier = number_literal) ;) (expression_statement "puVar38 = puVar39;" (assignment_expression "puVar38 = puVar39" identifier = identifier) ;) (labeled_statement "LAB_00020f18:\n  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f77];" statement_identifier : (expression_statement "ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f77];" (assignment_expression "ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f77]" identifier = (cast_expression "(int ****)appppppiStack_138[0][-0x1f77]" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "appppppiStack_138[0][-0x1f77]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) ;)) (if_statement "if (iStack_e4 == *piStack_12c) {\n    return uVar10;\n  }" if (parenthesized_expression "(iStack_e4 == *piStack_12c)" ( (binary_expression "iStack_e4 == *piStack_12c" identifier == (pointer_expression "*piStack_12c" * identifier)) )) (compound_statement "{\n    return uVar10;\n  }" { (return_statement "return uVar10;" return identifier ;) })) (expression_statement "pcVar15 = FUN_00021550;" (assignment_expression "pcVar15 = FUN_00021550" identifier = identifier) ;) (expression_statement "iVar6 = iStack_e4;" (assignment_expression "iVar6 = iStack_e4" identifier = identifier) ;) (expression_statement "(*(code *)ppppiVar19)();" (call_expression "(*(code *)ppppiVar19)()" (parenthesized_expression "(*(code *)ppppiVar19)" ( (pointer_expression "*(code *)ppppiVar19" * (cast_expression "(code *)ppppiVar19" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "*(int ********)(puVar38 + -0x18) = pppppppiVar30;" (assignment_expression "*(int ********)(puVar38 + -0x18) = pppppppiVar30" (pointer_expression "*(int ********)(puVar38 + -0x18)" * (cast_expression "(int ********)(puVar38 + -0x18)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(puVar38 + -0x18)" ( (binary_expression "puVar38 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int ********)(puVar38 + -0x14) = param_3;" (assignment_expression "*(int ********)(puVar38 + -0x14) = param_3" (pointer_expression "*(int ********)(puVar38 + -0x14)" * (cast_expression "(int ********)(puVar38 + -0x14)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(puVar38 + -0x14)" ( (binary_expression "puVar38 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int ********)(puVar38 + -0x1c) = pppppppiVar7;" (assignment_expression "*(int ********)(puVar38 + -0x1c) = pppppppiVar7" (pointer_expression "*(int ********)(puVar38 + -0x1c)" * (cast_expression "(int ********)(puVar38 + -0x1c)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(puVar38 + -0x1c)" ( (binary_expression "puVar38 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int ********)(puVar38 + -0x10) = pppppppiVar23;" (assignment_expression "*(int ********)(puVar38 + -0x10) = pppppppiVar23" (pointer_expression "*(int ********)(puVar38 + -0x10)" * (cast_expression "(int ********)(puVar38 + -0x10)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(puVar38 + -0x10)" ( (binary_expression "puVar38 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *****)(puVar38 + -0x28) = ppppiVar19 + 0x8ae0;" (assignment_expression "*(int *****)(puVar38 + -0x28) = ppppiVar19 + 0x8ae0" (pointer_expression "*(int *****)(puVar38 + -0x28)" * (cast_expression "(int *****)(puVar38 + -0x28)" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar38 + -0x28)" ( (binary_expression "puVar38 + -0x28" identifier + number_literal) )))) = (binary_expression "ppppiVar19 + 0x8ae0" identifier + number_literal)) ;) (expression_statement "*(int ********)(puVar38 + -0x20) = pppppppiVar22;" (assignment_expression "*(int ********)(puVar38 + -0x20) = pppppppiVar22" (pointer_expression "*(int ********)(puVar38 + -0x20)" * (cast_expression "(int ********)(puVar38 + -0x20)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(puVar38 + -0x20)" ( (binary_expression "puVar38 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar38 + -4) = pcVar15;" (assignment_expression "*(code **)(puVar38 + -4) = pcVar15" (pointer_expression "*(code **)(puVar38 + -4)" * (cast_expression "(code **)(puVar38 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + -4)" ( (binary_expression "puVar38 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar38 + -8) = piVar34;" (assignment_expression "*(int **)(puVar38 + -8) = piVar34" (pointer_expression "*(int **)(puVar38 + -8)" * (cast_expression "(int **)(puVar38 + -8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + -8)" ( (binary_expression "puVar38 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int ***)(puVar38 + -0xc) = ppiVar33;" (assignment_expression "*(int ***)(puVar38 + -0xc) = ppiVar33" (pointer_expression "*(int ***)(puVar38 + -0xc)" * (cast_expression "(int ***)(puVar38 + -0xc)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar38 + -0xc)" ( (binary_expression "puVar38 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar31 = *(int *)(puVar38 + 0x10);" (assignment_expression "iVar31 = *(int *)(puVar38 + 0x10)" identifier = (pointer_expression "*(int *)(puVar38 + 0x10)" * (cast_expression "(int *)(puVar38 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x10)" ( (binary_expression "puVar38 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar38 + -0x30) = 8;" (assignment_expression "*(undefined4 *)(puVar38 + -0x30) = 8" (pointer_expression "*(undefined4 *)(puVar38 + -0x30)" * (cast_expression "(undefined4 *)(puVar38 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x30)" ( (binary_expression "puVar38 + -0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar38 + -0x34) = iVar31;" (assignment_expression "*(int *)(puVar38 + -0x34) = iVar31" (pointer_expression "*(int *)(puVar38 + -0x34)" * (cast_expression "(int *)(puVar38 + -0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x34)" ( (binary_expression "puVar38 + -0x34" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int ********)(puVar38 + -0x38) = pppppppiVar25;" (assignment_expression "*(int ********)(puVar38 + -0x38) = pppppppiVar25" (pointer_expression "*(int ********)(puVar38 + -0x38)" * (cast_expression "(int ********)(puVar38 + -0x38)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(puVar38 + -0x38)" ( (binary_expression "puVar38 + -0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar10 = FUN_00020550();" (assignment_expression "uVar10 = FUN_00020550()" identifier = (call_expression "FUN_00020550()" identifier (argument_list "()" ( )))) ;) (if_statement "if (uVar10 != 0) {\n    return uVar10;\n  }" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (compound_statement "{\n    return uVar10;\n  }" { (return_statement "return uVar10;" return identifier ;) })) (expression_statement "iVar11 = *(int *)(iVar6 + 0x6c);" (assignment_expression "iVar11 = *(int *)(iVar6 + 0x6c)" identifier = (pointer_expression "*(int *)(iVar6 + 0x6c)" * (cast_expression "(int *)(iVar6 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x6c)" ( (binary_expression "iVar6 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "ppppppiVar14 = *pppppppiVar3;" (assignment_expression "ppppppiVar14 = *pppppppiVar3" identifier = (pointer_expression "*pppppppiVar3" * identifier)) ;) (expression_statement "ppppppiVar13 = pppppppiVar12[1];" (assignment_expression "ppppppiVar13 = pppppppiVar12[1]" identifier = (subscript_expression "pppppppiVar12[1]" identifier [ number_literal ])) ;) (expression_statement "iVar20 = *(int *)(iVar6 + 0x74);" (assignment_expression "iVar20 = *(int *)(iVar6 + 0x74)" identifier = (pointer_expression "*(int *)(iVar6 + 0x74)" * (cast_expression "(int *)(iVar6 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x74)" ( (binary_expression "iVar6 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "ppppppiVar32 = ppppppiVar13;" (assignment_expression "ppppppiVar32 = ppppppiVar13" identifier = identifier) ;) (if_statement "if (*(int *)(iVar6 + 0x70) <= iVar11) {\n    iVar11 = (**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))\n                       (iVar20,*(int *)(iVar6 + 0x70) * 0x28);\n    if (iVar11 == 0) {\n      (**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74));\n      return 0xc;\n    }\n    pcVar15 = *(code **)(*(int *)(puVar38 + -0x28) + -0x7e40);\n    *(int *)(iVar6 + 0x74) = iVar11;\n    (*pcVar15)(iVar11 + *(int *)(iVar6 + 0x6c) * 0x14,0,*(int *)(iVar6 + 0x70) * 0x14);\n    ppppppiVar32 = pppppppiVar12[1];\n    iVar11 = *(int *)(iVar6 + 0x6c);\n    iVar20 = *(int *)(iVar6 + 0x74);\n    *(int *)(iVar6 + 0x70) = *(int *)(iVar6 + 0x70) << 1;\n  }" if (parenthesized_expression "(*(int *)(iVar6 + 0x70) <= iVar11)" ( (binary_expression "*(int *)(iVar6 + 0x70) <= iVar11" (pointer_expression "*(int *)(iVar6 + 0x70)" * (cast_expression "(int *)(iVar6 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x70)" ( (binary_expression "iVar6 + 0x70" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n    iVar11 = (**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))\n                       (iVar20,*(int *)(iVar6 + 0x70) * 0x28);\n    if (iVar11 == 0) {\n      (**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74));\n      return 0xc;\n    }\n    pcVar15 = *(code **)(*(int *)(puVar38 + -0x28) + -0x7e40);\n    *(int *)(iVar6 + 0x74) = iVar11;\n    (*pcVar15)(iVar11 + *(int *)(iVar6 + 0x6c) * 0x14,0,*(int *)(iVar6 + 0x70) * 0x14);\n    ppppppiVar32 = pppppppiVar12[1];\n    iVar11 = *(int *)(iVar6 + 0x6c);\n    iVar20 = *(int *)(iVar6 + 0x74);\n    *(int *)(iVar6 + 0x70) = *(int *)(iVar6 + 0x70) << 1;\n  }" { (expression_statement "iVar11 = (**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))\n                       (iVar20,*(int *)(iVar6 + 0x70) * 0x28);" (assignment_expression "iVar11 = (**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))\n                       (iVar20,*(int *)(iVar6 + 0x70) * 0x28)" identifier = (call_expression "(**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))\n                       (iVar20,*(int *)(iVar6 + 0x70) * 0x28)" (parenthesized_expression "(**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))" ( (pointer_expression "**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18)" * (pointer_expression "*(code **)(*(int *)(puVar38 + -0x28) + -0x7e18)" * (cast_expression "(code **)(*(int *)(puVar38 + -0x28) + -0x7e18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar38 + -0x28) + -0x7e18)" ( (binary_expression "*(int *)(puVar38 + -0x28) + -0x7e18" (pointer_expression "*(int *)(puVar38 + -0x28)" * (cast_expression "(int *)(puVar38 + -0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x28)" ( (binary_expression "puVar38 + -0x28" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar20,*(int *)(iVar6 + 0x70) * 0x28)" ( identifier , (binary_expression "*(int *)(iVar6 + 0x70) * 0x28" (pointer_expression "*(int *)(iVar6 + 0x70)" * (cast_expression "(int *)(iVar6 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x70)" ( (binary_expression "iVar6 + 0x70" identifier + number_literal) )))) * number_literal) )))) ;) (if_statement "if (iVar11 == 0) {\n      (**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74));\n      return 0xc;\n    }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n      (**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74));\n      return 0xc;\n    }" { (expression_statement "(**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74));" (call_expression "(**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74))" (parenthesized_expression "(**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))" ( (pointer_expression "**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0)" * (pointer_expression "*(code **)(*(int *)(puVar38 + -0x28) + -0x7db0)" * (cast_expression "(code **)(*(int *)(puVar38 + -0x28) + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar38 + -0x28) + -0x7db0)" ( (binary_expression "*(int *)(puVar38 + -0x28) + -0x7db0" (pointer_expression "*(int *)(puVar38 + -0x28)" * (cast_expression "(int *)(puVar38 + -0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x28)" ( (binary_expression "puVar38 + -0x28" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x74))" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x74)" * (cast_expression "(undefined4 *)(iVar6 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x74)" ( (binary_expression "iVar6 + 0x74" identifier + number_literal) )))) ))) ;) (return_statement "return 0xc;" return number_literal ;) })) (expression_statement "pcVar15 = *(code **)(*(int *)(puVar38 + -0x28) + -0x7e40);" (assignment_expression "pcVar15 = *(code **)(*(int *)(puVar38 + -0x28) + -0x7e40)" identifier = (pointer_expression "*(code **)(*(int *)(puVar38 + -0x28) + -0x7e40)" * (cast_expression "(code **)(*(int *)(puVar38 + -0x28) + -0x7e40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar38 + -0x28) + -0x7e40)" ( (binary_expression "*(int *)(puVar38 + -0x28) + -0x7e40" (pointer_expression "*(int *)(puVar38 + -0x28)" * (cast_expression "(int *)(puVar38 + -0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x28)" ( (binary_expression "puVar38 + -0x28" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(int *)(iVar6 + 0x74) = iVar11;" (assignment_expression "*(int *)(iVar6 + 0x74) = iVar11" (pointer_expression "*(int *)(iVar6 + 0x74)" * (cast_expression "(int *)(iVar6 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x74)" ( (binary_expression "iVar6 + 0x74" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar15)(iVar11 + *(int *)(iVar6 + 0x6c) * 0x14,0,*(int *)(iVar6 + 0x70) * 0x14);" (call_expression "(*pcVar15)(iVar11 + *(int *)(iVar6 + 0x6c) * 0x14,0,*(int *)(iVar6 + 0x70) * 0x14)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(iVar11 + *(int *)(iVar6 + 0x6c) * 0x14,0,*(int *)(iVar6 + 0x70) * 0x14)" ( (binary_expression "iVar11 + *(int *)(iVar6 + 0x6c) * 0x14" identifier + (binary_expression "*(int *)(iVar6 + 0x6c) * 0x14" (pointer_expression "*(int *)(iVar6 + 0x6c)" * (cast_expression "(int *)(iVar6 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x6c)" ( (binary_expression "iVar6 + 0x6c" identifier + number_literal) )))) * number_literal)) , number_literal , (binary_expression "*(int *)(iVar6 + 0x70) * 0x14" (pointer_expression "*(int *)(iVar6 + 0x70)" * (cast_expression "(int *)(iVar6 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x70)" ( (binary_expression "iVar6 + 0x70" identifier + number_literal) )))) * number_literal) ))) ;) (expression_statement "ppppppiVar32 = pppppppiVar12[1];" (assignment_expression "ppppppiVar32 = pppppppiVar12[1]" identifier = (subscript_expression "pppppppiVar12[1]" identifier [ number_literal ])) ;) (expression_statement "iVar11 = *(int *)(iVar6 + 0x6c);" (assignment_expression "iVar11 = *(int *)(iVar6 + 0x6c)" identifier = (pointer_expression "*(int *)(iVar6 + 0x6c)" * (cast_expression "(int *)(iVar6 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x6c)" ( (binary_expression "iVar6 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = *(int *)(iVar6 + 0x74);" (assignment_expression "iVar20 = *(int *)(iVar6 + 0x74)" identifier = (pointer_expression "*(int *)(iVar6 + 0x74)" * (cast_expression "(int *)(iVar6 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x74)" ( (binary_expression "iVar6 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar6 + 0x70) = *(int *)(iVar6 + 0x70) << 1;" (assignment_expression "*(int *)(iVar6 + 0x70) = *(int *)(iVar6 + 0x70) << 1" (pointer_expression "*(int *)(iVar6 + 0x70)" * (cast_expression "(int *)(iVar6 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x70)" ( (binary_expression "iVar6 + 0x70" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar6 + 0x70) << 1" (pointer_expression "*(int *)(iVar6 + 0x70)" * (cast_expression "(int *)(iVar6 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x70)" ( (binary_expression "iVar6 + 0x70" identifier + number_literal) )))) << number_literal)) ;) })) (if_statement "if ((0 < iVar11) && (iVar24 = iVar20 + iVar11 * 0x14 + -0x14, iVar31 == *(int *)(iVar24 + 4))) {\n    *(undefined1 *)(iVar24 + 0x10) = 1;\n  }" if (parenthesized_expression "((0 < iVar11) && (iVar24 = iVar20 + iVar11 * 0x14 + -0x14, iVar31 == *(int *)(iVar24 + 4)))" ( (binary_expression "(0 < iVar11) && (iVar24 = iVar20 + iVar11 * 0x14 + -0x14, iVar31 == *(int *)(iVar24 + 4))" (parenthesized_expression "(0 < iVar11)" ( (binary_expression "0 < iVar11" number_literal < identifier) )) && (parenthesized_expression "(iVar24 = iVar20 + iVar11 * 0x14 + -0x14, iVar31 == *(int *)(iVar24 + 4))" ( (comma_expression "iVar24 = iVar20 + iVar11 * 0x14 + -0x14, iVar31 == *(int *)(iVar24 + 4)" (assignment_expression "iVar24 = iVar20 + iVar11 * 0x14 + -0x14" identifier = (binary_expression "iVar20 + iVar11 * 0x14 + -0x14" (binary_expression "iVar20 + iVar11 * 0x14" identifier + (binary_expression "iVar11 * 0x14" identifier * number_literal)) + number_literal)) , (binary_expression "iVar31 == *(int *)(iVar24 + 4)" identifier == (pointer_expression "*(int *)(iVar24 + 4)" * (cast_expression "(int *)(iVar24 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 4)" ( (binary_expression "iVar24 + 4" identifier + number_literal) )))))) ))) )) (compound_statement "{\n    *(undefined1 *)(iVar24 + 0x10) = 1;\n  }" { (expression_statement "*(undefined1 *)(iVar24 + 0x10) = 1;" (assignment_expression "*(undefined1 *)(iVar24 + 0x10) = 1" (pointer_expression "*(undefined1 *)(iVar24 + 0x10)" * (cast_expression "(undefined1 *)(iVar24 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x10)" ( (binary_expression "iVar24 + 0x10" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "puVar21 = (undefined4 *)(iVar20 + iVar11 * 0x14);" (assignment_expression "puVar21 = (undefined4 *)(iVar20 + iVar11 * 0x14)" identifier = (cast_expression "(undefined4 *)(iVar20 + iVar11 * 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + iVar11 * 0x14)" ( (binary_expression "iVar20 + iVar11 * 0x14" identifier + (binary_expression "iVar11 * 0x14" identifier * number_literal)) )))) ;) (expression_statement "*puVar21 = pppppppiVar25;" (assignment_expression "*puVar21 = pppppppiVar25" (pointer_expression "*puVar21" * identifier) = identifier) ;) (expression_statement "puVar21[1] = iVar31;" (assignment_expression "puVar21[1] = iVar31" (subscript_expression "puVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[2] = ppppppiVar14;" (assignment_expression "puVar21[2] = ppppppiVar14" (subscript_expression "puVar21[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[3] = ppppppiVar13;" (assignment_expression "puVar21[3] = ppppppiVar13" (subscript_expression "puVar21[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(ushort *)((int)puVar21 + 0x12) = -(ushort)(ppppppiVar14 == ppppppiVar13);" (assignment_expression "*(ushort *)((int)puVar21 + 0x12) = -(ushort)(ppppppiVar14 == ppppppiVar13)" (pointer_expression "*(ushort *)((int)puVar21 + 0x12)" * (cast_expression "(ushort *)((int)puVar21 + 0x12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar21 + 0x12)" ( (binary_expression "(int)puVar21 + 0x12" (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (unary_expression "-(ushort)(ppppppiVar14 == ppppppiVar13)" - (call_expression "(ushort)(ppppppiVar14 == ppppppiVar13)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(ppppppiVar14 == ppppppiVar13)" ( (binary_expression "ppppppiVar14 == ppppppiVar13" identifier == identifier) ))))) ;) (expression_statement "*(int *)(iVar6 + 0x6c) = iVar11 + 1;" (assignment_expression "*(int *)(iVar6 + 0x6c) = iVar11 + 1" (pointer_expression "*(int *)(iVar6 + 0x6c)" * (cast_expression "(int *)(iVar6 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x6c)" ( (binary_expression "iVar6 + 0x6c" identifier + number_literal) )))) = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(puVar21 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar21 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar21 + 4)" * (cast_expression "(undefined1 *)(puVar21 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 4)" ( (binary_expression "puVar21 + 4" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(int *)(iVar6 + 0x78) < (int)ppppppiVar13 - (int)ppppppiVar14) {\n    *(int *)(iVar6 + 0x78) = (int)ppppppiVar13 - (int)ppppppiVar14;\n  }" if (parenthesized_expression "(*(int *)(iVar6 + 0x78) < (int)ppppppiVar13 - (int)ppppppiVar14)" ( (binary_expression "*(int *)(iVar6 + 0x78) < (int)ppppppiVar13 - (int)ppppppiVar14" (pointer_expression "*(int *)(iVar6 + 0x78)" * (cast_expression "(int *)(iVar6 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x78)" ( (binary_expression "iVar6 + 0x78" identifier + number_literal) )))) < (binary_expression "(int)ppppppiVar13 - (int)ppppppiVar14" (cast_expression "(int)ppppppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppppppiVar14" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n    *(int *)(iVar6 + 0x78) = (int)ppppppiVar13 - (int)ppppppiVar14;\n  }" { (expression_statement "*(int *)(iVar6 + 0x78) = (int)ppppppiVar13 - (int)ppppppiVar14;" (assignment_expression "*(int *)(iVar6 + 0x78) = (int)ppppppiVar13 - (int)ppppppiVar14" (pointer_expression "*(int *)(iVar6 + 0x78)" * (cast_expression "(int *)(iVar6 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x78)" ( (binary_expression "iVar6 + 0x78" identifier + number_literal) )))) = (binary_expression "(int)ppppppiVar13 - (int)ppppppiVar14" (cast_expression "(int)ppppppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppppppiVar14" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (expression_statement "uVar10 = FUN_00019470(iVar6,(int)ppppppiVar32 + (iVar31 - (int)*pppppppiVar3));" (assignment_expression "uVar10 = FUN_00019470(iVar6,(int)ppppppiVar32 + (iVar31 - (int)*pppppppiVar3))" identifier = (call_expression "FUN_00019470(iVar6,(int)ppppppiVar32 + (iVar31 - (int)*pppppppiVar3))" identifier (argument_list "(iVar6,(int)ppppppiVar32 + (iVar31 - (int)*pppppppiVar3))" ( identifier , (binary_expression "(int)ppppppiVar32 + (iVar31 - (int)*pppppppiVar3)" (cast_expression "(int)ppppppiVar32" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(iVar31 - (int)*pppppppiVar3)" ( (binary_expression "iVar31 - (int)*pppppppiVar3" identifier - (cast_expression "(int)*pppppppiVar3" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppppppiVar3" * identifier))) ))) )))) ;) (return_statement "return uVar10;" return identifier ;) (labeled_statement "LAB_00020f60:\n  ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];" statement_identifier : (expression_statement "ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];" (assignment_expression "ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c]" identifier = (subscript_expression "((int *****)ppppppiVar32)[-0x1f6c]" (parenthesized_expression "((int *****)ppppppiVar32)" ( (cast_expression "(int *****)ppppppiVar32" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ])) ;)) (expression_statement "pppppppiVar25 = pppppppiStack_100;" (assignment_expression "pppppppiVar25 = pppppppiStack_100" identifier = identifier) ;) (if_statement "if (pppppppiVar28 == (int *******)&SUB_fffffffe) {\nLAB_000213b0:\n    (*(code *)ppppiVar19)(ppppppiStack_f4);\n    if (iStack_128 != 0) {\nLAB_000214d4:\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n    }\n    if (ppiVar33 != (int **)0x0) goto LAB_0002112c;\n    uVar10 = 0xc;\n    goto LAB_00020f18;\n  }" if (parenthesized_expression "(pppppppiVar28 == (int *******)&SUB_fffffffe)" ( (binary_expression "pppppppiVar28 == (int *******)&SUB_fffffffe" identifier == (cast_expression "(int *******)&SUB_fffffffe" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&SUB_fffffffe" & identifier))) )) (compound_statement "{\nLAB_000213b0:\n    (*(code *)ppppiVar19)(ppppppiStack_f4);\n    if (iStack_128 != 0) {\nLAB_000214d4:\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n    }\n    if (ppiVar33 != (int **)0x0) goto LAB_0002112c;\n    uVar10 = 0xc;\n    goto LAB_00020f18;\n  }" { (labeled_statement "LAB_000213b0:\n    (*(code *)ppppiVar19)(ppppppiStack_f4);" statement_identifier : (expression_statement "(*(code *)ppppiVar19)(ppppppiStack_f4);" (call_expression "(*(code *)ppppiVar19)(ppppppiStack_f4)" (parenthesized_expression "(*(code *)ppppiVar19)" ( (pointer_expression "*(code *)ppppiVar19" * (cast_expression "(code *)ppppiVar19" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppppppiStack_f4)" ( identifier ))) ;)) (if_statement "if (iStack_128 != 0) {\nLAB_000214d4:\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n    }" if (parenthesized_expression "(iStack_128 != 0)" ( (binary_expression "iStack_128 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000214d4:\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n    }" { (labeled_statement "LAB_000214d4:\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);" statement_identifier : (expression_statement "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);" (call_expression "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124)" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f6c])" ( (pointer_expression "*(code *)appppppiStack_138[0][-0x1f6c]" * (cast_expression "(code *)appppppiStack_138[0][-0x1f6c]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "appppppiStack_138[0][-0x1f6c]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(pppppppiStack_124)" ( identifier ))) ;)) })) (if_statement "if (ppiVar33 != (int **)0x0) goto LAB_0002112c;" if (parenthesized_expression "(ppiVar33 != (int **)0x0)" ( (binary_expression "ppiVar33 != (int **)0x0" identifier != (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_0002112c;" goto statement_identifier ;)) (expression_statement "uVar10 = 0xc;" (assignment_expression "uVar10 = 0xc" identifier = number_literal) ;) (goto_statement "goto LAB_00020f18;" goto statement_identifier ;) })) (labeled_statement "LAB_00020f6c:\n  pppppppiVar27 = pppppppiVar30;" statement_identifier : (expression_statement "pppppppiVar27 = pppppppiVar30;" (assignment_expression "pppppppiVar27 = pppppppiVar30" identifier = identifier) ;)) (if_statement "if (ppiVar33 == (int **)0x0) {\n    (*(code *)((int *****)ppppppiVar32)[-0x1f6c])(ppppppiStack_f4);\n    if (iStack_128 == 0) {\n      uVar10 = 1;\n    }\n    else {\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n      uVar10 = 1;\n    }\n    goto LAB_00020f18;\n  }" if (parenthesized_expression "(ppiVar33 == (int **)0x0)" ( (binary_expression "ppiVar33 == (int **)0x0" identifier == (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n    (*(code *)((int *****)ppppppiVar32)[-0x1f6c])(ppppppiStack_f4);\n    if (iStack_128 == 0) {\n      uVar10 = 1;\n    }\n    else {\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n      uVar10 = 1;\n    }\n    goto LAB_00020f18;\n  }" { (expression_statement "(*(code *)((int *****)ppppppiVar32)[-0x1f6c])(ppppppiStack_f4);" (call_expression "(*(code *)((int *****)ppppppiVar32)[-0x1f6c])(ppppppiStack_f4)" (parenthesized_expression "(*(code *)((int *****)ppppppiVar32)[-0x1f6c])" ( (pointer_expression "*(code *)((int *****)ppppppiVar32)[-0x1f6c]" * (cast_expression "(code *)((int *****)ppppppiVar32)[-0x1f6c]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "((int *****)ppppppiVar32)[-0x1f6c]" (parenthesized_expression "((int *****)ppppppiVar32)" ( (cast_expression "(int *****)ppppppiVar32" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]))) )) (argument_list "(ppppppiStack_f4)" ( identifier ))) ;) (if_statement "if (iStack_128 == 0) {\n      uVar10 = 1;\n    }\n    else {\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n      uVar10 = 1;\n    }" if (parenthesized_expression "(iStack_128 == 0)" ( (binary_expression "iStack_128 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar10 = 1;\n    }" { (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n      uVar10 = 1;\n    }" else (compound_statement "{\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n      uVar10 = 1;\n    }" { (expression_statement "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);" (call_expression "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124)" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f6c])" ( (pointer_expression "*(code *)appppppiStack_138[0][-0x1f6c]" * (cast_expression "(code *)appppppiStack_138[0][-0x1f6c]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "appppppiStack_138[0][-0x1f6c]" (subscript_expression "appppppiStack_138[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(pppppppiStack_124)" ( identifier ))) ;) (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) }))) (goto_statement "goto LAB_00020f18;" goto statement_identifier ;) })) (labeled_statement "LAB_00020f7c:\n  ppppiVar19 = ppppiStack_120;" statement_identifier : (expression_statement "ppppiVar19 = ppppiStack_120;" (assignment_expression "ppppiVar19 = ppppiStack_120" identifier = identifier) ;)) (expression_statement "pppppppiVar12 = (int *******)&pppppppiStack_100;" (assignment_expression "pppppppiVar12 = (int *******)&pppppppiStack_100" identifier = (cast_expression "(int *******)&pppppppiStack_100" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&pppppppiStack_100" & identifier))) ;) (expression_statement "pppppppiVar3 = (int *******)(ppiVar33 + 2);" (assignment_expression "pppppppiVar3 = (int *******)(ppiVar33 + 2)" identifier = (cast_expression "(int *******)(ppiVar33 + 2)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(ppiVar33 + 2)" ( (binary_expression "ppiVar33 + 2" identifier + number_literal) )))) ;) (expression_statement "*(int ********)(puVar37 + 0x14) = param_3;" (assignment_expression "*(int ********)(puVar37 + 0x14) = param_3" (pointer_expression "*(int ********)(puVar37 + 0x14)" * (cast_expression "(int ********)(puVar37 + 0x14)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(puVar37 + 0x14)" ( (binary_expression "puVar37 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int ********)(puVar37 + 0x10) = pppppppiVar7;" (assignment_expression "*(int ********)(puVar37 + 0x10) = pppppppiVar7" (pointer_expression "*(int ********)(puVar37 + 0x10)" * (cast_expression "(int ********)(puVar37 + 0x10)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(puVar37 + 0x10)" ( (binary_expression "puVar37 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pppppppiVar28 =\n       (int *******)(*(code *)ppppiVar19)(ppiVar33,pppppppiVar3,pppppppiVar12,pppppppiVar23);" (assignment_expression "pppppppiVar28 =\n       (int *******)(*(code *)ppppiVar19)(ppiVar33,pppppppiVar3,pppppppiVar12,pppppppiVar23)" identifier = (cast_expression "(int *******)(*(code *)ppppiVar19)(ppiVar33,pppppppiVar3,pppppppiVar12,pppppppiVar23)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)ppppiVar19)(ppiVar33,pppppppiVar3,pppppppiVar12,pppppppiVar23)" (parenthesized_expression "(*(code *)ppppiVar19)" ( (pointer_expression "*(code *)ppppiVar19" * (cast_expression "(code *)ppppiVar19" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppiVar33,pppppppiVar3,pppppppiVar12,pppppppiVar23)" ( identifier , identifier , identifier , identifier ))))) ;) (expression_statement "pppppppiVar30 = pppppppiVar27;" (assignment_expression "pppppppiVar30 = pppppppiVar27" identifier = identifier) ;) (goto_statement "goto LAB_00020db0;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))))) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))))) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))))) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))))) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))))) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))))) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (array_declarator IDENT [ LIT ]))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) && (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ IDENT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ IDENT ]) + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))))) ))) )) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (subscript_expression IDENT [ LIT ]) [ IDENT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) }))) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) , LIT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ))) ;) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) ))) < LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]))) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) )))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]) + LIT) )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + LIT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) )) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT) ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT * LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) )) [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (subscript_expression IDENT [ (binary_expression IDENT * LIT) ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)))) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ 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 (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (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 IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ])) == IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) )) [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]))) )) (argument_list ( IDENT ))) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) < LIT) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) )) [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )) * LIT)) )) [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT))) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (labeled_statement 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 = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ])))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) )) [ LIT ]))) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement 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 = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT))) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]))) )) (argument_list ( (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) })) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) )) [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (break_statement break ;)) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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) )))) = 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 * (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor 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 (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT)) , (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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) )))) = (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == IDENT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ))) )))) ;) (return_statement return IDENT ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) )) [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]))) )) (argument_list ( IDENT ))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) )) [ LIT ]))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "uint FUN_00020550(int *******param_1,int *******param_2,int *******param_3,int *******param_4,\n                 int *******param_5,int param_6,int *******param_7)\n\n{\n  uint *puVar1;\n  undefined *puVar2;\n  int *******pppppppiVar3;\n  int ******ppppppiVar4;\n  code *pcVar5;\n  int iVar6;\n  int *******pppppppiVar7;\n  int *****pppppiVar8;\n  int *piVar9;\n  uint uVar10;\n  int iVar11;\n  int *******pppppppiVar12;\n  int ******ppppppiVar13;\n  int ******ppppppiVar14;\n  code *pcVar15;\n  code *pcVar16;\n  code *pcVar17;\n  int ******ppppppiVar18;\n  int ****ppppiVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  int *******pppppppiVar22;\n  int *******pppppppiVar23;\n  int iVar24;\n  int *******pppppppiVar25;\n  int *******pppppppiVar26;\n  int *******pppppppiVar27;\n  int *******pppppppiVar28;\n  int *******pppppppiVar29;\n  int *******pppppppiVar30;\n  int iVar31;\n  int ******ppppppiVar32;\n  int *******unaff_s5;\n  int **ppiVar33;\n  int *piVar34;\n  int ******unaff_s7;\n  undefined *puVar35;\n  int ****ppppiVar36;\n  undefined1 *puVar37;\n  undefined1 *puVar38;\n  undefined1 *puVar39;\n  int *******unaff_s8;\n  undefined1 auStack_150 [24];\n  int ******appppppiStack_138 [2];\n  int *******pppppppiStack_130;\n  int *piStack_12c;\n  int iStack_128;\n  int *******pppppppiStack_124;\n  int ****ppppiStack_120;\n  int *******pppppppiStack_11c;\n  int ****ppppiStack_118;\n  int ****ppppiStack_114;\n  int ****ppppiStack_110;\n  int *******pppppppiStack_10c;\n  int *******pppppppiStack_108;\n  int ****ppppiStack_104;\n  int *******pppppppiStack_100;\n  int ******ppppppiStack_fc;\n  undefined4 uStack_f8;\n  int ******ppppppiStack_f4;\n  int *piStack_f0;\n  undefined4 uStack_ec;\n  int iStack_e8;\n  int iStack_e4;\n  int *******pppppppiStack_e0;\n  int *******pppppppiStack_dc;\n  int *******pppppppiStack_d8;\n  int *******pppppppiStack_d4;\n  int ******ppppppiStack_d0;\n  int *******pppppppiStack_cc;\n  int *******pppppppiStack_c8;\n  int ******ppppppiStack_c4;\n  int *******pppppppiStack_c0;\n  code *pcStack_bc;\n  undefined4 local_a8;\n  int local_8c;\n  code *local_6c;\n  uint local_4c;\n  uint local_48 [3];\n  undefined4 *local_3c;\n  int ******local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 *local_2c;\n  \n  puVar35 = PTR___stack_chk_guard_0003c314;\n  pppppppiVar12 = (int *******)param_1[0x15];\n  pppppppiVar30 = (int *******)param_2[1];\n  local_2c = *(undefined4 **)PTR___stack_chk_guard_0003c314;\n  pppppppiVar22 = (int *******)((int)param_3 * 8);\n  pppppppiVar23 = (int *******)(param_6 + (int)param_1[0x1e]);\n  local_4c = 0;\n  pppppppiVar3 = (int *******)(*pppppppiVar12)[(int)param_3 * 2];\n  pppppppiVar7 = param_4;\n  if ((int)pppppppiVar23 < (int)pppppppiVar30) {\nLAB_000205e8:\n    puVar2 = PTR_LAB_0003c1e8;\n    ppppppiVar13 = param_1[0x19];\n    pppppppiVar23 = (int *******)param_1[0x16];\n    pppppppiVar28 = (int *******)*param_2;\n    ppppppiVar32 = param_2[2];\n    ppppppiVar14 = param_1[10];\n    if (pppppppiVar28 == (int *******)0x0) {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)param_4 + -1);\n      param_1[10] = (int ******)param_4;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\nLAB_00020b7c:\n      local_48[1] = 1;\n      local_48[2] = 1;\n      local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4);\n      if (local_3c == (undefined4 *)0x0) goto LAB_00020c64;\n      pppppppiVar22 = (int *******)(local_48 + 1);\n      *local_3c = param_3;\n      local_4c = 0;\n      pppppppiVar23 = pppppppiVar3;\n      pppppppiVar7 = param_7;\n      local_4c = FUN_0001afe8(pppppppiVar12);\n      pppppppiVar28 = param_4;\n      if (local_4c == 0) {\nLAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);\n        if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }\n        pppppppiVar22 = pppppppiVar12;\n        pppppppiVar7 = pppppppiVar30;\n        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n        pppppppiVar23 = pppppppiVar25;\n        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }\n      }\nLAB_00020920:\n      (*(code *)PTR_free_0003c320)(local_3c);\n      uVar10 = local_4c;\n    }\n    else {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);\n      param_1[10] = (int ******)pppppppiVar28;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\n      if (pppppppiVar28 == param_4) goto LAB_00020b7c;\n      ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;\n      unaff_s7 = (int ******)*ppppppiVar32;\n      pppppppiVar25 = pppppppiVar28;\n      if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }\n      else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }\n  }\n  else {\n    pppppppiVar28 = (int *******)((int)pppppppiVar23 + 1);\n    ppppppiVar32 = (int ******)((int)pppppppiVar30 + (int)pppppppiVar28);\n    if (((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&\n       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)) {\n      pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);\n      ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);\n      puVar2 = PTR_memset_0003c290;\n      if (ppppppiVar13 != (int ******)0x0) {\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }\n    }\nLAB_00020c64:\n    uVar10 = 0xc;\n  }\n  if (local_2c == *(undefined4 **)puVar35) {\n    return uVar10;\n  }\n  pcVar15 = FUN_00020ca0;\n  puVar21 = local_2c;\n  puVar35 = PTR___stack_chk_fail_0003c2f4;\n  (*(code *)PTR___stack_chk_fail_0003c2f4)();\n  appppppiStack_138[0] = (int ******)(puVar35 + 0x23430);\n  puVar37 = auStack_150;\n  puVar38 = auStack_150;\n  piStack_12c = *(int **)(puVar35 + 0x1b674);\n  uStack_ec = 2;\n  piStack_f0 = (int *)0x0;\n  iStack_e8 = 0;\n  iStack_e4 = *piStack_12c;\n  piVar34 = (int *)*puVar21;\n  pppppppiVar3 = pppppppiVar22;\n  pppppppiVar12 = pppppppiVar23;\n  pppppppiVar25 = pppppppiVar7;\n  pppppppiStack_e0 = pppppppiVar28;\n  pppppppiStack_dc = param_4;\n  pppppppiStack_d8 = pppppppiVar30;\n  pppppppiStack_d4 = param_3;\n  ppppppiStack_d0 = ppppppiVar32;\n  pppppppiStack_cc = unaff_s5;\n  pppppppiStack_c8 = param_1;\n  ppppppiStack_c4 = unaff_s7;\n  pppppppiStack_c0 = unaff_s8;\n  pcStack_bc = pcVar15;\n  if ((char)local_a8 == '\0') {\n    pppppppiVar28 = (int *******)piVar34[0x12];\n    ppiVar33 = (int **)0x0;\n    if ((uint)((int)pppppppiVar23 << 3) < 0xfc0) goto LAB_00020d5c;\nLAB_00021488:\n    pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n    ppppppiStack_f4 = (int ******)0x0;\n    uStack_f8 = 0;\n    ppppppiStack_fc = (int ******)0x0;\n    param_3 = &ppppppiStack_fc;\n    pppppppiStack_124 = (int *******)(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c);\n    iStack_128 = 1;\n    if (pppppppiStack_124 != (int *******)0x0) goto LAB_00020d6c;\n    puVar37 = auStack_150;\n    if (ppiVar33 == (int **)0x0) {\n      uVar10 = 0xc;\n      goto LAB_00020f18;\n    }\nLAB_0002112c:\n    param_3 = &ppppppiStack_fc;\n    FUN_0001ec78(ppiVar33);\n    puVar39 = puVar37;\n  }\n  else {\n    ppiVar33 = &piStack_f0;\n    iStack_e8 = (**(code **)(puVar35 + 0x1b614))(0x30);\n    puVar39 = auStack_150;\n    if (iStack_e8 != 0) {\n      pppppppiVar28 = (int *******)piVar34[0x12];\n      if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n      ppppppiStack_f4 = (int ******)0x0;\n      uStack_f8 = 0;\n      ppppppiStack_fc = (int ******)0x0;\n      puVar37 = auStack_150 + (int)pppppppiVar23 * -8;\n      iStack_128 = 0;\n      pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;\nLAB_00020d6c:\n      param_3 = &ppppppiStack_fc;\n      pppppppiVar3 = pppppppiVar7;\n      pppppppiVar12 = pppppppiStack_11c;\n      (*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);\n      pppppppiStack_100 = (int *******)*pppppppiVar7;\n      ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);\n      ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);\n      ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);\nLAB_00020db0:\n      pppppppiVar29 = (int *******)pppppppiVar7[1];\n      ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n      ppppppiVar32 = appppppiStack_138[0];\n      puVar38 = puVar37;\n      if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }\n      pppppppiVar25 = pppppppiStack_100;\n      (*(code *)ppppiVar19)(ppppppiStack_f4);\n      if (iStack_128 == 0) {\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }\n      else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      FUN_0001ec78(ppiVar33);\nLAB_00020f14:\n      uVar10 = 0;\n      goto LAB_00020f18;\n    }\n  }\n  uVar10 = 0xc;\n  puVar38 = puVar39;\nLAB_00020f18:\n  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f77];\n  if (iStack_e4 == *piStack_12c) {\n    return uVar10;\n  }\n  pcVar15 = FUN_00021550;\n  iVar6 = iStack_e4;\n  (*(code *)ppppiVar19)();\n  *(int ********)(puVar38 + -0x18) = pppppppiVar30;\n  *(int ********)(puVar38 + -0x14) = param_3;\n  *(int ********)(puVar38 + -0x1c) = pppppppiVar7;\n  *(int ********)(puVar38 + -0x10) = pppppppiVar23;\n  *(int *****)(puVar38 + -0x28) = ppppiVar19 + 0x8ae0;\n  *(int ********)(puVar38 + -0x20) = pppppppiVar22;\n  *(code **)(puVar38 + -4) = pcVar15;\n  *(int **)(puVar38 + -8) = piVar34;\n  *(int ***)(puVar38 + -0xc) = ppiVar33;\n  iVar31 = *(int *)(puVar38 + 0x10);\n  *(undefined4 *)(puVar38 + -0x30) = 8;\n  *(int *)(puVar38 + -0x34) = iVar31;\n  *(int ********)(puVar38 + -0x38) = pppppppiVar25;\n  uVar10 = FUN_00020550();\n  if (uVar10 != 0) {\n    return uVar10;\n  }\n  iVar11 = *(int *)(iVar6 + 0x6c);\n  ppppppiVar14 = *pppppppiVar3;\n  ppppppiVar13 = pppppppiVar12[1];\n  iVar20 = *(int *)(iVar6 + 0x74);\n  ppppppiVar32 = ppppppiVar13;\n  if (*(int *)(iVar6 + 0x70) <= iVar11) {\n    iVar11 = (**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))\n                       (iVar20,*(int *)(iVar6 + 0x70) * 0x28);\n    if (iVar11 == 0) {\n      (**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74));\n      return 0xc;\n    }\n    pcVar15 = *(code **)(*(int *)(puVar38 + -0x28) + -0x7e40);\n    *(int *)(iVar6 + 0x74) = iVar11;\n    (*pcVar15)(iVar11 + *(int *)(iVar6 + 0x6c) * 0x14,0,*(int *)(iVar6 + 0x70) * 0x14);\n    ppppppiVar32 = pppppppiVar12[1];\n    iVar11 = *(int *)(iVar6 + 0x6c);\n    iVar20 = *(int *)(iVar6 + 0x74);\n    *(int *)(iVar6 + 0x70) = *(int *)(iVar6 + 0x70) << 1;\n  }\n  if ((0 < iVar11) && (iVar24 = iVar20 + iVar11 * 0x14 + -0x14, iVar31 == *(int *)(iVar24 + 4))) {\n    *(undefined1 *)(iVar24 + 0x10) = 1;\n  }\n  puVar21 = (undefined4 *)(iVar20 + iVar11 * 0x14);\n  *puVar21 = pppppppiVar25;\n  puVar21[1] = iVar31;\n  puVar21[2] = ppppppiVar14;\n  puVar21[3] = ppppppiVar13;\n  *(ushort *)((int)puVar21 + 0x12) = -(ushort)(ppppppiVar14 == ppppppiVar13);\n  *(int *)(iVar6 + 0x6c) = iVar11 + 1;\n  *(undefined1 *)(puVar21 + 4) = 0;\n  if (*(int *)(iVar6 + 0x78) < (int)ppppppiVar13 - (int)ppppppiVar14) {\n    *(int *)(iVar6 + 0x78) = (int)ppppppiVar13 - (int)ppppppiVar14;\n  }\n  uVar10 = FUN_00019470(iVar6,(int)ppppppiVar32 + (iVar31 - (int)*pppppppiVar3));\n  return uVar10;\nLAB_00020f60:\n  ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n  pppppppiVar25 = pppppppiStack_100;\n  if (pppppppiVar28 == (int *******)&SUB_fffffffe) {\nLAB_000213b0:\n    (*(code *)ppppiVar19)(ppppppiStack_f4);\n    if (iStack_128 != 0) {\nLAB_000214d4:\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n    }\n    if (ppiVar33 != (int **)0x0) goto LAB_0002112c;\n    uVar10 = 0xc;\n    goto LAB_00020f18;\n  }\nLAB_00020f6c:\n  pppppppiVar27 = pppppppiVar30;\n  if (ppiVar33 == (int **)0x0) {\n    (*(code *)((int *****)ppppppiVar32)[-0x1f6c])(ppppppiStack_f4);\n    if (iStack_128 == 0) {\n      uVar10 = 1;\n    }\n    else {\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n      uVar10 = 1;\n    }\n    goto LAB_00020f18;\n  }\nLAB_00020f7c:\n  ppppiVar19 = ppppiStack_120;\n  pppppppiVar12 = (int *******)&pppppppiStack_100;\n  pppppppiVar3 = (int *******)(ppiVar33 + 2);\n  *(int ********)(puVar37 + 0x14) = param_3;\n  *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n  pppppppiVar28 =\n       (int *******)(*(code *)ppppiVar19)(ppiVar33,pppppppiVar3,pppppppiVar12,pppppppiVar23);\n  pppppppiVar30 = pppppppiVar27;\n  goto LAB_00020db0;\n}" (type_identifier "uint") (function_declarator "FUN_00020550(int *******param_1,int *******param_2,int *******param_3,int *******param_4,\n                 int *******param_5,int param_6,int *******param_7)" (identifier "FUN_00020550") (parameter_list "(int *******param_1,int *******param_2,int *******param_3,int *******param_4,\n                 int *******param_5,int param_6,int *******param_7)" (( "(") (parameter_declaration "int *******param_1" (primitive_type "int") (pointer_declarator "*******param_1" (* "*") (pointer_declarator "******param_1" (* "*") (pointer_declarator "*****param_1" (* "*") (pointer_declarator "****param_1" (* "*") (pointer_declarator "***param_1" (* "*") (pointer_declarator "**param_1" (* "*") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))))))))) (, ",") (parameter_declaration "int *******param_2" (primitive_type "int") (pointer_declarator "*******param_2" (* "*") (pointer_declarator "******param_2" (* "*") (pointer_declarator "*****param_2" (* "*") (pointer_declarator "****param_2" (* "*") (pointer_declarator "***param_2" (* "*") (pointer_declarator "**param_2" (* "*") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))))))))) (, ",") (parameter_declaration "int *******param_3" (primitive_type "int") (pointer_declarator "*******param_3" (* "*") (pointer_declarator "******param_3" (* "*") (pointer_declarator "*****param_3" (* "*") (pointer_declarator "****param_3" (* "*") (pointer_declarator "***param_3" (* "*") (pointer_declarator "**param_3" (* "*") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))))))))) (, ",") (parameter_declaration "int *******param_4" (primitive_type "int") (pointer_declarator "*******param_4" (* "*") (pointer_declarator "******param_4" (* "*") (pointer_declarator "*****param_4" (* "*") (pointer_declarator "****param_4" (* "*") (pointer_declarator "***param_4" (* "*") (pointer_declarator "**param_4" (* "*") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))))))))) (, ",") (parameter_declaration "int *******param_5" (primitive_type "int") (pointer_declarator "*******param_5" (* "*") (pointer_declarator "******param_5" (* "*") (pointer_declarator "*****param_5" (* "*") (pointer_declarator "****param_5" (* "*") (pointer_declarator "***param_5" (* "*") (pointer_declarator "**param_5" (* "*") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))))))))) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) (, ",") (parameter_declaration "int *******param_7" (primitive_type "int") (pointer_declarator "*******param_7" (* "*") (pointer_declarator "******param_7" (* "*") (pointer_declarator "*****param_7" (* "*") (pointer_declarator "****param_7" (* "*") (pointer_declarator "***param_7" (* "*") (pointer_declarator "**param_7" (* "*") (pointer_declarator "*param_7" (* "*") (identifier "param_7"))))))))) () ")"))) (compound_statement "{\n  uint *puVar1;\n  undefined *puVar2;\n  int *******pppppppiVar3;\n  int ******ppppppiVar4;\n  code *pcVar5;\n  int iVar6;\n  int *******pppppppiVar7;\n  int *****pppppiVar8;\n  int *piVar9;\n  uint uVar10;\n  int iVar11;\n  int *******pppppppiVar12;\n  int ******ppppppiVar13;\n  int ******ppppppiVar14;\n  code *pcVar15;\n  code *pcVar16;\n  code *pcVar17;\n  int ******ppppppiVar18;\n  int ****ppppiVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  int *******pppppppiVar22;\n  int *******pppppppiVar23;\n  int iVar24;\n  int *******pppppppiVar25;\n  int *******pppppppiVar26;\n  int *******pppppppiVar27;\n  int *******pppppppiVar28;\n  int *******pppppppiVar29;\n  int *******pppppppiVar30;\n  int iVar31;\n  int ******ppppppiVar32;\n  int *******unaff_s5;\n  int **ppiVar33;\n  int *piVar34;\n  int ******unaff_s7;\n  undefined *puVar35;\n  int ****ppppiVar36;\n  undefined1 *puVar37;\n  undefined1 *puVar38;\n  undefined1 *puVar39;\n  int *******unaff_s8;\n  undefined1 auStack_150 [24];\n  int ******appppppiStack_138 [2];\n  int *******pppppppiStack_130;\n  int *piStack_12c;\n  int iStack_128;\n  int *******pppppppiStack_124;\n  int ****ppppiStack_120;\n  int *******pppppppiStack_11c;\n  int ****ppppiStack_118;\n  int ****ppppiStack_114;\n  int ****ppppiStack_110;\n  int *******pppppppiStack_10c;\n  int *******pppppppiStack_108;\n  int ****ppppiStack_104;\n  int *******pppppppiStack_100;\n  int ******ppppppiStack_fc;\n  undefined4 uStack_f8;\n  int ******ppppppiStack_f4;\n  int *piStack_f0;\n  undefined4 uStack_ec;\n  int iStack_e8;\n  int iStack_e4;\n  int *******pppppppiStack_e0;\n  int *******pppppppiStack_dc;\n  int *******pppppppiStack_d8;\n  int *******pppppppiStack_d4;\n  int ******ppppppiStack_d0;\n  int *******pppppppiStack_cc;\n  int *******pppppppiStack_c8;\n  int ******ppppppiStack_c4;\n  int *******pppppppiStack_c0;\n  code *pcStack_bc;\n  undefined4 local_a8;\n  int local_8c;\n  code *local_6c;\n  uint local_4c;\n  uint local_48 [3];\n  undefined4 *local_3c;\n  int ******local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 *local_2c;\n  \n  puVar35 = PTR___stack_chk_guard_0003c314;\n  pppppppiVar12 = (int *******)param_1[0x15];\n  pppppppiVar30 = (int *******)param_2[1];\n  local_2c = *(undefined4 **)PTR___stack_chk_guard_0003c314;\n  pppppppiVar22 = (int *******)((int)param_3 * 8);\n  pppppppiVar23 = (int *******)(param_6 + (int)param_1[0x1e]);\n  local_4c = 0;\n  pppppppiVar3 = (int *******)(*pppppppiVar12)[(int)param_3 * 2];\n  pppppppiVar7 = param_4;\n  if ((int)pppppppiVar23 < (int)pppppppiVar30) {\nLAB_000205e8:\n    puVar2 = PTR_LAB_0003c1e8;\n    ppppppiVar13 = param_1[0x19];\n    pppppppiVar23 = (int *******)param_1[0x16];\n    pppppppiVar28 = (int *******)*param_2;\n    ppppppiVar32 = param_2[2];\n    ppppppiVar14 = param_1[10];\n    if (pppppppiVar28 == (int *******)0x0) {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)param_4 + -1);\n      param_1[10] = (int ******)param_4;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\nLAB_00020b7c:\n      local_48[1] = 1;\n      local_48[2] = 1;\n      local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4);\n      if (local_3c == (undefined4 *)0x0) goto LAB_00020c64;\n      pppppppiVar22 = (int *******)(local_48 + 1);\n      *local_3c = param_3;\n      local_4c = 0;\n      pppppppiVar23 = pppppppiVar3;\n      pppppppiVar7 = param_7;\n      local_4c = FUN_0001afe8(pppppppiVar12);\n      pppppppiVar28 = param_4;\n      if (local_4c == 0) {\nLAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);\n        if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }\n        pppppppiVar22 = pppppppiVar12;\n        pppppppiVar7 = pppppppiVar30;\n        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n        pppppppiVar23 = pppppppiVar25;\n        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }\n      }\nLAB_00020920:\n      (*(code *)PTR_free_0003c320)(local_3c);\n      uVar10 = local_4c;\n    }\n    else {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);\n      param_1[10] = (int ******)pppppppiVar28;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\n      if (pppppppiVar28 == param_4) goto LAB_00020b7c;\n      ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;\n      unaff_s7 = (int ******)*ppppppiVar32;\n      pppppppiVar25 = pppppppiVar28;\n      if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }\n      else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }\n  }\n  else {\n    pppppppiVar28 = (int *******)((int)pppppppiVar23 + 1);\n    ppppppiVar32 = (int ******)((int)pppppppiVar30 + (int)pppppppiVar28);\n    if (((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&\n       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)) {\n      pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);\n      ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);\n      puVar2 = PTR_memset_0003c290;\n      if (ppppppiVar13 != (int ******)0x0) {\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }\n    }\nLAB_00020c64:\n    uVar10 = 0xc;\n  }\n  if (local_2c == *(undefined4 **)puVar35) {\n    return uVar10;\n  }\n  pcVar15 = FUN_00020ca0;\n  puVar21 = local_2c;\n  puVar35 = PTR___stack_chk_fail_0003c2f4;\n  (*(code *)PTR___stack_chk_fail_0003c2f4)();\n  appppppiStack_138[0] = (int ******)(puVar35 + 0x23430);\n  puVar37 = auStack_150;\n  puVar38 = auStack_150;\n  piStack_12c = *(int **)(puVar35 + 0x1b674);\n  uStack_ec = 2;\n  piStack_f0 = (int *)0x0;\n  iStack_e8 = 0;\n  iStack_e4 = *piStack_12c;\n  piVar34 = (int *)*puVar21;\n  pppppppiVar3 = pppppppiVar22;\n  pppppppiVar12 = pppppppiVar23;\n  pppppppiVar25 = pppppppiVar7;\n  pppppppiStack_e0 = pppppppiVar28;\n  pppppppiStack_dc = param_4;\n  pppppppiStack_d8 = pppppppiVar30;\n  pppppppiStack_d4 = param_3;\n  ppppppiStack_d0 = ppppppiVar32;\n  pppppppiStack_cc = unaff_s5;\n  pppppppiStack_c8 = param_1;\n  ppppppiStack_c4 = unaff_s7;\n  pppppppiStack_c0 = unaff_s8;\n  pcStack_bc = pcVar15;\n  if ((char)local_a8 == '\0') {\n    pppppppiVar28 = (int *******)piVar34[0x12];\n    ppiVar33 = (int **)0x0;\n    if ((uint)((int)pppppppiVar23 << 3) < 0xfc0) goto LAB_00020d5c;\nLAB_00021488:\n    pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n    ppppppiStack_f4 = (int ******)0x0;\n    uStack_f8 = 0;\n    ppppppiStack_fc = (int ******)0x0;\n    param_3 = &ppppppiStack_fc;\n    pppppppiStack_124 = (int *******)(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c);\n    iStack_128 = 1;\n    if (pppppppiStack_124 != (int *******)0x0) goto LAB_00020d6c;\n    puVar37 = auStack_150;\n    if (ppiVar33 == (int **)0x0) {\n      uVar10 = 0xc;\n      goto LAB_00020f18;\n    }\nLAB_0002112c:\n    param_3 = &ppppppiStack_fc;\n    FUN_0001ec78(ppiVar33);\n    puVar39 = puVar37;\n  }\n  else {\n    ppiVar33 = &piStack_f0;\n    iStack_e8 = (**(code **)(puVar35 + 0x1b614))(0x30);\n    puVar39 = auStack_150;\n    if (iStack_e8 != 0) {\n      pppppppiVar28 = (int *******)piVar34[0x12];\n      if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n      ppppppiStack_f4 = (int ******)0x0;\n      uStack_f8 = 0;\n      ppppppiStack_fc = (int ******)0x0;\n      puVar37 = auStack_150 + (int)pppppppiVar23 * -8;\n      iStack_128 = 0;\n      pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;\nLAB_00020d6c:\n      param_3 = &ppppppiStack_fc;\n      pppppppiVar3 = pppppppiVar7;\n      pppppppiVar12 = pppppppiStack_11c;\n      (*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);\n      pppppppiStack_100 = (int *******)*pppppppiVar7;\n      ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);\n      ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);\n      ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);\nLAB_00020db0:\n      pppppppiVar29 = (int *******)pppppppiVar7[1];\n      ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n      ppppppiVar32 = appppppiStack_138[0];\n      puVar38 = puVar37;\n      if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }\n      pppppppiVar25 = pppppppiStack_100;\n      (*(code *)ppppiVar19)(ppppppiStack_f4);\n      if (iStack_128 == 0) {\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }\n      else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      FUN_0001ec78(ppiVar33);\nLAB_00020f14:\n      uVar10 = 0;\n      goto LAB_00020f18;\n    }\n  }\n  uVar10 = 0xc;\n  puVar38 = puVar39;\nLAB_00020f18:\n  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f77];\n  if (iStack_e4 == *piStack_12c) {\n    return uVar10;\n  }\n  pcVar15 = FUN_00021550;\n  iVar6 = iStack_e4;\n  (*(code *)ppppiVar19)();\n  *(int ********)(puVar38 + -0x18) = pppppppiVar30;\n  *(int ********)(puVar38 + -0x14) = param_3;\n  *(int ********)(puVar38 + -0x1c) = pppppppiVar7;\n  *(int ********)(puVar38 + -0x10) = pppppppiVar23;\n  *(int *****)(puVar38 + -0x28) = ppppiVar19 + 0x8ae0;\n  *(int ********)(puVar38 + -0x20) = pppppppiVar22;\n  *(code **)(puVar38 + -4) = pcVar15;\n  *(int **)(puVar38 + -8) = piVar34;\n  *(int ***)(puVar38 + -0xc) = ppiVar33;\n  iVar31 = *(int *)(puVar38 + 0x10);\n  *(undefined4 *)(puVar38 + -0x30) = 8;\n  *(int *)(puVar38 + -0x34) = iVar31;\n  *(int ********)(puVar38 + -0x38) = pppppppiVar25;\n  uVar10 = FUN_00020550();\n  if (uVar10 != 0) {\n    return uVar10;\n  }\n  iVar11 = *(int *)(iVar6 + 0x6c);\n  ppppppiVar14 = *pppppppiVar3;\n  ppppppiVar13 = pppppppiVar12[1];\n  iVar20 = *(int *)(iVar6 + 0x74);\n  ppppppiVar32 = ppppppiVar13;\n  if (*(int *)(iVar6 + 0x70) <= iVar11) {\n    iVar11 = (**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))\n                       (iVar20,*(int *)(iVar6 + 0x70) * 0x28);\n    if (iVar11 == 0) {\n      (**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74));\n      return 0xc;\n    }\n    pcVar15 = *(code **)(*(int *)(puVar38 + -0x28) + -0x7e40);\n    *(int *)(iVar6 + 0x74) = iVar11;\n    (*pcVar15)(iVar11 + *(int *)(iVar6 + 0x6c) * 0x14,0,*(int *)(iVar6 + 0x70) * 0x14);\n    ppppppiVar32 = pppppppiVar12[1];\n    iVar11 = *(int *)(iVar6 + 0x6c);\n    iVar20 = *(int *)(iVar6 + 0x74);\n    *(int *)(iVar6 + 0x70) = *(int *)(iVar6 + 0x70) << 1;\n  }\n  if ((0 < iVar11) && (iVar24 = iVar20 + iVar11 * 0x14 + -0x14, iVar31 == *(int *)(iVar24 + 4))) {\n    *(undefined1 *)(iVar24 + 0x10) = 1;\n  }\n  puVar21 = (undefined4 *)(iVar20 + iVar11 * 0x14);\n  *puVar21 = pppppppiVar25;\n  puVar21[1] = iVar31;\n  puVar21[2] = ppppppiVar14;\n  puVar21[3] = ppppppiVar13;\n  *(ushort *)((int)puVar21 + 0x12) = -(ushort)(ppppppiVar14 == ppppppiVar13);\n  *(int *)(iVar6 + 0x6c) = iVar11 + 1;\n  *(undefined1 *)(puVar21 + 4) = 0;\n  if (*(int *)(iVar6 + 0x78) < (int)ppppppiVar13 - (int)ppppppiVar14) {\n    *(int *)(iVar6 + 0x78) = (int)ppppppiVar13 - (int)ppppppiVar14;\n  }\n  uVar10 = FUN_00019470(iVar6,(int)ppppppiVar32 + (iVar31 - (int)*pppppppiVar3));\n  return uVar10;\nLAB_00020f60:\n  ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n  pppppppiVar25 = pppppppiStack_100;\n  if (pppppppiVar28 == (int *******)&SUB_fffffffe) {\nLAB_000213b0:\n    (*(code *)ppppiVar19)(ppppppiStack_f4);\n    if (iStack_128 != 0) {\nLAB_000214d4:\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n    }\n    if (ppiVar33 != (int **)0x0) goto LAB_0002112c;\n    uVar10 = 0xc;\n    goto LAB_00020f18;\n  }\nLAB_00020f6c:\n  pppppppiVar27 = pppppppiVar30;\n  if (ppiVar33 == (int **)0x0) {\n    (*(code *)((int *****)ppppppiVar32)[-0x1f6c])(ppppppiStack_f4);\n    if (iStack_128 == 0) {\n      uVar10 = 1;\n    }\n    else {\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n      uVar10 = 1;\n    }\n    goto LAB_00020f18;\n  }\nLAB_00020f7c:\n  ppppiVar19 = ppppiStack_120;\n  pppppppiVar12 = (int *******)&pppppppiStack_100;\n  pppppppiVar3 = (int *******)(ppiVar33 + 2);\n  *(int ********)(puVar37 + 0x14) = param_3;\n  *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n  pppppppiVar28 =\n       (int *******)(*(code *)ppppiVar19)(ppiVar33,pppppppiVar3,pppppppiVar12,pppppppiVar23);\n  pppppppiVar30 = pppppppiVar27;\n  goto LAB_00020db0;\n}" ({ "{") (declaration "uint *puVar1;" (type_identifier "uint") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int *******pppppppiVar3;" (primitive_type "int") (pointer_declarator "*******pppppppiVar3" (* "*") (pointer_declarator "******pppppppiVar3" (* "*") (pointer_declarator "*****pppppppiVar3" (* "*") (pointer_declarator "****pppppppiVar3" (* "*") (pointer_declarator "***pppppppiVar3" (* "*") (pointer_declarator "**pppppppiVar3" (* "*") (pointer_declarator "*pppppppiVar3" (* "*") (identifier "pppppppiVar3")))))))) (; ";")) (declaration "int ******ppppppiVar4;" (primitive_type "int") (pointer_declarator "******ppppppiVar4" (* "*") (pointer_declarator "*****ppppppiVar4" (* "*") (pointer_declarator "****ppppppiVar4" (* "*") (pointer_declarator "***ppppppiVar4" (* "*") (pointer_declarator "**ppppppiVar4" (* "*") (pointer_declarator "*ppppppiVar4" (* "*") (identifier "ppppppiVar4"))))))) (; ";")) (declaration "code *pcVar5;" (type_identifier "code") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int *******pppppppiVar7;" (primitive_type "int") (pointer_declarator "*******pppppppiVar7" (* "*") (pointer_declarator "******pppppppiVar7" (* "*") (pointer_declarator "*****pppppppiVar7" (* "*") (pointer_declarator "****pppppppiVar7" (* "*") (pointer_declarator "***pppppppiVar7" (* "*") (pointer_declarator "**pppppppiVar7" (* "*") (pointer_declarator "*pppppppiVar7" (* "*") (identifier "pppppppiVar7")))))))) (; ";")) (declaration "int *****pppppiVar8;" (primitive_type "int") (pointer_declarator "*****pppppiVar8" (* "*") (pointer_declarator "****pppppiVar8" (* "*") (pointer_declarator "***pppppiVar8" (* "*") (pointer_declarator "**pppppiVar8" (* "*") (pointer_declarator "*pppppiVar8" (* "*") (identifier "pppppiVar8")))))) (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int *******pppppppiVar12;" (primitive_type "int") (pointer_declarator "*******pppppppiVar12" (* "*") (pointer_declarator "******pppppppiVar12" (* "*") (pointer_declarator "*****pppppppiVar12" (* "*") (pointer_declarator "****pppppppiVar12" (* "*") (pointer_declarator "***pppppppiVar12" (* "*") (pointer_declarator "**pppppppiVar12" (* "*") (pointer_declarator "*pppppppiVar12" (* "*") (identifier "pppppppiVar12")))))))) (; ";")) (declaration "int ******ppppppiVar13;" (primitive_type "int") (pointer_declarator "******ppppppiVar13" (* "*") (pointer_declarator "*****ppppppiVar13" (* "*") (pointer_declarator "****ppppppiVar13" (* "*") (pointer_declarator "***ppppppiVar13" (* "*") (pointer_declarator "**ppppppiVar13" (* "*") (pointer_declarator "*ppppppiVar13" (* "*") (identifier "ppppppiVar13"))))))) (; ";")) (declaration "int ******ppppppiVar14;" (primitive_type "int") (pointer_declarator "******ppppppiVar14" (* "*") (pointer_declarator "*****ppppppiVar14" (* "*") (pointer_declarator "****ppppppiVar14" (* "*") (pointer_declarator "***ppppppiVar14" (* "*") (pointer_declarator "**ppppppiVar14" (* "*") (pointer_declarator "*ppppppiVar14" (* "*") (identifier "ppppppiVar14"))))))) (; ";")) (declaration "code *pcVar15;" (type_identifier "code") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "code *pcVar16;" (type_identifier "code") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "code *pcVar17;" (type_identifier "code") (pointer_declarator "*pcVar17" (* "*") (identifier "pcVar17")) (; ";")) (declaration "int ******ppppppiVar18;" (primitive_type "int") (pointer_declarator "******ppppppiVar18" (* "*") (pointer_declarator "*****ppppppiVar18" (* "*") (pointer_declarator "****ppppppiVar18" (* "*") (pointer_declarator "***ppppppiVar18" (* "*") (pointer_declarator "**ppppppiVar18" (* "*") (pointer_declarator "*ppppppiVar18" (* "*") (identifier "ppppppiVar18"))))))) (; ";")) (declaration "int ****ppppiVar19;" (primitive_type "int") (pointer_declarator "****ppppiVar19" (* "*") (pointer_declarator "***ppppiVar19" (* "*") (pointer_declarator "**ppppiVar19" (* "*") (pointer_declarator "*ppppiVar19" (* "*") (identifier "ppppiVar19"))))) (; ";")) (declaration "int iVar20;" (primitive_type "int") (identifier "iVar20") (; ";")) (declaration "undefined4 *puVar21;" (type_identifier "undefined4") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "int *******pppppppiVar22;" (primitive_type "int") (pointer_declarator "*******pppppppiVar22" (* "*") (pointer_declarator "******pppppppiVar22" (* "*") (pointer_declarator "*****pppppppiVar22" (* "*") (pointer_declarator "****pppppppiVar22" (* "*") (pointer_declarator "***pppppppiVar22" (* "*") (pointer_declarator "**pppppppiVar22" (* "*") (pointer_declarator "*pppppppiVar22" (* "*") (identifier "pppppppiVar22")))))))) (; ";")) (declaration "int *******pppppppiVar23;" (primitive_type "int") (pointer_declarator "*******pppppppiVar23" (* "*") (pointer_declarator "******pppppppiVar23" (* "*") (pointer_declarator "*****pppppppiVar23" (* "*") (pointer_declarator "****pppppppiVar23" (* "*") (pointer_declarator "***pppppppiVar23" (* "*") (pointer_declarator "**pppppppiVar23" (* "*") (pointer_declarator "*pppppppiVar23" (* "*") (identifier "pppppppiVar23")))))))) (; ";")) (declaration "int iVar24;" (primitive_type "int") (identifier "iVar24") (; ";")) (declaration "int *******pppppppiVar25;" (primitive_type "int") (pointer_declarator "*******pppppppiVar25" (* "*") (pointer_declarator "******pppppppiVar25" (* "*") (pointer_declarator "*****pppppppiVar25" (* "*") (pointer_declarator "****pppppppiVar25" (* "*") (pointer_declarator "***pppppppiVar25" (* "*") (pointer_declarator "**pppppppiVar25" (* "*") (pointer_declarator "*pppppppiVar25" (* "*") (identifier "pppppppiVar25")))))))) (; ";")) (declaration "int *******pppppppiVar26;" (primitive_type "int") (pointer_declarator "*******pppppppiVar26" (* "*") (pointer_declarator "******pppppppiVar26" (* "*") (pointer_declarator "*****pppppppiVar26" (* "*") (pointer_declarator "****pppppppiVar26" (* "*") (pointer_declarator "***pppppppiVar26" (* "*") (pointer_declarator "**pppppppiVar26" (* "*") (pointer_declarator "*pppppppiVar26" (* "*") (identifier "pppppppiVar26")))))))) (; ";")) (declaration "int *******pppppppiVar27;" (primitive_type "int") (pointer_declarator "*******pppppppiVar27" (* "*") (pointer_declarator "******pppppppiVar27" (* "*") (pointer_declarator "*****pppppppiVar27" (* "*") (pointer_declarator "****pppppppiVar27" (* "*") (pointer_declarator "***pppppppiVar27" (* "*") (pointer_declarator "**pppppppiVar27" (* "*") (pointer_declarator "*pppppppiVar27" (* "*") (identifier "pppppppiVar27")))))))) (; ";")) (declaration "int *******pppppppiVar28;" (primitive_type "int") (pointer_declarator "*******pppppppiVar28" (* "*") (pointer_declarator "******pppppppiVar28" (* "*") (pointer_declarator "*****pppppppiVar28" (* "*") (pointer_declarator "****pppppppiVar28" (* "*") (pointer_declarator "***pppppppiVar28" (* "*") (pointer_declarator "**pppppppiVar28" (* "*") (pointer_declarator "*pppppppiVar28" (* "*") (identifier "pppppppiVar28")))))))) (; ";")) (declaration "int *******pppppppiVar29;" (primitive_type "int") (pointer_declarator "*******pppppppiVar29" (* "*") (pointer_declarator "******pppppppiVar29" (* "*") (pointer_declarator "*****pppppppiVar29" (* "*") (pointer_declarator "****pppppppiVar29" (* "*") (pointer_declarator "***pppppppiVar29" (* "*") (pointer_declarator "**pppppppiVar29" (* "*") (pointer_declarator "*pppppppiVar29" (* "*") (identifier "pppppppiVar29")))))))) (; ";")) (declaration "int *******pppppppiVar30;" (primitive_type "int") (pointer_declarator "*******pppppppiVar30" (* "*") (pointer_declarator "******pppppppiVar30" (* "*") (pointer_declarator "*****pppppppiVar30" (* "*") (pointer_declarator "****pppppppiVar30" (* "*") (pointer_declarator "***pppppppiVar30" (* "*") (pointer_declarator "**pppppppiVar30" (* "*") (pointer_declarator "*pppppppiVar30" (* "*") (identifier "pppppppiVar30")))))))) (; ";")) (declaration "int iVar31;" (primitive_type "int") (identifier "iVar31") (; ";")) (declaration "int ******ppppppiVar32;" (primitive_type "int") (pointer_declarator "******ppppppiVar32" (* "*") (pointer_declarator "*****ppppppiVar32" (* "*") (pointer_declarator "****ppppppiVar32" (* "*") (pointer_declarator "***ppppppiVar32" (* "*") (pointer_declarator "**ppppppiVar32" (* "*") (pointer_declarator "*ppppppiVar32" (* "*") (identifier "ppppppiVar32"))))))) (; ";")) (declaration "int *******unaff_s5;" (primitive_type "int") (pointer_declarator "*******unaff_s5" (* "*") (pointer_declarator "******unaff_s5" (* "*") (pointer_declarator "*****unaff_s5" (* "*") (pointer_declarator "****unaff_s5" (* "*") (pointer_declarator "***unaff_s5" (* "*") (pointer_declarator "**unaff_s5" (* "*") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5")))))))) (; ";")) (declaration "int **ppiVar33;" (primitive_type "int") (pointer_declarator "**ppiVar33" (* "*") (pointer_declarator "*ppiVar33" (* "*") (identifier "ppiVar33"))) (; ";")) (declaration "int *piVar34;" (primitive_type "int") (pointer_declarator "*piVar34" (* "*") (identifier "piVar34")) (; ";")) (declaration "int ******unaff_s7;" (primitive_type "int") (pointer_declarator "******unaff_s7" (* "*") (pointer_declarator "*****unaff_s7" (* "*") (pointer_declarator "****unaff_s7" (* "*") (pointer_declarator "***unaff_s7" (* "*") (pointer_declarator "**unaff_s7" (* "*") (pointer_declarator "*unaff_s7" (* "*") (identifier "unaff_s7"))))))) (; ";")) (declaration "undefined *puVar35;" (type_identifier "undefined") (pointer_declarator "*puVar35" (* "*") (identifier "puVar35")) (; ";")) (declaration "int ****ppppiVar36;" (primitive_type "int") (pointer_declarator "****ppppiVar36" (* "*") (pointer_declarator "***ppppiVar36" (* "*") (pointer_declarator "**ppppiVar36" (* "*") (pointer_declarator "*ppppiVar36" (* "*") (identifier "ppppiVar36"))))) (; ";")) (declaration "undefined1 *puVar37;" (type_identifier "undefined1") (pointer_declarator "*puVar37" (* "*") (identifier "puVar37")) (; ";")) (declaration "undefined1 *puVar38;" (type_identifier "undefined1") (pointer_declarator "*puVar38" (* "*") (identifier "puVar38")) (; ";")) (declaration "undefined1 *puVar39;" (type_identifier "undefined1") (pointer_declarator "*puVar39" (* "*") (identifier "puVar39")) (; ";")) (declaration "int *******unaff_s8;" (primitive_type "int") (pointer_declarator "*******unaff_s8" (* "*") (pointer_declarator "******unaff_s8" (* "*") (pointer_declarator "*****unaff_s8" (* "*") (pointer_declarator "****unaff_s8" (* "*") (pointer_declarator "***unaff_s8" (* "*") (pointer_declarator "**unaff_s8" (* "*") (pointer_declarator "*unaff_s8" (* "*") (identifier "unaff_s8")))))))) (; ";")) (declaration "undefined1 auStack_150 [24];" (type_identifier "undefined1") (array_declarator "auStack_150 [24]" (identifier "auStack_150") ([ "[") (number_literal "24") (] "]")) (; ";")) (declaration "int ******appppppiStack_138 [2];" (primitive_type "int") (pointer_declarator "******appppppiStack_138 [2]" (* "*") (pointer_declarator "*****appppppiStack_138 [2]" (* "*") (pointer_declarator "****appppppiStack_138 [2]" (* "*") (pointer_declarator "***appppppiStack_138 [2]" (* "*") (pointer_declarator "**appppppiStack_138 [2]" (* "*") (pointer_declarator "*appppppiStack_138 [2]" (* "*") (array_declarator "appppppiStack_138 [2]" (identifier "appppppiStack_138") ([ "[") (number_literal "2") (] "]")))))))) (; ";")) (declaration "int *******pppppppiStack_130;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_130" (* "*") (pointer_declarator "******pppppppiStack_130" (* "*") (pointer_declarator "*****pppppppiStack_130" (* "*") (pointer_declarator "****pppppppiStack_130" (* "*") (pointer_declarator "***pppppppiStack_130" (* "*") (pointer_declarator "**pppppppiStack_130" (* "*") (pointer_declarator "*pppppppiStack_130" (* "*") (identifier "pppppppiStack_130")))))))) (; ";")) (declaration "int *piStack_12c;" (primitive_type "int") (pointer_declarator "*piStack_12c" (* "*") (identifier "piStack_12c")) (; ";")) (declaration "int iStack_128;" (primitive_type "int") (identifier "iStack_128") (; ";")) (declaration "int *******pppppppiStack_124;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_124" (* "*") (pointer_declarator "******pppppppiStack_124" (* "*") (pointer_declarator "*****pppppppiStack_124" (* "*") (pointer_declarator "****pppppppiStack_124" (* "*") (pointer_declarator "***pppppppiStack_124" (* "*") (pointer_declarator "**pppppppiStack_124" (* "*") (pointer_declarator "*pppppppiStack_124" (* "*") (identifier "pppppppiStack_124")))))))) (; ";")) (declaration "int ****ppppiStack_120;" (primitive_type "int") (pointer_declarator "****ppppiStack_120" (* "*") (pointer_declarator "***ppppiStack_120" (* "*") (pointer_declarator "**ppppiStack_120" (* "*") (pointer_declarator "*ppppiStack_120" (* "*") (identifier "ppppiStack_120"))))) (; ";")) (declaration "int *******pppppppiStack_11c;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_11c" (* "*") (pointer_declarator "******pppppppiStack_11c" (* "*") (pointer_declarator "*****pppppppiStack_11c" (* "*") (pointer_declarator "****pppppppiStack_11c" (* "*") (pointer_declarator "***pppppppiStack_11c" (* "*") (pointer_declarator "**pppppppiStack_11c" (* "*") (pointer_declarator "*pppppppiStack_11c" (* "*") (identifier "pppppppiStack_11c")))))))) (; ";")) (declaration "int ****ppppiStack_118;" (primitive_type "int") (pointer_declarator "****ppppiStack_118" (* "*") (pointer_declarator "***ppppiStack_118" (* "*") (pointer_declarator "**ppppiStack_118" (* "*") (pointer_declarator "*ppppiStack_118" (* "*") (identifier "ppppiStack_118"))))) (; ";")) (declaration "int ****ppppiStack_114;" (primitive_type "int") (pointer_declarator "****ppppiStack_114" (* "*") (pointer_declarator "***ppppiStack_114" (* "*") (pointer_declarator "**ppppiStack_114" (* "*") (pointer_declarator "*ppppiStack_114" (* "*") (identifier "ppppiStack_114"))))) (; ";")) (declaration "int ****ppppiStack_110;" (primitive_type "int") (pointer_declarator "****ppppiStack_110" (* "*") (pointer_declarator "***ppppiStack_110" (* "*") (pointer_declarator "**ppppiStack_110" (* "*") (pointer_declarator "*ppppiStack_110" (* "*") (identifier "ppppiStack_110"))))) (; ";")) (declaration "int *******pppppppiStack_10c;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_10c" (* "*") (pointer_declarator "******pppppppiStack_10c" (* "*") (pointer_declarator "*****pppppppiStack_10c" (* "*") (pointer_declarator "****pppppppiStack_10c" (* "*") (pointer_declarator "***pppppppiStack_10c" (* "*") (pointer_declarator "**pppppppiStack_10c" (* "*") (pointer_declarator "*pppppppiStack_10c" (* "*") (identifier "pppppppiStack_10c")))))))) (; ";")) (declaration "int *******pppppppiStack_108;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_108" (* "*") (pointer_declarator "******pppppppiStack_108" (* "*") (pointer_declarator "*****pppppppiStack_108" (* "*") (pointer_declarator "****pppppppiStack_108" (* "*") (pointer_declarator "***pppppppiStack_108" (* "*") (pointer_declarator "**pppppppiStack_108" (* "*") (pointer_declarator "*pppppppiStack_108" (* "*") (identifier "pppppppiStack_108")))))))) (; ";")) (declaration "int ****ppppiStack_104;" (primitive_type "int") (pointer_declarator "****ppppiStack_104" (* "*") (pointer_declarator "***ppppiStack_104" (* "*") (pointer_declarator "**ppppiStack_104" (* "*") (pointer_declarator "*ppppiStack_104" (* "*") (identifier "ppppiStack_104"))))) (; ";")) (declaration "int *******pppppppiStack_100;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_100" (* "*") (pointer_declarator "******pppppppiStack_100" (* "*") (pointer_declarator "*****pppppppiStack_100" (* "*") (pointer_declarator "****pppppppiStack_100" (* "*") (pointer_declarator "***pppppppiStack_100" (* "*") (pointer_declarator "**pppppppiStack_100" (* "*") (pointer_declarator "*pppppppiStack_100" (* "*") (identifier "pppppppiStack_100")))))))) (; ";")) (declaration "int ******ppppppiStack_fc;" (primitive_type "int") (pointer_declarator "******ppppppiStack_fc" (* "*") (pointer_declarator "*****ppppppiStack_fc" (* "*") (pointer_declarator "****ppppppiStack_fc" (* "*") (pointer_declarator "***ppppppiStack_fc" (* "*") (pointer_declarator "**ppppppiStack_fc" (* "*") (pointer_declarator "*ppppppiStack_fc" (* "*") (identifier "ppppppiStack_fc"))))))) (; ";")) (declaration "undefined4 uStack_f8;" (type_identifier "undefined4") (identifier "uStack_f8") (; ";")) (declaration "int ******ppppppiStack_f4;" (primitive_type "int") (pointer_declarator "******ppppppiStack_f4" (* "*") (pointer_declarator "*****ppppppiStack_f4" (* "*") (pointer_declarator "****ppppppiStack_f4" (* "*") (pointer_declarator "***ppppppiStack_f4" (* "*") (pointer_declarator "**ppppppiStack_f4" (* "*") (pointer_declarator "*ppppppiStack_f4" (* "*") (identifier "ppppppiStack_f4"))))))) (; ";")) (declaration "int *piStack_f0;" (primitive_type "int") (pointer_declarator "*piStack_f0" (* "*") (identifier "piStack_f0")) (; ";")) (declaration "undefined4 uStack_ec;" (type_identifier "undefined4") (identifier "uStack_ec") (; ";")) (declaration "int iStack_e8;" (primitive_type "int") (identifier "iStack_e8") (; ";")) (declaration "int iStack_e4;" (primitive_type "int") (identifier "iStack_e4") (; ";")) (declaration "int *******pppppppiStack_e0;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_e0" (* "*") (pointer_declarator "******pppppppiStack_e0" (* "*") (pointer_declarator "*****pppppppiStack_e0" (* "*") (pointer_declarator "****pppppppiStack_e0" (* "*") (pointer_declarator "***pppppppiStack_e0" (* "*") (pointer_declarator "**pppppppiStack_e0" (* "*") (pointer_declarator "*pppppppiStack_e0" (* "*") (identifier "pppppppiStack_e0")))))))) (; ";")) (declaration "int *******pppppppiStack_dc;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_dc" (* "*") (pointer_declarator "******pppppppiStack_dc" (* "*") (pointer_declarator "*****pppppppiStack_dc" (* "*") (pointer_declarator "****pppppppiStack_dc" (* "*") (pointer_declarator "***pppppppiStack_dc" (* "*") (pointer_declarator "**pppppppiStack_dc" (* "*") (pointer_declarator "*pppppppiStack_dc" (* "*") (identifier "pppppppiStack_dc")))))))) (; ";")) (declaration "int *******pppppppiStack_d8;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_d8" (* "*") (pointer_declarator "******pppppppiStack_d8" (* "*") (pointer_declarator "*****pppppppiStack_d8" (* "*") (pointer_declarator "****pppppppiStack_d8" (* "*") (pointer_declarator "***pppppppiStack_d8" (* "*") (pointer_declarator "**pppppppiStack_d8" (* "*") (pointer_declarator "*pppppppiStack_d8" (* "*") (identifier "pppppppiStack_d8")))))))) (; ";")) (declaration "int *******pppppppiStack_d4;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_d4" (* "*") (pointer_declarator "******pppppppiStack_d4" (* "*") (pointer_declarator "*****pppppppiStack_d4" (* "*") (pointer_declarator "****pppppppiStack_d4" (* "*") (pointer_declarator "***pppppppiStack_d4" (* "*") (pointer_declarator "**pppppppiStack_d4" (* "*") (pointer_declarator "*pppppppiStack_d4" (* "*") (identifier "pppppppiStack_d4")))))))) (; ";")) (declaration "int ******ppppppiStack_d0;" (primitive_type "int") (pointer_declarator "******ppppppiStack_d0" (* "*") (pointer_declarator "*****ppppppiStack_d0" (* "*") (pointer_declarator "****ppppppiStack_d0" (* "*") (pointer_declarator "***ppppppiStack_d0" (* "*") (pointer_declarator "**ppppppiStack_d0" (* "*") (pointer_declarator "*ppppppiStack_d0" (* "*") (identifier "ppppppiStack_d0"))))))) (; ";")) (declaration "int *******pppppppiStack_cc;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_cc" (* "*") (pointer_declarator "******pppppppiStack_cc" (* "*") (pointer_declarator "*****pppppppiStack_cc" (* "*") (pointer_declarator "****pppppppiStack_cc" (* "*") (pointer_declarator "***pppppppiStack_cc" (* "*") (pointer_declarator "**pppppppiStack_cc" (* "*") (pointer_declarator "*pppppppiStack_cc" (* "*") (identifier "pppppppiStack_cc")))))))) (; ";")) (declaration "int *******pppppppiStack_c8;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_c8" (* "*") (pointer_declarator "******pppppppiStack_c8" (* "*") (pointer_declarator "*****pppppppiStack_c8" (* "*") (pointer_declarator "****pppppppiStack_c8" (* "*") (pointer_declarator "***pppppppiStack_c8" (* "*") (pointer_declarator "**pppppppiStack_c8" (* "*") (pointer_declarator "*pppppppiStack_c8" (* "*") (identifier "pppppppiStack_c8")))))))) (; ";")) (declaration "int ******ppppppiStack_c4;" (primitive_type "int") (pointer_declarator "******ppppppiStack_c4" (* "*") (pointer_declarator "*****ppppppiStack_c4" (* "*") (pointer_declarator "****ppppppiStack_c4" (* "*") (pointer_declarator "***ppppppiStack_c4" (* "*") (pointer_declarator "**ppppppiStack_c4" (* "*") (pointer_declarator "*ppppppiStack_c4" (* "*") (identifier "ppppppiStack_c4"))))))) (; ";")) (declaration "int *******pppppppiStack_c0;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_c0" (* "*") (pointer_declarator "******pppppppiStack_c0" (* "*") (pointer_declarator "*****pppppppiStack_c0" (* "*") (pointer_declarator "****pppppppiStack_c0" (* "*") (pointer_declarator "***pppppppiStack_c0" (* "*") (pointer_declarator "**pppppppiStack_c0" (* "*") (pointer_declarator "*pppppppiStack_c0" (* "*") (identifier "pppppppiStack_c0")))))))) (; ";")) (declaration "code *pcStack_bc;" (type_identifier "code") (pointer_declarator "*pcStack_bc" (* "*") (identifier "pcStack_bc")) (; ";")) (declaration "undefined4 local_a8;" (type_identifier "undefined4") (identifier "local_a8") (; ";")) (declaration "int local_8c;" (primitive_type "int") (identifier "local_8c") (; ";")) (declaration "code *local_6c;" (type_identifier "code") (pointer_declarator "*local_6c" (* "*") (identifier "local_6c")) (; ";")) (declaration "uint local_4c;" (type_identifier "uint") (identifier "local_4c") (; ";")) (declaration "uint local_48 [3];" (type_identifier "uint") (array_declarator "local_48 [3]" (identifier "local_48") ([ "[") (number_literal "3") (] "]")) (; ";")) (declaration "undefined4 *local_3c;" (type_identifier "undefined4") (pointer_declarator "*local_3c" (* "*") (identifier "local_3c")) (; ";")) (declaration "int ******local_38;" (primitive_type "int") (pointer_declarator "******local_38" (* "*") (pointer_declarator "*****local_38" (* "*") (pointer_declarator "****local_38" (* "*") (pointer_declarator "***local_38" (* "*") (pointer_declarator "**local_38" (* "*") (pointer_declarator "*local_38" (* "*") (identifier "local_38"))))))) (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "undefined4 *local_2c;" (type_identifier "undefined4") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (expression_statement "puVar35 = PTR___stack_chk_guard_0003c314;" (assignment_expression "puVar35 = PTR___stack_chk_guard_0003c314" (identifier "puVar35") (= "=") (identifier "PTR___stack_chk_guard_0003c314")) (; ";")) (expression_statement "pppppppiVar12 = (int *******)param_1[0x15];" (assignment_expression "pppppppiVar12 = (int *******)param_1[0x15]" (identifier "pppppppiVar12") (= "=") (cast_expression "(int *******)param_1[0x15]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "param_1[0x15]" (identifier "param_1") ([ "[") (number_literal "0x15") (] "]")))) (; ";")) (expression_statement "pppppppiVar30 = (int *******)param_2[1];" (assignment_expression "pppppppiVar30 = (int *******)param_2[1]" (identifier "pppppppiVar30") (= "=") (cast_expression "(int *******)param_2[1]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "local_2c = *(undefined4 **)PTR___stack_chk_guard_0003c314;" (assignment_expression "local_2c = *(undefined4 **)PTR___stack_chk_guard_0003c314" (identifier "local_2c") (= "=") (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_0003c314" (* "*") (cast_expression "(undefined4 **)PTR___stack_chk_guard_0003c314" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_0003c314")))) (; ";")) (expression_statement "pppppppiVar22 = (int *******)((int)param_3 * 8);" (assignment_expression "pppppppiVar22 = (int *******)((int)param_3 * 8)" (identifier "pppppppiVar22") (= "=") (cast_expression "(int *******)((int)param_3 * 8)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)param_3 * 8)" (( "(") (binary_expression "(int)param_3 * 8" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (* "*") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pppppppiVar23 = (int *******)(param_6 + (int)param_1[0x1e]);" (assignment_expression "pppppppiVar23 = (int *******)(param_6 + (int)param_1[0x1e])" (identifier "pppppppiVar23") (= "=") (cast_expression "(int *******)(param_6 + (int)param_1[0x1e])" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(param_6 + (int)param_1[0x1e])" (( "(") (binary_expression "param_6 + (int)param_1[0x1e]" (identifier "param_6") (+ "+") (cast_expression "(int)param_1[0x1e]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[0x1e]" (identifier "param_1") ([ "[") (number_literal "0x1e") (] "]")))) () ")")))) (; ";")) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (expression_statement "pppppppiVar3 = (int *******)(*pppppppiVar12)[(int)param_3 * 2];" (assignment_expression "pppppppiVar3 = (int *******)(*pppppppiVar12)[(int)param_3 * 2]" (identifier "pppppppiVar3") (= "=") (cast_expression "(int *******)(*pppppppiVar12)[(int)param_3 * 2]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "(*pppppppiVar12)[(int)param_3 * 2]" (parenthesized_expression "(*pppppppiVar12)" (( "(") (pointer_expression "*pppppppiVar12" (* "*") (identifier "pppppppiVar12")) () ")")) ([ "[") (binary_expression "(int)param_3 * 2" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (* "*") (number_literal "2")) (] "]")))) (; ";")) (expression_statement "pppppppiVar7 = param_4;" (assignment_expression "pppppppiVar7 = param_4" (identifier "pppppppiVar7") (= "=") (identifier "param_4")) (; ";")) (if_statement "if ((int)pppppppiVar23 < (int)pppppppiVar30) {\nLAB_000205e8:\n    puVar2 = PTR_LAB_0003c1e8;\n    ppppppiVar13 = param_1[0x19];\n    pppppppiVar23 = (int *******)param_1[0x16];\n    pppppppiVar28 = (int *******)*param_2;\n    ppppppiVar32 = param_2[2];\n    ppppppiVar14 = param_1[10];\n    if (pppppppiVar28 == (int *******)0x0) {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)param_4 + -1);\n      param_1[10] = (int ******)param_4;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\nLAB_00020b7c:\n      local_48[1] = 1;\n      local_48[2] = 1;\n      local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4);\n      if (local_3c == (undefined4 *)0x0) goto LAB_00020c64;\n      pppppppiVar22 = (int *******)(local_48 + 1);\n      *local_3c = param_3;\n      local_4c = 0;\n      pppppppiVar23 = pppppppiVar3;\n      pppppppiVar7 = param_7;\n      local_4c = FUN_0001afe8(pppppppiVar12);\n      pppppppiVar28 = param_4;\n      if (local_4c == 0) {\nLAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);\n        if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }\n        pppppppiVar22 = pppppppiVar12;\n        pppppppiVar7 = pppppppiVar30;\n        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n        pppppppiVar23 = pppppppiVar25;\n        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }\n      }\nLAB_00020920:\n      (*(code *)PTR_free_0003c320)(local_3c);\n      uVar10 = local_4c;\n    }\n    else {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);\n      param_1[10] = (int ******)pppppppiVar28;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\n      if (pppppppiVar28 == param_4) goto LAB_00020b7c;\n      ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;\n      unaff_s7 = (int ******)*ppppppiVar32;\n      pppppppiVar25 = pppppppiVar28;\n      if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }\n      else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }\n  }\n  else {\n    pppppppiVar28 = (int *******)((int)pppppppiVar23 + 1);\n    ppppppiVar32 = (int ******)((int)pppppppiVar30 + (int)pppppppiVar28);\n    if (((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&\n       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)) {\n      pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);\n      ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);\n      puVar2 = PTR_memset_0003c290;\n      if (ppppppiVar13 != (int ******)0x0) {\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }\n    }\nLAB_00020c64:\n    uVar10 = 0xc;\n  }" (if "if") (parenthesized_expression "((int)pppppppiVar23 < (int)pppppppiVar30)" (( "(") (binary_expression "(int)pppppppiVar23 < (int)pppppppiVar30" (cast_expression "(int)pppppppiVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar23")) (< "<") (cast_expression "(int)pppppppiVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar30"))) () ")")) (compound_statement "{\nLAB_000205e8:\n    puVar2 = PTR_LAB_0003c1e8;\n    ppppppiVar13 = param_1[0x19];\n    pppppppiVar23 = (int *******)param_1[0x16];\n    pppppppiVar28 = (int *******)*param_2;\n    ppppppiVar32 = param_2[2];\n    ppppppiVar14 = param_1[10];\n    if (pppppppiVar28 == (int *******)0x0) {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)param_4 + -1);\n      param_1[10] = (int ******)param_4;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\nLAB_00020b7c:\n      local_48[1] = 1;\n      local_48[2] = 1;\n      local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4);\n      if (local_3c == (undefined4 *)0x0) goto LAB_00020c64;\n      pppppppiVar22 = (int *******)(local_48 + 1);\n      *local_3c = param_3;\n      local_4c = 0;\n      pppppppiVar23 = pppppppiVar3;\n      pppppppiVar7 = param_7;\n      local_4c = FUN_0001afe8(pppppppiVar12);\n      pppppppiVar28 = param_4;\n      if (local_4c == 0) {\nLAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);\n        if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }\n        pppppppiVar22 = pppppppiVar12;\n        pppppppiVar7 = pppppppiVar30;\n        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n        pppppppiVar23 = pppppppiVar25;\n        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }\n      }\nLAB_00020920:\n      (*(code *)PTR_free_0003c320)(local_3c);\n      uVar10 = local_4c;\n    }\n    else {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);\n      param_1[10] = (int ******)pppppppiVar28;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\n      if (pppppppiVar28 == param_4) goto LAB_00020b7c;\n      ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;\n      unaff_s7 = (int ******)*ppppppiVar32;\n      pppppppiVar25 = pppppppiVar28;\n      if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }\n      else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }\n  }" ({ "{") (labeled_statement "LAB_000205e8:\n    puVar2 = PTR_LAB_0003c1e8;" (statement_identifier "LAB_000205e8") (: ":") (expression_statement "puVar2 = PTR_LAB_0003c1e8;" (assignment_expression "puVar2 = PTR_LAB_0003c1e8" (identifier "puVar2") (= "=") (identifier "PTR_LAB_0003c1e8")) (; ";"))) (expression_statement "ppppppiVar13 = param_1[0x19];" (assignment_expression "ppppppiVar13 = param_1[0x19]" (identifier "ppppppiVar13") (= "=") (subscript_expression "param_1[0x19]" (identifier "param_1") ([ "[") (number_literal "0x19") (] "]"))) (; ";")) (expression_statement "pppppppiVar23 = (int *******)param_1[0x16];" (assignment_expression "pppppppiVar23 = (int *******)param_1[0x16]" (identifier "pppppppiVar23") (= "=") (cast_expression "(int *******)param_1[0x16]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "param_1[0x16]" (identifier "param_1") ([ "[") (number_literal "0x16") (] "]")))) (; ";")) (expression_statement "pppppppiVar28 = (int *******)*param_2;" (assignment_expression "pppppppiVar28 = (int *******)*param_2" (identifier "pppppppiVar28") (= "=") (cast_expression "(int *******)*param_2" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (expression_statement "ppppppiVar32 = param_2[2];" (assignment_expression "ppppppiVar32 = param_2[2]" (identifier "ppppppiVar32") (= "=") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "ppppppiVar14 = param_1[10];" (assignment_expression "ppppppiVar14 = param_1[10]" (identifier "ppppppiVar14") (= "=") (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]"))) (; ";")) (if_statement "if (pppppppiVar28 == (int *******)0x0) {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)param_4 + -1);\n      param_1[10] = (int ******)param_4;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\nLAB_00020b7c:\n      local_48[1] = 1;\n      local_48[2] = 1;\n      local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4);\n      if (local_3c == (undefined4 *)0x0) goto LAB_00020c64;\n      pppppppiVar22 = (int *******)(local_48 + 1);\n      *local_3c = param_3;\n      local_4c = 0;\n      pppppppiVar23 = pppppppiVar3;\n      pppppppiVar7 = param_7;\n      local_4c = FUN_0001afe8(pppppppiVar12);\n      pppppppiVar28 = param_4;\n      if (local_4c == 0) {\nLAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);\n        if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }\n        pppppppiVar22 = pppppppiVar12;\n        pppppppiVar7 = pppppppiVar30;\n        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n        pppppppiVar23 = pppppppiVar25;\n        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }\n      }\nLAB_00020920:\n      (*(code *)PTR_free_0003c320)(local_3c);\n      uVar10 = local_4c;\n    }\n    else {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);\n      param_1[10] = (int ******)pppppppiVar28;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\n      if (pppppppiVar28 == param_4) goto LAB_00020b7c;\n      ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;\n      unaff_s7 = (int ******)*ppppppiVar32;\n      pppppppiVar25 = pppppppiVar28;\n      if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }\n      else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(pppppppiVar28 == (int *******)0x0)" (( "(") (binary_expression "pppppppiVar28 == (int *******)0x0" (identifier "pppppppiVar28") (== "==") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)param_4 + -1);\n      param_1[10] = (int ******)param_4;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\nLAB_00020b7c:\n      local_48[1] = 1;\n      local_48[2] = 1;\n      local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4);\n      if (local_3c == (undefined4 *)0x0) goto LAB_00020c64;\n      pppppppiVar22 = (int *******)(local_48 + 1);\n      *local_3c = param_3;\n      local_4c = 0;\n      pppppppiVar23 = pppppppiVar3;\n      pppppppiVar7 = param_7;\n      local_4c = FUN_0001afe8(pppppppiVar12);\n      pppppppiVar28 = param_4;\n      if (local_4c == 0) {\nLAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);\n        if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }\n        pppppppiVar22 = pppppppiVar12;\n        pppppppiVar7 = pppppppiVar30;\n        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n        pppppppiVar23 = pppppppiVar25;\n        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }\n      }\nLAB_00020920:\n      (*(code *)PTR_free_0003c320)(local_3c);\n      uVar10 = local_4c;\n    }" ({ "{") (expression_statement "param_1[0x19] = ppppppiVar32;" (assignment_expression "param_1[0x19] = ppppppiVar32" (subscript_expression "param_1[0x19]" (identifier "param_1") ([ "[") (number_literal "0x19") (] "]")) (= "=") (identifier "ppppppiVar32")) (; ";")) (expression_statement "pppppppiVar22 = (int *******)((int)param_4 + -1);" (assignment_expression "pppppppiVar22 = (int *******)((int)param_4 + -1)" (identifier "pppppppiVar22") (= "=") (cast_expression "(int *******)((int)param_4 + -1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)param_4 + -1)" (( "(") (binary_expression "(int)param_4 + -1" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "param_1[10] = (int ******)param_4;" (assignment_expression "param_1[10] = (int ******)param_4" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (cast_expression "(int ******)param_4" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "param_4"))) (; ";")) (expression_statement "pppppppiVar30 = (int *******)FUN_0001cb50(param_1);" (assignment_expression "pppppppiVar30 = (int *******)FUN_0001cb50(param_1)" (identifier "pppppppiVar30") (= "=") (cast_expression "(int *******)FUN_0001cb50(param_1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_0001cb50(param_1)" (identifier "FUN_0001cb50") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";")) (labeled_statement "LAB_00020b7c:\n      local_48[1] = 1;" (statement_identifier "LAB_00020b7c") (: ":") (expression_statement "local_48[1] = 1;" (assignment_expression "local_48[1] = 1" (subscript_expression "local_48[1]" (identifier "local_48") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";"))) (expression_statement "local_48[2] = 1;" (assignment_expression "local_48[2] = 1" (subscript_expression "local_48[2]" (identifier "local_48") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4);" (assignment_expression "local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4)" (identifier "local_3c") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_malloc_0003c2b4)(4)" (parenthesized_expression "(*(code *)PTR_malloc_0003c2b4)" (( "(") (pointer_expression "*(code *)PTR_malloc_0003c2b4" (* "*") (cast_expression "(code *)PTR_malloc_0003c2b4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_0003c2b4"))) () ")")) (argument_list "(4)" (( "(") (number_literal "4") () ")"))))) (; ";")) (if_statement "if (local_3c == (undefined4 *)0x0) goto LAB_00020c64;" (if "if") (parenthesized_expression "(local_3c == (undefined4 *)0x0)" (( "(") (binary_expression "local_3c == (undefined4 *)0x0" (identifier "local_3c") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00020c64;" (goto "goto") (statement_identifier "LAB_00020c64") (; ";"))) (expression_statement "pppppppiVar22 = (int *******)(local_48 + 1);" (assignment_expression "pppppppiVar22 = (int *******)(local_48 + 1)" (identifier "pppppppiVar22") (= "=") (cast_expression "(int *******)(local_48 + 1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(local_48 + 1)" (( "(") (binary_expression "local_48 + 1" (identifier "local_48") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*local_3c = param_3;" (assignment_expression "*local_3c = param_3" (pointer_expression "*local_3c" (* "*") (identifier "local_3c")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (expression_statement "pppppppiVar23 = pppppppiVar3;" (assignment_expression "pppppppiVar23 = pppppppiVar3" (identifier "pppppppiVar23") (= "=") (identifier "pppppppiVar3")) (; ";")) (expression_statement "pppppppiVar7 = param_7;" (assignment_expression "pppppppiVar7 = param_7" (identifier "pppppppiVar7") (= "=") (identifier "param_7")) (; ";")) (expression_statement "local_4c = FUN_0001afe8(pppppppiVar12);" (assignment_expression "local_4c = FUN_0001afe8(pppppppiVar12)" (identifier "local_4c") (= "=") (call_expression "FUN_0001afe8(pppppppiVar12)" (identifier "FUN_0001afe8") (argument_list "(pppppppiVar12)" (( "(") (identifier "pppppppiVar12") () ")")))) (; ";")) (expression_statement "pppppppiVar28 = param_4;" (assignment_expression "pppppppiVar28 = param_4" (identifier "pppppppiVar28") (= "=") (identifier "param_4")) (; ";")) (if_statement "if (local_4c == 0) {\nLAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);\n        if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }\n        pppppppiVar22 = pppppppiVar12;\n        pppppppiVar7 = pppppppiVar30;\n        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n        pppppppiVar23 = pppppppiVar25;\n        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }\n      }" (if "if") (parenthesized_expression "(local_4c == 0)" (( "(") (binary_expression "local_4c == 0" (identifier "local_4c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);\n        if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }\n        pppppppiVar22 = pppppppiVar12;\n        pppppppiVar7 = pppppppiVar30;\n        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n        pppppppiVar23 = pppppppiVar25;\n        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }\n      }" ({ "{") (labeled_statement "LAB_00020ab8:\n        pppppppiVar25 = (int *******)(local_48 + 1);" (statement_identifier "LAB_00020ab8") (: ":") (expression_statement "pppppppiVar25 = (int *******)(local_48 + 1);" (assignment_expression "pppppppiVar25 = (int *******)(local_48 + 1)" (identifier "pppppppiVar25") (= "=") (cast_expression "(int *******)(local_48 + 1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(local_48 + 1)" (( "(") (binary_expression "local_48 + 1" (identifier "local_48") (+ "+") (number_literal "1")) () ")")))) (; ";"))) (if_statement "if (local_48[2] != 0) {\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }" (if "if") (parenthesized_expression "(local_48[2] != 0)" (( "(") (binary_expression "local_48[2] != 0" (subscript_expression "local_48[2]" (identifier "local_48") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          local_a8 = param_7;\n          pppppppiVar22 = pppppppiVar25;\n          pppppppiVar23 = pppppppiVar28;\n          pppppppiVar7 = pppppppiVar3;\n          local_4c = FUN_0001c580(param_1);\n          if (local_4c != 0) goto LAB_00020920;\n        }" ({ "{") (expression_statement "local_a8 = param_7;" (assignment_expression "local_a8 = param_7" (identifier "local_a8") (= "=") (identifier "param_7")) (; ";")) (expression_statement "pppppppiVar22 = pppppppiVar25;" (assignment_expression "pppppppiVar22 = pppppppiVar25" (identifier "pppppppiVar22") (= "=") (identifier "pppppppiVar25")) (; ";")) (expression_statement "pppppppiVar23 = pppppppiVar28;" (assignment_expression "pppppppiVar23 = pppppppiVar28" (identifier "pppppppiVar23") (= "=") (identifier "pppppppiVar28")) (; ";")) (expression_statement "pppppppiVar7 = pppppppiVar3;" (assignment_expression "pppppppiVar7 = pppppppiVar3" (identifier "pppppppiVar7") (= "=") (identifier "pppppppiVar3")) (; ";")) (expression_statement "local_4c = FUN_0001c580(param_1);" (assignment_expression "local_4c = FUN_0001c580(param_1)" (identifier "local_4c") (= "=") (call_expression "FUN_0001c580(param_1)" (identifier "FUN_0001c580") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (local_4c != 0) goto LAB_00020920;" (if "if") (parenthesized_expression "(local_4c != 0)" (( "(") (binary_expression "local_4c != 0" (identifier "local_4c") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00020920;" (goto "goto") (statement_identifier "LAB_00020920") (; ";"))) (} "}"))) (expression_statement "pppppppiVar22 = pppppppiVar12;" (assignment_expression "pppppppiVar22 = pppppppiVar12" (identifier "pppppppiVar22") (= "=") (identifier "pppppppiVar12")) (; ";")) (expression_statement "pppppppiVar7 = pppppppiVar30;" (assignment_expression "pppppppiVar7 = pppppppiVar30" (identifier "pppppppiVar7") (= "=") (identifier "pppppppiVar30")) (; ";")) (expression_statement "unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);" (assignment_expression "unaff_s7 = (int ******)FUN_0001bd4c(&local_4c)" (identifier "unaff_s7") (= "=") (cast_expression "(int ******)FUN_0001bd4c(&local_4c)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "FUN_0001bd4c(&local_4c)" (identifier "FUN_0001bd4c") (argument_list "(&local_4c)" (( "(") (pointer_expression "&local_4c" (& "&") (identifier "local_4c")) () ")"))))) (; ";")) (expression_statement "pppppppiVar23 = pppppppiVar25;" (assignment_expression "pppppppiVar23 = pppppppiVar25" (identifier "pppppppiVar23") (= "=") (identifier "pppppppiVar25")) (; ";")) (if_statement "if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }" (if "if") (parenthesized_expression "((unaff_s7 != (int ******)0x0) || (local_4c == 0))" (( "(") (binary_expression "(unaff_s7 != (int ******)0x0) || (local_4c == 0)" (parenthesized_expression "(unaff_s7 != (int ******)0x0)" (( "(") (binary_expression "unaff_s7 != (int ******)0x0" (identifier "unaff_s7") (!= "!=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(local_4c == 0)" (( "(") (binary_expression "local_4c == 0" (identifier "local_4c") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;\n          pppppppiVar25 = pppppppiVar28;\n          goto LAB_00020670;\n        }" ({ "{") (expression_statement "param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;" (assignment_expression "param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7" (subscript_expression "param_1[0x19][(int)pppppppiVar28]" (subscript_expression "param_1[0x19]" (identifier "param_1") ([ "[") (number_literal "0x19") (] "]")) ([ "[") (cast_expression "(int)pppppppiVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar28")) (] "]")) (= "=") (cast_expression "(int *****)unaff_s7" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "unaff_s7"))) (; ";")) (expression_statement "pppppppiVar25 = pppppppiVar28;" (assignment_expression "pppppppiVar25 = pppppppiVar28" (identifier "pppppppiVar25") (= "=") (identifier "pppppppiVar28")) (; ";")) (goto_statement "goto LAB_00020670;" (goto "goto") (statement_identifier "LAB_00020670") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00020920:\n      (*(code *)PTR_free_0003c320)(local_3c);" (statement_identifier "LAB_00020920") (: ":") (expression_statement "(*(code *)PTR_free_0003c320)(local_3c);" (call_expression "(*(code *)PTR_free_0003c320)(local_3c)" (parenthesized_expression "(*(code *)PTR_free_0003c320)" (( "(") (pointer_expression "*(code *)PTR_free_0003c320" (* "*") (cast_expression "(code *)PTR_free_0003c320" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0003c320"))) () ")")) (argument_list "(local_3c)" (( "(") (identifier "local_3c") () ")"))) (; ";"))) (expression_statement "uVar10 = local_4c;" (assignment_expression "uVar10 = local_4c" (identifier "uVar10") (= "=") (identifier "local_4c")) (; ";")) (} "}")) (else_clause "else {\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);\n      param_1[10] = (int ******)pppppppiVar28;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\n      if (pppppppiVar28 == param_4) goto LAB_00020b7c;\n      ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;\n      unaff_s7 = (int ******)*ppppppiVar32;\n      pppppppiVar25 = pppppppiVar28;\n      if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }\n      else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }" (else "else") (compound_statement "{\n      param_1[0x19] = ppppppiVar32;\n      pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);\n      param_1[10] = (int ******)pppppppiVar28;\n      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);\n      if (pppppppiVar28 == param_4) goto LAB_00020b7c;\n      ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;\n      unaff_s7 = (int ******)*ppppppiVar32;\n      pppppppiVar25 = pppppppiVar28;\n      if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }\n      else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }\n    }" ({ "{") (expression_statement "param_1[0x19] = ppppppiVar32;" (assignment_expression "param_1[0x19] = ppppppiVar32" (subscript_expression "param_1[0x19]" (identifier "param_1") ([ "[") (number_literal "0x19") (] "]")) (= "=") (identifier "ppppppiVar32")) (; ";")) (expression_statement "pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);" (assignment_expression "pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1)" (identifier "pppppppiVar22") (= "=") (cast_expression "(int *******)((int)pppppppiVar28 + -1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppiVar28 + -1)" (( "(") (binary_expression "(int)pppppppiVar28 + -1" (cast_expression "(int)pppppppiVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar28")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "param_1[10] = (int ******)pppppppiVar28;" (assignment_expression "param_1[10] = (int ******)pppppppiVar28" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (cast_expression "(int ******)pppppppiVar28" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "pppppppiVar28"))) (; ";")) (expression_statement "pppppppiVar30 = (int *******)FUN_0001cb50(param_1);" (assignment_expression "pppppppiVar30 = (int *******)FUN_0001cb50(param_1)" (identifier "pppppppiVar30") (= "=") (cast_expression "(int *******)FUN_0001cb50(param_1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_0001cb50(param_1)" (identifier "FUN_0001cb50") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";")) (if_statement "if (pppppppiVar28 == param_4) goto LAB_00020b7c;" (if "if") (parenthesized_expression "(pppppppiVar28 == param_4)" (( "(") (binary_expression "pppppppiVar28 == param_4" (identifier "pppppppiVar28") (== "==") (identifier "param_4")) () ")")) (goto_statement "goto LAB_00020b7c;" (goto "goto") (statement_identifier "LAB_00020b7c") (; ";"))) (expression_statement "ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;" (assignment_expression "ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28" (identifier "ppppppiVar32") (= "=") (binary_expression "ppppppiVar32 + (int)pppppppiVar28" (identifier "ppppppiVar32") (+ "+") (cast_expression "(int)pppppppiVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar28")))) (; ";")) (expression_statement "unaff_s7 = (int ******)*ppppppiVar32;" (assignment_expression "unaff_s7 = (int ******)*ppppppiVar32" (identifier "unaff_s7") (= "=") (cast_expression "(int ******)*ppppppiVar32" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (pointer_expression "*ppppppiVar32" (* "*") (identifier "ppppppiVar32")))) (; ";")) (expression_statement "pppppppiVar25 = pppppppiVar28;" (assignment_expression "pppppppiVar25 = pppppppiVar28" (identifier "pppppppiVar25") (= "=") (identifier "pppppppiVar28")) (; ";")) (if_statement "if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }\n      else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }" (if "if") (parenthesized_expression "((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0))" (( "(") (binary_expression "(unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)" (parenthesized_expression "(unaff_s7 == (int ******)0x0)" (( "(") (binary_expression "unaff_s7 == (int ******)0x0" (identifier "unaff_s7") (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(((uint)unaff_s7[0xd] & 0x2000000) == 0)" (( "(") (binary_expression "((uint)unaff_s7[0xd] & 0x2000000) == 0" (parenthesized_expression "((uint)unaff_s7[0xd] & 0x2000000)" (( "(") (binary_expression "(uint)unaff_s7[0xd] & 0x2000000" (cast_expression "(uint)unaff_s7[0xd]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "unaff_s7[0xd]" (identifier "unaff_s7") ([ "[") (number_literal "0xd") (] "]"))) (& "&") (number_literal "0x2000000")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        local_48[1] = 0;\n        local_48[2] = 0;\n        local_3c = (undefined4 *)0x0;\nLAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);\n        puVar1 = local_48 + 1;\n        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }\n        (*(code *)PTR_free_0003c320)(local_3c);\n        pppppiVar8 = param_1[0x19][param_6];\n        pppppppiVar28 = pppppppiVar25;\n        if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }\n      }" ({ "{") (expression_statement "local_48[1] = 0;" (assignment_expression "local_48[1] = 0" (subscript_expression "local_48[1]" (identifier "local_48") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_48[2] = 0;" (assignment_expression "local_48[2] = 0" (subscript_expression "local_48[2]" (identifier "local_48") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_3c = (undefined4 *)0x0;" (assignment_expression "local_3c = (undefined4 *)0x0" (identifier "local_3c") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_00020670:\n        local_6c = (code *)(puVar2 + -0x34b0);" (statement_identifier "LAB_00020670") (: ":") (expression_statement "local_6c = (code *)(puVar2 + -0x34b0);" (assignment_expression "local_6c = (code *)(puVar2 + -0x34b0)" (identifier "local_6c") (= "=") (cast_expression "(code *)(puVar2 + -0x34b0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x34b0)" (( "(") (binary_expression "puVar2 + -0x34b0" (identifier "puVar2") (+ "+") (number_literal "-0x34b0")) () ")")))) (; ";"))) (expression_statement "puVar1 = local_48 + 1;" (assignment_expression "puVar1 = local_48 + 1" (identifier "puVar1") (= "=") (binary_expression "local_48 + 1" (identifier "local_48") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }" (if "if") (parenthesized_expression "(((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e]))" (( "(") (binary_expression "((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])" (parenthesized_expression "((int)pppppppiVar25 < param_6)" (( "(") (binary_expression "(int)pppppppiVar25 < param_6" (cast_expression "(int)pppppppiVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar25")) (< "<") (identifier "param_6")) () ")")) (&& "&&") (parenthesized_expression "(-1 < (int)param_1[0x1e])" (( "(") (binary_expression "-1 < (int)param_1[0x1e]" (number_literal "-1") (< "<") (cast_expression "(int)param_1[0x1e]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[0x1e]" (identifier "param_1") ([ "[") (number_literal "0x1e") (] "]")))) () ")"))) () ")")) (compound_statement "{\n          ppppppiVar4 = param_1[0x19];\n          local_8c = 0;\n          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);\n          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);\n          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);\n          pppppppiVar28 = pppppppiVar25;\n          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);\n          do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));\n        }" ({ "{") (expression_statement "ppppppiVar4 = param_1[0x19];" (assignment_expression "ppppppiVar4 = param_1[0x19]" (identifier "ppppppiVar4") (= "=") (subscript_expression "param_1[0x19]" (identifier "param_1") ([ "[") (number_literal "0x19") (] "]"))) (; ";")) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" (identifier "local_8c") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);" (assignment_expression "pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018)" (identifier "pcVar15") (= "=") (cast_expression "(code *)(PTR_LAB_0003c1e8 + -0x5018)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0003c1e8 + -0x5018)" (( "(") (binary_expression "PTR_LAB_0003c1e8 + -0x5018" (identifier "PTR_LAB_0003c1e8") (+ "+") (number_literal "-0x5018")) () ")")))) (; ";")) (expression_statement "pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);" (assignment_expression "pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368)" (identifier "pcVar16") (= "=") (cast_expression "(code *)(PTR_LAB_0003c1e8 + -0x3368)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0003c1e8 + -0x3368)" (( "(") (binary_expression "PTR_LAB_0003c1e8 + -0x3368" (identifier "PTR_LAB_0003c1e8") (+ "+") (number_literal "-0x3368")) () ")")))) (; ";")) (expression_statement "pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);" (assignment_expression "pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38)" (identifier "pcVar17") (= "=") (cast_expression "(code *)(PTR_LAB_0003c1e8 + -0x7b38)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0003c1e8 + -0x7b38)" (( "(") (binary_expression "PTR_LAB_0003c1e8 + -0x7b38" (identifier "PTR_LAB_0003c1e8") (+ "+") (number_literal "-0x7b38")) () ")")))) (; ";")) (expression_statement "pppppppiVar28 = pppppppiVar25;" (assignment_expression "pppppppiVar28 = pppppppiVar25" (identifier "pppppppiVar28") (= "=") (identifier "pppppppiVar25")) (; ";")) (expression_statement "unaff_s8 = (int *******)((int)pppppppiVar25 + 1);" (assignment_expression "unaff_s8 = (int *******)((int)pppppppiVar25 + 1)" (identifier "unaff_s8") (= "=") (cast_expression "(int *******)((int)pppppppiVar25 + 1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppiVar25 + 1)" (( "(") (binary_expression "(int)pppppppiVar25 + 1" (cast_expression "(int)pppppppiVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar25")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (do_statement "do {\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          } while (((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]));" (do "do") (compound_statement "{\n            pppppppiVar25 = unaff_s8;\n            local_48[2] = 0;\n            param_3 = (int *******)((int)pppppppiVar25 + -1);\n            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }\n            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);\n            pppppppiVar22 = pppppppiVar12;\n            pppppppiVar23 = (int *******)puVar1;\n            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);\n            if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }\n            unaff_s8 = pppppppiVar25;\n          }" ({ "{") (expression_statement "pppppppiVar25 = unaff_s8;" (assignment_expression "pppppppiVar25 = unaff_s8" (identifier "pppppppiVar25") (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "local_48[2] = 0;" (assignment_expression "local_48[2] = 0" (subscript_expression "local_48[2]" (identifier "local_48") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_3 = (int *******)((int)pppppppiVar25 + -1);" (assignment_expression "param_3 = (int *******)((int)pppppppiVar25 + -1)" (identifier "param_3") (= "=") (cast_expression "(int *******)((int)pppppppiVar25 + -1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppiVar25 + -1)" (( "(") (binary_expression "(int)pppppppiVar25 + -1" (cast_expression "(int)pppppppiVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar25")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (if_statement "if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }\n            else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }" (if "if") (parenthesized_expression "(ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0)" (( "(") (binary_expression "ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0" (subscript_expression "ppppppiVar4[(int)pppppppiVar25]" (identifier "ppppppiVar4") ([ "[") (cast_expression "(int)pppppppiVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar25")) (] "]")) (== "==") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              uVar10 = local_4c;\n              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;\n              ppppppiVar4 = param_1[0x16];\n            }" ({ "{") (expression_statement "uVar10 = local_4c;" (assignment_expression "uVar10 = local_4c" (identifier "uVar10") (= "=") (identifier "local_4c")) (; ";")) (if_statement "if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;" (if "if") (parenthesized_expression "(unaff_s7 != (int ******)0x0)" (( "(") (binary_expression "unaff_s7 != (int ******)0x0" (identifier "unaff_s7") (!= "!=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000206f8;" (goto "goto") (statement_identifier "LAB_000206f8") (; ";"))) (expression_statement "ppppppiVar4 = param_1[0x16];" (assignment_expression "ppppppiVar4 = param_1[0x16]" (identifier "ppppppiVar4") (= "=") (subscript_expression "param_1[0x16]" (identifier "param_1") ([ "[") (number_literal "0x16") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }" (else "else") (compound_statement "{\n              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);\n              local_4c = FUN_0001aa4c(puVar1);\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              uVar10 = 0;\n              if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }\nLAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }\n              ppppppiVar4 = param_1[0x16];\n            }" ({ "{") (expression_statement "pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);" (assignment_expression "pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1)" (identifier "pppppppiVar22") (= "=") (cast_expression "(int *******)(ppppppiVar4[(int)pppppppiVar25] + 1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(ppppppiVar4[(int)pppppppiVar25] + 1)" (( "(") (binary_expression "ppppppiVar4[(int)pppppppiVar25] + 1" (subscript_expression "ppppppiVar4[(int)pppppppiVar25]" (identifier "ppppppiVar4") ([ "[") (cast_expression "(int)pppppppiVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar25")) (] "]")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_4c = FUN_0001aa4c(puVar1);" (assignment_expression "local_4c = FUN_0001aa4c(puVar1)" (identifier "local_4c") (= "=") (call_expression "FUN_0001aa4c(puVar1)" (identifier "FUN_0001aa4c") (argument_list "(puVar1)" (( "(") (identifier "puVar1") () ")")))) (; ";")) (expression_statement "unaff_s8 = pppppppiVar25;" (assignment_expression "unaff_s8 = pppppppiVar25" (identifier "unaff_s8") (= "=") (identifier "pppppppiVar25")) (; ";")) (if_statement "if (local_4c != 0) goto LAB_00020920;" (if "if") (parenthesized_expression "(local_4c != 0)" (( "(") (binary_expression "local_4c != 0" (identifier "local_4c") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00020920;" (goto "goto") (statement_identifier "LAB_00020920") (; ";"))) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (if_statement "if (unaff_s7 != (int ******)0x0) {\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }" (if "if") (parenthesized_expression "(unaff_s7 != (int ******)0x0)" (( "(") (binary_expression "unaff_s7 != (int ******)0x0" (identifier "unaff_s7") (!= "!=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000206f8:\n                local_4c = uVar10;\n                unaff_s5 = &local_38;\n                pppppppiVar30 = (int *******)param_1[0x15];\n                local_38 = (int ******)0x0;\n                local_48[0] = 0;\n                local_34 = 0;\n                local_30 = 0;\n                if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }\n                (*(code *)PTR_free_0003c320)(local_30);\n                local_4c = 0;\n              }" ({ "{") (labeled_statement "LAB_000206f8:\n                local_4c = uVar10;" (statement_identifier "LAB_000206f8") (: ":") (expression_statement "local_4c = uVar10;" (assignment_expression "local_4c = uVar10" (identifier "local_4c") (= "=") (identifier "uVar10")) (; ";"))) (expression_statement "unaff_s5 = &local_38;" (assignment_expression "unaff_s5 = &local_38" (identifier "unaff_s5") (= "=") (pointer_expression "&local_38" (& "&") (identifier "local_38"))) (; ";")) (expression_statement "pppppppiVar30 = (int *******)param_1[0x15];" (assignment_expression "pppppppiVar30 = (int *******)param_1[0x15]" (identifier "pppppppiVar30") (= "=") (cast_expression "(int *******)param_1[0x15]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "param_1[0x15]" (identifier "param_1") ([ "[") (number_literal "0x15") (] "]")))) (; ";")) (expression_statement "local_38 = (int ******)0x0;" (assignment_expression "local_38 = (int ******)0x0" (identifier "local_38") (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_48[0] = 0;" (assignment_expression "local_48[0] = 0" (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" (identifier "local_34") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < (int)unaff_s7[5]) {\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }" (if "if") (parenthesized_expression "(0 < (int)unaff_s7[5])" (( "(") (binary_expression "0 < (int)unaff_s7[5]" (number_literal "0") (< "<") (cast_expression "(int)unaff_s7[5]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "unaff_s7[5]" (identifier "unaff_s7") ([ "[") (number_literal "5") (] "]")))) () ")")) (compound_statement "{\n                  ppppppiVar32 = (int ******)0x0;\n                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);\n                  do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);\n                }" ({ "{") (expression_statement "ppppppiVar32 = (int ******)0x0;" (assignment_expression "ppppppiVar32 = (int ******)0x0" (identifier "ppppppiVar32") (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);" (assignment_expression "pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4)" (identifier "pcVar5") (= "=") (cast_expression "(code *)(PTR_LAB_0003c1e8 + -0x3ea4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0003c1e8 + -0x3ea4)" (( "(") (binary_expression "PTR_LAB_0003c1e8 + -0x3ea4" (identifier "PTR_LAB_0003c1e8") (+ "+") (number_literal "-0x3ea4")) () ")")))) (; ";")) (do_statement "do {\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);" (do "do") (compound_statement "{\n                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];\n                    param_4 = (int *******)((int)pppppppiVar29 * 8);\n                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }\nLAB_00020768:\n                    pppppppiVar23 = param_3;\n                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);\n                    unaff_s8 = pppppppiVar25;\n                    if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }\n                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);\n                  }" ({ "{") (expression_statement "pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];" (assignment_expression "pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32]" (identifier "pppppppiVar29") (= "=") (cast_expression "(int *******)unaff_s7[6][(int)ppppppiVar32]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "unaff_s7[6][(int)ppppppiVar32]" (subscript_expression "unaff_s7[6]" (identifier "unaff_s7") ([ "[") (number_literal "6") (] "]")) ([ "[") (cast_expression "(int)ppppppiVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar32")) (] "]")))) (; ";")) (expression_statement "param_4 = (int *******)((int)pppppppiVar29 * 8);" (assignment_expression "param_4 = (int *******)((int)pppppppiVar29 * 8)" (identifier "param_4") (= "=") (cast_expression "(int *******)((int)pppppppiVar29 * 8)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppiVar29 * 8)" (( "(") (binary_expression "(int)pppppppiVar29 * 8" (cast_expression "(int)pppppppiVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar29")) (* "*") (number_literal "8")) () ")")))) (; ";")) (expression_statement "ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;" (assignment_expression "ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2" (identifier "ppppppiVar4") (= "=") (binary_expression "*pppppppiVar30 + (int)pppppppiVar29 * 2" (pointer_expression "*pppppppiVar30" (* "*") (identifier "pppppppiVar30")) (+ "+") (binary_expression "(int)pppppppiVar29 * 2" (cast_expression "(int)pppppppiVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar29")) (* "*") (number_literal "2")))) (; ";")) (if_statement "if (((uint)ppppppiVar4[1] & 0x800) != 0) {\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }" (if "if") (parenthesized_expression "(((uint)ppppppiVar4[1] & 0x800) != 0)" (( "(") (binary_expression "((uint)ppppppiVar4[1] & 0x800) != 0" (parenthesized_expression "((uint)ppppppiVar4[1] & 0x800)" (( "(") (binary_expression "(uint)ppppppiVar4[1] & 0x800" (cast_expression "(uint)ppppppiVar4[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppppppiVar4[1]" (identifier "ppppppiVar4") ([ "[") (number_literal "1") (] "]"))) (& "&") (number_literal "0x800")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      pppppppiVar23 = pppppppiVar29;\n                      pppppppiVar7 = param_1;\n                      local_a8 = param_3;\n                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);\n                      if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }\n                      iVar6 = (int)param_3 + iVar6;\n                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);\n                      param_4 = (int *******)(iVar6 * 4);\n                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];\n                      local_34 = 0;\n                      if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }\n                      (*(code *)PTR_free_0003c320)(local_30);\n                      local_4c = local_48[0];\n                      unaff_s8 = pppppppiVar25;\n                      if (local_48[0] == 0) goto LAB_000207d0;\n                      goto LAB_00020920;\n                    }" ({ "{") (expression_statement "pppppppiVar23 = pppppppiVar29;" (assignment_expression "pppppppiVar23 = pppppppiVar29" (identifier "pppppppiVar23") (= "=") (identifier "pppppppiVar29")) (; ";")) (expression_statement "pppppppiVar7 = param_1;" (assignment_expression "pppppppiVar7 = param_1" (identifier "pppppppiVar7") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_a8 = param_3;" (assignment_expression "local_a8 = param_3" (identifier "local_a8") (= "=") (identifier "param_3")) (; ";")) (expression_statement "iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);" (assignment_expression "iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20)" (identifier "iVar6") (= "=") (call_expression "FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20)" (identifier "FUN_000201f0") (argument_list "(*pppppppiVar30,pppppppiVar30 + 0x20)" (( "(") (pointer_expression "*pppppppiVar30" (* "*") (identifier "pppppppiVar30")) (, ",") (binary_expression "pppppppiVar30 + 0x20" (identifier "pppppppiVar30") (+ "+") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if (iVar6 < 2) {\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }" (if "if") (parenthesized_expression "(iVar6 < 2)" (( "(") (binary_expression "iVar6 < 2" (identifier "iVar6") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n                        unaff_s8 = pppppppiVar25;\n                        if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }\n                        goto LAB_00020784;\n                      }" ({ "{") (expression_statement "unaff_s8 = pppppppiVar25;" (assignment_expression "unaff_s8 = pppppppiVar25" (identifier "unaff_s8") (= "=") (identifier "pppppppiVar25")) (; ";")) (if_statement "if (iVar6 == 0) {\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;\n                          goto LAB_00020768;\n                        }" ({ "{") (expression_statement "ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;" (assignment_expression "ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2" (identifier "ppppppiVar4") (= "=") (binary_expression "*pppppppiVar30 + (int)pppppppiVar29 * 2" (pointer_expression "*pppppppiVar30" (* "*") (identifier "pppppppiVar30")) (+ "+") (binary_expression "(int)pppppppiVar29 * 2" (cast_expression "(int)pppppppiVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar29")) (* "*") (number_literal "2")))) (; ";")) (goto_statement "goto LAB_00020768;" (goto "goto") (statement_identifier "LAB_00020768") (; ";")) (} "}"))) (goto_statement "goto LAB_00020784;" (goto "goto") (statement_identifier "LAB_00020784") (; ";")) (} "}"))) (expression_statement "iVar6 = (int)param_3 + iVar6;" (assignment_expression "iVar6 = (int)param_3 + iVar6" (identifier "iVar6") (= "=") (binary_expression "(int)param_3 + iVar6" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (identifier "iVar6"))) (; ";")) (expression_statement "pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);" (assignment_expression "pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4)" (identifier "pppppppiVar28") (= "=") (cast_expression "(int *******)((int)pppppppiVar29 * 4)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppiVar29 * 4)" (( "(") (binary_expression "(int)pppppppiVar29 * 4" (cast_expression "(int)pppppppiVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar29")) (* "*") (number_literal "4")) () ")")))) (; ";")) (expression_statement "param_4 = (int *******)(iVar6 * 4);" (assignment_expression "param_4 = (int *******)(iVar6 * 4)" (identifier "param_4") (= "=") (cast_expression "(int *******)(iVar6 * 4)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(iVar6 * 4)" (( "(") (binary_expression "iVar6 * 4" (identifier "iVar6") (* "*") (number_literal "4")) () ")")))) (; ";")) (expression_statement "unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];" (assignment_expression "unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29]" (identifier "unaff_s8") (= "=") (cast_expression "(int *******)pppppppiVar30[3][(int)pppppppiVar29]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppiVar30[3][(int)pppppppiVar29]" (subscript_expression "pppppppiVar30[3]" (identifier "pppppppiVar30") ([ "[") (number_literal "3") (] "]")) ([ "[") (cast_expression "(int)pppppppiVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar29")) (] "]")))) (; ";")) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" (identifier "local_34") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_1[0x19][iVar6] == (int *****)0x0) {\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }\n                      else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }" (if "if") (parenthesized_expression "(param_1[0x19][iVar6] == (int *****)0x0)" (( "(") (binary_expression "param_1[0x19][iVar6] == (int *****)0x0" (subscript_expression "param_1[0x19][iVar6]" (subscript_expression "param_1[0x19]" (identifier "param_1") ([ "[") (number_literal "0x19") (] "]")) ([ "[") (identifier "iVar6") (] "]")) (== "==") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000209e0:\n                        pppppppiVar22 = unaff_s8;\n                        iVar31 = (*pcVar17)(unaff_s5);\n                        if (iVar31 == 0) goto LAB_00020904;\n                        pppppppiVar7 = (int *******)param_1[0x19];\n                        unaff_s8 = pppppppiVar7 + iVar6;\n                        pppppppiVar22 = pppppppiVar30;\n                        pppppppiVar23 = unaff_s5;\n                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);\n                        ppppppiVar18 = param_1[0x19];\n                        *unaff_s8 = ppppppiVar4;\n                        param_4 = (int *******)(ppppppiVar18 + iVar6);\n                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;\n                      }" ({ "{") (labeled_statement "LAB_000209e0:\n                        pppppppiVar22 = unaff_s8;" (statement_identifier "LAB_000209e0") (: ":") (expression_statement "pppppppiVar22 = unaff_s8;" (assignment_expression "pppppppiVar22 = unaff_s8" (identifier "pppppppiVar22") (= "=") (identifier "unaff_s8")) (; ";"))) (expression_statement "iVar31 = (*pcVar17)(unaff_s5);" (assignment_expression "iVar31 = (*pcVar17)(unaff_s5)" (identifier "iVar31") (= "=") (call_expression "(*pcVar17)(unaff_s5)" (parenthesized_expression "(*pcVar17)" (( "(") (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17")) () ")")) (argument_list "(unaff_s5)" (( "(") (identifier "unaff_s5") () ")")))) (; ";")) (if_statement "if (iVar31 == 0) goto LAB_00020904;" (if "if") (parenthesized_expression "(iVar31 == 0)" (( "(") (binary_expression "iVar31 == 0" (identifier "iVar31") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00020904;" (goto "goto") (statement_identifier "LAB_00020904") (; ";"))) (expression_statement "pppppppiVar7 = (int *******)param_1[0x19];" (assignment_expression "pppppppiVar7 = (int *******)param_1[0x19]" (identifier "pppppppiVar7") (= "=") (cast_expression "(int *******)param_1[0x19]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "param_1[0x19]" (identifier "param_1") ([ "[") (number_literal "0x19") (] "]")))) (; ";")) (expression_statement "unaff_s8 = pppppppiVar7 + iVar6;" (assignment_expression "unaff_s8 = pppppppiVar7 + iVar6" (identifier "unaff_s8") (= "=") (binary_expression "pppppppiVar7 + iVar6" (identifier "pppppppiVar7") (+ "+") (identifier "iVar6"))) (; ";")) (expression_statement "pppppppiVar22 = pppppppiVar30;" (assignment_expression "pppppppiVar22 = pppppppiVar30" (identifier "pppppppiVar22") (= "=") (identifier "pppppppiVar30")) (; ";")) (expression_statement "pppppppiVar23 = unaff_s5;" (assignment_expression "pppppppiVar23 = unaff_s5" (identifier "pppppppiVar23") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "ppppppiVar4 = (int ******)(*pcVar5)(local_48);" (assignment_expression "ppppppiVar4 = (int ******)(*pcVar5)(local_48)" (identifier "ppppppiVar4") (= "=") (cast_expression "(int ******)(*pcVar5)(local_48)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(*pcVar5)(local_48)" (parenthesized_expression "(*pcVar5)" (( "(") (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) () ")")) (argument_list "(local_48)" (( "(") (identifier "local_48") () ")"))))) (; ";")) (expression_statement "ppppppiVar18 = param_1[0x19];" (assignment_expression "ppppppiVar18 = param_1[0x19]" (identifier "ppppppiVar18") (= "=") (subscript_expression "param_1[0x19]" (identifier "param_1") ([ "[") (number_literal "0x19") (] "]"))) (; ";")) (expression_statement "*unaff_s8 = ppppppiVar4;" (assignment_expression "*unaff_s8 = ppppppiVar4" (pointer_expression "*unaff_s8" (* "*") (identifier "unaff_s8")) (= "=") (identifier "ppppppiVar4")) (; ";")) (expression_statement "param_4 = (int *******)(ppppppiVar18 + iVar6);" (assignment_expression "param_4 = (int *******)(ppppppiVar18 + iVar6)" (identifier "param_4") (= "=") (cast_expression "(int *******)(ppppppiVar18 + iVar6)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(ppppppiVar18 + iVar6)" (( "(") (binary_expression "ppppppiVar18 + iVar6" (identifier "ppppppiVar18") (+ "+") (identifier "iVar6")) () ")")))) (; ";")) (if_statement "if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;" (if "if") (parenthesized_expression "((*param_4 != (int ******)0x0) || (local_48[0] == 0))" (( "(") (binary_expression "(*param_4 != (int ******)0x0) || (local_48[0] == 0)" (parenthesized_expression "(*param_4 != (int ******)0x0)" (( "(") (binary_expression "*param_4 != (int ******)0x0" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (!= "!=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(local_48[0] == 0)" (( "(") (binary_expression "local_48[0] == 0" (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00020784;" (goto "goto") (statement_identifier "LAB_00020784") (; ";"))) (} "}")) (else_clause "else {\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }" (else "else") (compound_statement "{\n                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);\n                        local_48[0] = FUN_0001aa4c(unaff_s5);\n                        if (local_48[0] == 0) goto LAB_000209e0;\n                      }" ({ "{") (expression_statement "pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);" (assignment_expression "pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1)" (identifier "pppppppiVar22") (= "=") (cast_expression "(int *******)(param_1[0x19][iVar6] + 1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(param_1[0x19][iVar6] + 1)" (( "(") (binary_expression "param_1[0x19][iVar6] + 1" (subscript_expression "param_1[0x19][iVar6]" (subscript_expression "param_1[0x19]" (identifier "param_1") ([ "[") (number_literal "0x19") (] "]")) ([ "[") (identifier "iVar6") (] "]")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_48[0] = FUN_0001aa4c(unaff_s5);" (assignment_expression "local_48[0] = FUN_0001aa4c(unaff_s5)" (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "FUN_0001aa4c(unaff_s5)" (identifier "FUN_0001aa4c") (argument_list "(unaff_s5)" (( "(") (identifier "unaff_s5") () ")")))) (; ";")) (if_statement "if (local_48[0] == 0) goto LAB_000209e0;" (if "if") (parenthesized_expression "(local_48[0] == 0)" (( "(") (binary_expression "local_48[0] == 0" (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000209e0;" (goto "goto") (statement_identifier "LAB_000209e0") (; ";"))) (} "}")))) (expression_statement "(*(code *)PTR_free_0003c320)(local_30);" (call_expression "(*(code *)PTR_free_0003c320)(local_30)" (parenthesized_expression "(*(code *)PTR_free_0003c320)" (( "(") (pointer_expression "*(code *)PTR_free_0003c320" (* "*") (cast_expression "(code *)PTR_free_0003c320" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0003c320"))) () ")")) (argument_list "(local_30)" (( "(") (identifier "local_30") () ")"))) (; ";")) (expression_statement "local_4c = local_48[0];" (assignment_expression "local_4c = local_48[0]" (identifier "local_4c") (= "=") (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "unaff_s8 = pppppppiVar25;" (assignment_expression "unaff_s8 = pppppppiVar25" (identifier "unaff_s8") (= "=") (identifier "pppppppiVar25")) (; ";")) (if_statement "if (local_48[0] == 0) goto LAB_000207d0;" (if "if") (parenthesized_expression "(local_48[0] == 0)" (( "(") (binary_expression "local_48[0] == 0" (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000207d0;" (goto "goto") (statement_identifier "LAB_000207d0") (; ";"))) (goto_statement "goto LAB_00020920;" (goto "goto") (statement_identifier "LAB_00020920") (; ";")) (} "}"))) (labeled_statement "LAB_00020768:\n                    pppppppiVar23 = param_3;" (statement_identifier "LAB_00020768") (: ":") (expression_statement "pppppppiVar23 = param_3;" (assignment_expression "pppppppiVar23 = param_3" (identifier "pppppppiVar23") (= "=") (identifier "param_3")) (; ";"))) (expression_statement "iVar6 = (*pcVar16)(param_1,ppppppiVar4);" (assignment_expression "iVar6 = (*pcVar16)(param_1,ppppppiVar4)" (identifier "iVar6") (= "=") (call_expression "(*pcVar16)(param_1,ppppppiVar4)" (parenthesized_expression "(*pcVar16)" (( "(") (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) () ")")) (argument_list "(param_1,ppppppiVar4)" (( "(") (identifier "param_1") (, ",") (identifier "ppppppiVar4") () ")")))) (; ";")) (expression_statement "unaff_s8 = pppppppiVar25;" (assignment_expression "unaff_s8 = pppppppiVar25" (identifier "unaff_s8") (= "=") (identifier "pppppppiVar25")) (; ";")) (if_statement "if (iVar6 != 0) {\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);\n                      pppppppiVar22 = (int *******)*pppppppiVar28;\n                      iVar6 = (*pcVar17)(puVar1);\n                      if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }\n                    }" ({ "{") (labeled_statement "LAB_00020784:\n                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);" (statement_identifier "LAB_00020784") (: ":") (expression_statement "pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);" (assignment_expression "pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29)" (identifier "pppppppiVar28") (= "=") (cast_expression "(int *******)(pppppppiVar30[3] + (int)pppppppiVar29)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(pppppppiVar30[3] + (int)pppppppiVar29)" (( "(") (binary_expression "pppppppiVar30[3] + (int)pppppppiVar29" (subscript_expression "pppppppiVar30[3]" (identifier "pppppppiVar30") ([ "[") (number_literal "3") (] "]")) (+ "+") (cast_expression "(int)pppppppiVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar29"))) () ")")))) (; ";"))) (expression_statement "pppppppiVar22 = (int *******)*pppppppiVar28;" (assignment_expression "pppppppiVar22 = (int *******)*pppppppiVar28" (identifier "pppppppiVar22") (= "=") (cast_expression "(int *******)*pppppppiVar28" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*pppppppiVar28" (* "*") (identifier "pppppppiVar28")))) (; ";")) (expression_statement "iVar6 = (*pcVar17)(puVar1);" (assignment_expression "iVar6 = (*pcVar17)(puVar1)" (identifier "iVar6") (= "=") (call_expression "(*pcVar17)(puVar1)" (parenthesized_expression "(*pcVar17)" (( "(") (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17")) () ")")) (argument_list "(puVar1)" (( "(") (identifier "puVar1") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);\n                        local_4c = 0xc;\n                        goto LAB_00020920;\n                      }" ({ "{") (labeled_statement "LAB_00020904:\n                        (*(code *)PTR_free_0003c320)(local_30);" (statement_identifier "LAB_00020904") (: ":") (expression_statement "(*(code *)PTR_free_0003c320)(local_30);" (call_expression "(*(code *)PTR_free_0003c320)(local_30)" (parenthesized_expression "(*(code *)PTR_free_0003c320)" (( "(") (pointer_expression "*(code *)PTR_free_0003c320" (* "*") (cast_expression "(code *)PTR_free_0003c320" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0003c320"))) () ")")) (argument_list "(local_30)" (( "(") (identifier "local_30") () ")"))) (; ";"))) (expression_statement "local_4c = 0xc;" (assignment_expression "local_4c = 0xc" (identifier "local_4c") (= "=") (number_literal "0xc")) (; ";")) (goto_statement "goto LAB_00020920;" (goto "goto") (statement_identifier "LAB_00020920") (; ";")) (} "}"))) (} "}"))) (expression_statement "ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);" (assignment_expression "ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1)" (identifier "ppppppiVar32") (= "=") (cast_expression "(int ******)((int)ppppppiVar32 + 1)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)ppppppiVar32 + 1)" (( "(") (binary_expression "(int)ppppppiVar32 + 1" (cast_expression "(int)ppppppiVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar32")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)ppppppiVar32 < (int)unaff_s7[5])" (( "(") (binary_expression "(int)ppppppiVar32 < (int)unaff_s7[5]" (cast_expression "(int)ppppppiVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar32")) (< "<") (cast_expression "(int)unaff_s7[5]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "unaff_s7[5]" (identifier "unaff_s7") ([ "[") (number_literal "5") (] "]")))) () ")")) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_free_0003c320)(local_30);" (call_expression "(*(code *)PTR_free_0003c320)(local_30)" (parenthesized_expression "(*(code *)PTR_free_0003c320)" (( "(") (pointer_expression "*(code *)PTR_free_0003c320" (* "*") (cast_expression "(code *)PTR_free_0003c320" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0003c320"))) () ")")) (argument_list "(local_30)" (( "(") (identifier "local_30") () ")"))) (; ";")) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (} "}"))) (labeled_statement "LAB_000207d0:\n              if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }" (statement_identifier "LAB_000207d0") (: ":") (if_statement "if (local_48[2] != 0) {\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }" (if "if") (parenthesized_expression "(local_48[2] != 0)" (( "(") (binary_expression "local_48[2] != 0" (subscript_expression "local_48[2]" (identifier "local_48") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar3;\n                pppppppiVar7 = param_7;\n                local_4c = (*pcVar15)(pppppppiVar12);\n                pppppppiVar28 = pppppppiVar25;\n                unaff_s8 = pppppppiVar25;\n                if (local_4c != 0) goto LAB_00020920;\n                local_a8 = param_7;\n                pppppppiVar22 = (int *******)puVar1;\n                pppppppiVar23 = pppppppiVar25;\n                pppppppiVar7 = pppppppiVar3;\n                local_4c = FUN_0001c580(param_1);\n                if (local_4c != 0) goto LAB_00020920;\n              }" ({ "{") (expression_statement "pppppppiVar22 = (int *******)puVar1;" (assignment_expression "pppppppiVar22 = (int *******)puVar1" (identifier "pppppppiVar22") (= "=") (cast_expression "(int *******)puVar1" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (identifier "puVar1"))) (; ";")) (expression_statement "pppppppiVar23 = pppppppiVar3;" (assignment_expression "pppppppiVar23 = pppppppiVar3" (identifier "pppppppiVar23") (= "=") (identifier "pppppppiVar3")) (; ";")) (expression_statement "pppppppiVar7 = param_7;" (assignment_expression "pppppppiVar7 = param_7" (identifier "pppppppiVar7") (= "=") (identifier "param_7")) (; ";")) (expression_statement "local_4c = (*pcVar15)(pppppppiVar12);" (assignment_expression "local_4c = (*pcVar15)(pppppppiVar12)" (identifier "local_4c") (= "=") (call_expression "(*pcVar15)(pppppppiVar12)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(pppppppiVar12)" (( "(") (identifier "pppppppiVar12") () ")")))) (; ";")) (expression_statement "pppppppiVar28 = pppppppiVar25;" (assignment_expression "pppppppiVar28 = pppppppiVar25" (identifier "pppppppiVar28") (= "=") (identifier "pppppppiVar25")) (; ";")) (expression_statement "unaff_s8 = pppppppiVar25;" (assignment_expression "unaff_s8 = pppppppiVar25" (identifier "unaff_s8") (= "=") (identifier "pppppppiVar25")) (; ";")) (if_statement "if (local_4c != 0) goto LAB_00020920;" (if "if") (parenthesized_expression "(local_4c != 0)" (( "(") (binary_expression "local_4c != 0" (identifier "local_4c") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00020920;" (goto "goto") (statement_identifier "LAB_00020920") (; ";"))) (expression_statement "local_a8 = param_7;" (assignment_expression "local_a8 = param_7" (identifier "local_a8") (= "=") (identifier "param_7")) (; ";")) (expression_statement "pppppppiVar22 = (int *******)puVar1;" (assignment_expression "pppppppiVar22 = (int *******)puVar1" (identifier "pppppppiVar22") (= "=") (cast_expression "(int *******)puVar1" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (identifier "puVar1"))) (; ";")) (expression_statement "pppppppiVar23 = pppppppiVar25;" (assignment_expression "pppppppiVar23 = pppppppiVar25" (identifier "pppppppiVar23") (= "=") (identifier "pppppppiVar25")) (; ";")) (expression_statement "pppppppiVar7 = pppppppiVar3;" (assignment_expression "pppppppiVar7 = pppppppiVar3" (identifier "pppppppiVar7") (= "=") (identifier "pppppppiVar3")) (; ";")) (expression_statement "local_4c = FUN_0001c580(param_1);" (assignment_expression "local_4c = FUN_0001c580(param_1)" (identifier "local_4c") (= "=") (call_expression "FUN_0001c580(param_1)" (identifier "FUN_0001c580") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (local_4c != 0) goto LAB_00020920;" (if "if") (parenthesized_expression "(local_4c != 0)" (( "(") (binary_expression "local_4c != 0" (identifier "local_4c") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00020920;" (goto "goto") (statement_identifier "LAB_00020920") (; ";"))) (} "}")))) (expression_statement "ppppppiVar4 = param_1[0x16];" (assignment_expression "ppppppiVar4 = param_1[0x16]" (identifier "ppppppiVar4") (= "=") (subscript_expression "param_1[0x16]" (identifier "param_1") ([ "[") (number_literal "0x16") (] "]"))) (; ";")) (} "}")))) (expression_statement "pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);" (assignment_expression "pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4)" (identifier "pppppppiVar7") (= "=") (cast_expression "(int *******)(*local_6c)(param_1,param_3,ppppppiVar4)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*local_6c)(param_1,param_3,ppppppiVar4)" (parenthesized_expression "(*local_6c)" (( "(") (pointer_expression "*local_6c" (* "*") (identifier "local_6c")) () ")")) (argument_list "(param_1,param_3,ppppppiVar4)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (identifier "ppppppiVar4") () ")"))))) (; ";")) (expression_statement "pppppppiVar22 = pppppppiVar12;" (assignment_expression "pppppppiVar22 = pppppppiVar12" (identifier "pppppppiVar22") (= "=") (identifier "pppppppiVar12")) (; ";")) (expression_statement "pppppppiVar23 = (int *******)puVar1;" (assignment_expression "pppppppiVar23 = (int *******)puVar1" (identifier "pppppppiVar23") (= "=") (cast_expression "(int *******)puVar1" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (identifier "puVar1"))) (; ";")) (expression_statement "unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);" (assignment_expression "unaff_s7 = (int ******)FUN_0001bd4c(&local_4c)" (identifier "unaff_s7") (= "=") (cast_expression "(int ******)FUN_0001bd4c(&local_4c)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "FUN_0001bd4c(&local_4c)" (identifier "FUN_0001bd4c") (argument_list "(&local_4c)" (( "(") (pointer_expression "&local_4c" (& "&") (identifier "local_4c")) () ")"))))) (; ";")) (if_statement "if (unaff_s7 == (int ******)0x0) {\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }\n            else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }" (if "if") (parenthesized_expression "(unaff_s7 == (int ******)0x0)" (( "(") (binary_expression "unaff_s7 == (int ******)0x0" (identifier "unaff_s7") (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              pppppppiVar28 = pppppppiVar25;\n              unaff_s8 = pppppppiVar25;\n              if (local_4c != 0) goto LAB_00020920;\n              ppppppiVar4 = param_1[0x19];\n              local_8c = local_8c + 1;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = (int ******)0x0;\n            }" ({ "{") (expression_statement "pppppppiVar28 = pppppppiVar25;" (assignment_expression "pppppppiVar28 = pppppppiVar25" (identifier "pppppppiVar28") (= "=") (identifier "pppppppiVar25")) (; ";")) (expression_statement "unaff_s8 = pppppppiVar25;" (assignment_expression "unaff_s8 = pppppppiVar25" (identifier "unaff_s8") (= "=") (identifier "pppppppiVar25")) (; ";")) (if_statement "if (local_4c != 0) goto LAB_00020920;" (if "if") (parenthesized_expression "(local_4c != 0)" (( "(") (binary_expression "local_4c != 0" (identifier "local_4c") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00020920;" (goto "goto") (statement_identifier "LAB_00020920") (; ";"))) (expression_statement "ppppppiVar4 = param_1[0x19];" (assignment_expression "ppppppiVar4 = param_1[0x19]" (identifier "ppppppiVar4") (= "=") (subscript_expression "param_1[0x19]" (identifier "param_1") ([ "[") (number_literal "0x19") (] "]"))) (; ";")) (expression_statement "local_8c = local_8c + 1;" (assignment_expression "local_8c = local_8c + 1" (identifier "local_8c") (= "=") (binary_expression "local_8c + 1" (identifier "local_8c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);" (assignment_expression "unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25)" (identifier "unaff_s5") (= "=") (cast_expression "(int *******)(ppppppiVar4 + (int)pppppppiVar25)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(ppppppiVar4 + (int)pppppppiVar25)" (( "(") (binary_expression "ppppppiVar4 + (int)pppppppiVar25" (identifier "ppppppiVar4") (+ "+") (cast_expression "(int)pppppppiVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar25"))) () ")")))) (; ";")) (expression_statement "*unaff_s5 = (int ******)0x0;" (assignment_expression "*unaff_s5 = (int ******)0x0" (pointer_expression "*unaff_s5" (* "*") (identifier "unaff_s5")) (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }" (else "else") (compound_statement "{\n              ppppppiVar4 = param_1[0x19];\n              local_8c = 0;\n              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);\n              *unaff_s5 = unaff_s7;\n            }" ({ "{") (expression_statement "ppppppiVar4 = param_1[0x19];" (assignment_expression "ppppppiVar4 = param_1[0x19]" (identifier "ppppppiVar4") (= "=") (subscript_expression "param_1[0x19]" (identifier "param_1") ([ "[") (number_literal "0x19") (] "]"))) (; ";")) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" (identifier "local_8c") (= "=") (number_literal "0")) (; ";")) (expression_statement "unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);" (assignment_expression "unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25)" (identifier "unaff_s5") (= "=") (cast_expression "(int *******)(ppppppiVar4 + (int)pppppppiVar25)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(ppppppiVar4 + (int)pppppppiVar25)" (( "(") (binary_expression "ppppppiVar4 + (int)pppppppiVar25" (identifier "ppppppiVar4") (+ "+") (cast_expression "(int)pppppppiVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar25"))) () ")")))) (; ";")) (expression_statement "*unaff_s5 = unaff_s7;" (assignment_expression "*unaff_s5 = unaff_s7" (pointer_expression "*unaff_s5" (* "*") (identifier "unaff_s5")) (= "=") (identifier "unaff_s7")) (; ";")) (} "}")))) (expression_statement "unaff_s8 = pppppppiVar25;" (assignment_expression "unaff_s8 = pppppppiVar25" (identifier "unaff_s8") (= "=") (identifier "pppppppiVar25")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]))" (( "(") (binary_expression "((int)pppppppiVar25 < param_6) &&\n                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e])" (parenthesized_expression "((int)pppppppiVar25 < param_6)" (( "(") (binary_expression "(int)pppppppiVar25 < param_6" (cast_expression "(int)pppppppiVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar25")) (< "<") (identifier "param_6")) () ")")) (&& "&&") (parenthesized_expression "(unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e])" (( "(") (comma_expression "unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]" (assignment_expression "unaff_s8 = (int *******)((int)pppppppiVar25 + 1)" (identifier "unaff_s8") (= "=") (cast_expression "(int *******)((int)pppppppiVar25 + 1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppiVar25 + 1)" (( "(") (binary_expression "(int)pppppppiVar25 + 1" (cast_expression "(int)pppppppiVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar25")) (+ "+") (number_literal "1")) () ")")))) (, ",") (comma_expression "pppppppiVar28 = pppppppiVar25,\n                  local_8c <= (int)param_1[0x1e]" (assignment_expression "pppppppiVar28 = pppppppiVar25" (identifier "pppppppiVar28") (= "=") (identifier "pppppppiVar25")) (, ",") (binary_expression "local_8c <= (int)param_1[0x1e]" (identifier "local_8c") (<= "<=") (cast_expression "(int)param_1[0x1e]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[0x1e]" (identifier "param_1") ([ "[") (number_literal "0x1e") (] "]")))))) () ")"))) () ")")) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_free_0003c320)(local_3c);" (call_expression "(*(code *)PTR_free_0003c320)(local_3c)" (parenthesized_expression "(*(code *)PTR_free_0003c320)" (( "(") (pointer_expression "*(code *)PTR_free_0003c320" (* "*") (cast_expression "(code *)PTR_free_0003c320" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0003c320"))) () ")")) (argument_list "(local_3c)" (( "(") (identifier "local_3c") () ")"))) (; ";")) (expression_statement "pppppiVar8 = param_1[0x19][param_6];" (assignment_expression "pppppiVar8 = param_1[0x19][param_6]" (identifier "pppppiVar8") (= "=") (subscript_expression "param_1[0x19][param_6]" (subscript_expression "param_1[0x19]" (identifier "param_1") ([ "[") (number_literal "0x19") (] "]")) ([ "[") (identifier "param_6") (] "]"))) (; ";")) (expression_statement "pppppppiVar28 = pppppppiVar25;" (assignment_expression "pppppppiVar28 = pppppppiVar25" (identifier "pppppppiVar28") (= "=") (identifier "pppppppiVar25")) (; ";")) (if_statement "if (pppppiVar8 == (int *****)0x0) {\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }\n        else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }" (if "if") (parenthesized_expression "(pppppiVar8 == (int *****)0x0)" (( "(") (binary_expression "pppppiVar8 == (int *****)0x0" (identifier "pppppiVar8") (== "==") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[0x19] = ppppppiVar13;\n          param_1[10] = ppppppiVar14;\n          uVar10 = 1;\n        }" ({ "{") (expression_statement "*param_2 = (int ******)pppppppiVar25;" (assignment_expression "*param_2 = (int ******)pppppppiVar25" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int ******)pppppppiVar25" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "pppppppiVar25"))) (; ";")) (expression_statement "param_1[0x19] = ppppppiVar13;" (assignment_expression "param_1[0x19] = ppppppiVar13" (subscript_expression "param_1[0x19]" (identifier "param_1") ([ "[") (number_literal "0x19") (] "]")) (= "=") (identifier "ppppppiVar13")) (; ";")) (expression_statement "param_1[10] = ppppppiVar14;" (assignment_expression "param_1[10] = ppppppiVar14" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "ppppppiVar14")) (; ";")) (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" (identifier "uVar10") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }" (else "else") (compound_statement "{\n          pppppppiVar22 = (int *******)(pppppiVar8 + 3);\n          *param_2 = (int ******)pppppppiVar25;\n          param_1[10] = ppppppiVar14;\n          ppppiVar19 = pppppiVar8[2];\n          param_1[0x19] = ppppppiVar13;\n          iVar6 = FUN_0001a2d0(ppppiVar19);\n          uVar10 = (uint)(iVar6 == 0);\n          pppppppiVar23 = param_5;\n        }" ({ "{") (expression_statement "pppppppiVar22 = (int *******)(pppppiVar8 + 3);" (assignment_expression "pppppppiVar22 = (int *******)(pppppiVar8 + 3)" (identifier "pppppppiVar22") (= "=") (cast_expression "(int *******)(pppppiVar8 + 3)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(pppppiVar8 + 3)" (( "(") (binary_expression "pppppiVar8 + 3" (identifier "pppppiVar8") (+ "+") (number_literal "3")) () ")")))) (; ";")) (expression_statement "*param_2 = (int ******)pppppppiVar25;" (assignment_expression "*param_2 = (int ******)pppppppiVar25" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int ******)pppppppiVar25" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "pppppppiVar25"))) (; ";")) (expression_statement "param_1[10] = ppppppiVar14;" (assignment_expression "param_1[10] = ppppppiVar14" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "ppppppiVar14")) (; ";")) (expression_statement "ppppiVar19 = pppppiVar8[2];" (assignment_expression "ppppiVar19 = pppppiVar8[2]" (identifier "ppppiVar19") (= "=") (subscript_expression "pppppiVar8[2]" (identifier "pppppiVar8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "param_1[0x19] = ppppppiVar13;" (assignment_expression "param_1[0x19] = ppppppiVar13" (subscript_expression "param_1[0x19]" (identifier "param_1") ([ "[") (number_literal "0x19") (] "]")) (= "=") (identifier "ppppppiVar13")) (; ";")) (expression_statement "iVar6 = FUN_0001a2d0(ppppiVar19);" (assignment_expression "iVar6 = FUN_0001a2d0(ppppiVar19)" (identifier "iVar6") (= "=") (call_expression "FUN_0001a2d0(ppppiVar19)" (identifier "FUN_0001a2d0") (argument_list "(ppppiVar19)" (( "(") (identifier "ppppiVar19") () ")")))) (; ";")) (expression_statement "uVar10 = (uint)(iVar6 == 0);" (assignment_expression "uVar10 = (uint)(iVar6 == 0)" (identifier "uVar10") (= "=") (call_expression "(uint)(iVar6 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")))) (; ";")) (expression_statement "pppppppiVar23 = param_5;" (assignment_expression "pppppppiVar23 = param_5" (identifier "pppppppiVar23") (= "=") (identifier "param_5")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }" (else "else") (compound_statement "{\n        pppppppiVar22 = (int *******)(unaff_s7 + 1);\n        uVar10 = FUN_0001ba80(local_48 + 1);\n        local_4c = uVar10;\n        if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }\n      }" ({ "{") (expression_statement "pppppppiVar22 = (int *******)(unaff_s7 + 1);" (assignment_expression "pppppppiVar22 = (int *******)(unaff_s7 + 1)" (identifier "pppppppiVar22") (= "=") (cast_expression "(int *******)(unaff_s7 + 1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(unaff_s7 + 1)" (( "(") (binary_expression "unaff_s7 + 1" (identifier "unaff_s7") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar10 = FUN_0001ba80(local_48 + 1);" (assignment_expression "uVar10 = FUN_0001ba80(local_48 + 1)" (identifier "uVar10") (= "=") (call_expression "FUN_0001ba80(local_48 + 1)" (identifier "FUN_0001ba80") (argument_list "(local_48 + 1)" (( "(") (binary_expression "local_48 + 1" (identifier "local_48") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_4c = uVar10;" (assignment_expression "local_4c = uVar10" (identifier "local_4c") (= "=") (identifier "uVar10")) (; ";")) (if_statement "if (uVar10 == 0) {\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }" (if "if") (parenthesized_expression "(uVar10 == 0)" (( "(") (binary_expression "uVar10 == 0" (identifier "uVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;\n          goto LAB_00020ab8;\n        }" ({ "{") (if_statement "if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;" (if "if") (parenthesized_expression "(((uint)unaff_s7[0xd] & 0x2000000) == 0)" (( "(") (binary_expression "((uint)unaff_s7[0xd] & 0x2000000) == 0" (parenthesized_expression "((uint)unaff_s7[0xd] & 0x2000000)" (( "(") (binary_expression "(uint)unaff_s7[0xd] & 0x2000000" (cast_expression "(uint)unaff_s7[0xd]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "unaff_s7[0xd]" (identifier "unaff_s7") ([ "[") (number_literal "0xd") (] "]"))) (& "&") (number_literal "0x2000000")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00020670;" (goto "goto") (statement_identifier "LAB_00020670") (; ";"))) (goto_statement "goto LAB_00020ab8;" (goto "goto") (statement_identifier "LAB_00020ab8") (; ";")) (} "}"))) (} "}")))) (} "}")))) (} "}")) (else_clause "else {\n    pppppppiVar28 = (int *******)((int)pppppppiVar23 + 1);\n    ppppppiVar32 = (int ******)((int)pppppppiVar30 + (int)pppppppiVar28);\n    if (((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&\n       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)) {\n      pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);\n      ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);\n      puVar2 = PTR_memset_0003c290;\n      if (ppppppiVar13 != (int ******)0x0) {\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }\n    }\nLAB_00020c64:\n    uVar10 = 0xc;\n  }" (else "else") (compound_statement "{\n    pppppppiVar28 = (int *******)((int)pppppppiVar23 + 1);\n    ppppppiVar32 = (int ******)((int)pppppppiVar30 + (int)pppppppiVar28);\n    if (((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&\n       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)) {\n      pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);\n      ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);\n      puVar2 = PTR_memset_0003c290;\n      if (ppppppiVar13 != (int ******)0x0) {\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }\n    }\nLAB_00020c64:\n    uVar10 = 0xc;\n  }" ({ "{") (expression_statement "pppppppiVar28 = (int *******)((int)pppppppiVar23 + 1);" (assignment_expression "pppppppiVar28 = (int *******)((int)pppppppiVar23 + 1)" (identifier "pppppppiVar28") (= "=") (cast_expression "(int *******)((int)pppppppiVar23 + 1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppiVar23 + 1)" (( "(") (binary_expression "(int)pppppppiVar23 + 1" (cast_expression "(int)pppppppiVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar23")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "ppppppiVar32 = (int ******)((int)pppppppiVar30 + (int)pppppppiVar28);" (assignment_expression "ppppppiVar32 = (int ******)((int)pppppppiVar30 + (int)pppppppiVar28)" (identifier "ppppppiVar32") (= "=") (cast_expression "(int ******)((int)pppppppiVar30 + (int)pppppppiVar28)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)pppppppiVar30 + (int)pppppppiVar28)" (( "(") (binary_expression "(int)pppppppiVar30 + (int)pppppppiVar28" (cast_expression "(int)pppppppiVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar30")) (+ "+") (cast_expression "(int)pppppppiVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar28"))) () ")")))) (; ";")) (if_statement "if (((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&\n       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)) {\n      pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);\n      ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);\n      puVar2 = PTR_memset_0003c290;\n      if (ppppppiVar13 != (int ******)0x0) {\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }\n    }" (if "if") (parenthesized_expression "(((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&\n       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000))" (( "(") (binary_expression "((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&\n       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)" (parenthesized_expression "((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30)" (( "(") (binary_expression "(int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30" (cast_expression "(int)pppppppiVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar28")) (<= "<=") (binary_expression "0x7fffffff - (int)pppppppiVar30" (number_literal "0x7fffffff") (- "-") (cast_expression "(int)pppppppiVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar30")))) () ")")) (&& "&&") (parenthesized_expression "(unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)" (( "(") (comma_expression "unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000" (assignment_expression "unaff_s5 = param_2" (identifier "unaff_s5") (= "=") (identifier "param_2")) (, ",") (binary_expression "ppppppiVar32 < (int ******)0x40000000" (identifier "ppppppiVar32") (< "<") (cast_expression "(int ******)0x40000000" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x40000000")))) () ")"))) () ")")) (compound_statement "{\n      pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);\n      ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);\n      puVar2 = PTR_memset_0003c290;\n      if (ppppppiVar13 != (int ******)0x0) {\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }\n    }" ({ "{") (expression_statement "pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);" (assignment_expression "pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4)" (identifier "pppppppiVar22") (= "=") (cast_expression "(int *******)((int)ppppppiVar32 * 4)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)ppppppiVar32 * 4)" (( "(") (binary_expression "(int)ppppppiVar32 * 4" (cast_expression "(int)ppppppiVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar32")) (* "*") (number_literal "4")) () ")")))) (; ";")) (expression_statement "ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);" (assignment_expression "ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2])" (identifier "ppppppiVar13") (= "=") (cast_expression "(int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2])" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(*(code *)PTR_realloc_0003c2b8)(param_2[2])" (parenthesized_expression "(*(code *)PTR_realloc_0003c2b8)" (( "(") (pointer_expression "*(code *)PTR_realloc_0003c2b8" (* "*") (cast_expression "(code *)PTR_realloc_0003c2b8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_realloc_0003c2b8"))) () ")")) (argument_list "(param_2[2])" (( "(") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) () ")"))))) (; ";")) (expression_statement "puVar2 = PTR_memset_0003c290;" (assignment_expression "puVar2 = PTR_memset_0003c290" (identifier "puVar2") (= "=") (identifier "PTR_memset_0003c290")) (; ";")) (if_statement "if (ppppppiVar13 != (int ******)0x0) {\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }" (if "if") (parenthesized_expression "(ppppppiVar13 != (int ******)0x0)" (( "(") (binary_expression "ppppppiVar13 != (int ******)0x0" (identifier "ppppppiVar13") (!= "!=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        param_2[2] = ppppppiVar13;\n        param_2[1] = ppppppiVar32;\n        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);\n        goto LAB_000205e8;\n      }" ({ "{") (expression_statement "param_2[2] = ppppppiVar13;" (assignment_expression "param_2[2] = ppppppiVar13" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "ppppppiVar13")) (; ";")) (expression_statement "param_2[1] = ppppppiVar32;" (assignment_expression "param_2[1] = ppppppiVar32" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "ppppppiVar32")) (; ";")) (expression_statement "(*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);" (call_expression "(*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4)" (parenthesized_expression "(*(code *)puVar2)" (( "(") (pointer_expression "*(code *)puVar2" (* "*") (cast_expression "(code *)puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) () ")")) (argument_list "(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4)" (( "(") (binary_expression "ppppppiVar13 + (int)pppppppiVar30" (identifier "ppppppiVar13") (+ "+") (cast_expression "(int)pppppppiVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar30"))) (, ",") (number_literal "0") (, ",") (binary_expression "(int)pppppppiVar28 * 4" (cast_expression "(int)pppppppiVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar28")) (* "*") (number_literal "4")) () ")"))) (; ";")) (goto_statement "goto LAB_000205e8;" (goto "goto") (statement_identifier "LAB_000205e8") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00020c64:\n    uVar10 = 0xc;" (statement_identifier "LAB_00020c64") (: ":") (expression_statement "uVar10 = 0xc;" (assignment_expression "uVar10 = 0xc" (identifier "uVar10") (= "=") (number_literal "0xc")) (; ";"))) (} "}")))) (if_statement "if (local_2c == *(undefined4 **)puVar35) {\n    return uVar10;\n  }" (if "if") (parenthesized_expression "(local_2c == *(undefined4 **)puVar35)" (( "(") (binary_expression "local_2c == *(undefined4 **)puVar35" (identifier "local_2c") (== "==") (pointer_expression "*(undefined4 **)puVar35" (* "*") (cast_expression "(undefined4 **)puVar35" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar35")))) () ")")) (compound_statement "{\n    return uVar10;\n  }" ({ "{") (return_statement "return uVar10;" (return "return") (identifier "uVar10") (; ";")) (} "}"))) (expression_statement "pcVar15 = FUN_00020ca0;" (assignment_expression "pcVar15 = FUN_00020ca0" (identifier "pcVar15") (= "=") (identifier "FUN_00020ca0")) (; ";")) (expression_statement "puVar21 = local_2c;" (assignment_expression "puVar21 = local_2c" (identifier "puVar21") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar35 = PTR___stack_chk_fail_0003c2f4;" (assignment_expression "puVar35 = PTR___stack_chk_fail_0003c2f4" (identifier "puVar35") (= "=") (identifier "PTR___stack_chk_fail_0003c2f4")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0003c2f4)();" (call_expression "(*(code *)PTR___stack_chk_fail_0003c2f4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0003c2f4)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0003c2f4" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0003c2f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0003c2f4"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "appppppiStack_138[0] = (int ******)(puVar35 + 0x23430);" (assignment_expression "appppppiStack_138[0] = (int ******)(puVar35 + 0x23430)" (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(int ******)(puVar35 + 0x23430)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(puVar35 + 0x23430)" (( "(") (binary_expression "puVar35 + 0x23430" (identifier "puVar35") (+ "+") (number_literal "0x23430")) () ")")))) (; ";")) (expression_statement "puVar37 = auStack_150;" (assignment_expression "puVar37 = auStack_150" (identifier "puVar37") (= "=") (identifier "auStack_150")) (; ";")) (expression_statement "puVar38 = auStack_150;" (assignment_expression "puVar38 = auStack_150" (identifier "puVar38") (= "=") (identifier "auStack_150")) (; ";")) (expression_statement "piStack_12c = *(int **)(puVar35 + 0x1b674);" (assignment_expression "piStack_12c = *(int **)(puVar35 + 0x1b674)" (identifier "piStack_12c") (= "=") (pointer_expression "*(int **)(puVar35 + 0x1b674)" (* "*") (cast_expression "(int **)(puVar35 + 0x1b674)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar35 + 0x1b674)" (( "(") (binary_expression "puVar35 + 0x1b674" (identifier "puVar35") (+ "+") (number_literal "0x1b674")) () ")"))))) (; ";")) (expression_statement "uStack_ec = 2;" (assignment_expression "uStack_ec = 2" (identifier "uStack_ec") (= "=") (number_literal "2")) (; ";")) (expression_statement "piStack_f0 = (int *)0x0;" (assignment_expression "piStack_f0 = (int *)0x0" (identifier "piStack_f0") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iStack_e8 = 0;" (assignment_expression "iStack_e8 = 0" (identifier "iStack_e8") (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_e4 = *piStack_12c;" (assignment_expression "iStack_e4 = *piStack_12c" (identifier "iStack_e4") (= "=") (pointer_expression "*piStack_12c" (* "*") (identifier "piStack_12c"))) (; ";")) (expression_statement "piVar34 = (int *)*puVar21;" (assignment_expression "piVar34 = (int *)*puVar21" (identifier "piVar34") (= "=") (cast_expression "(int *)*puVar21" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar21" (* "*") (identifier "puVar21")))) (; ";")) (expression_statement "pppppppiVar3 = pppppppiVar22;" (assignment_expression "pppppppiVar3 = pppppppiVar22" (identifier "pppppppiVar3") (= "=") (identifier "pppppppiVar22")) (; ";")) (expression_statement "pppppppiVar12 = pppppppiVar23;" (assignment_expression "pppppppiVar12 = pppppppiVar23" (identifier "pppppppiVar12") (= "=") (identifier "pppppppiVar23")) (; ";")) (expression_statement "pppppppiVar25 = pppppppiVar7;" (assignment_expression "pppppppiVar25 = pppppppiVar7" (identifier "pppppppiVar25") (= "=") (identifier "pppppppiVar7")) (; ";")) (expression_statement "pppppppiStack_e0 = pppppppiVar28;" (assignment_expression "pppppppiStack_e0 = pppppppiVar28" (identifier "pppppppiStack_e0") (= "=") (identifier "pppppppiVar28")) (; ";")) (expression_statement "pppppppiStack_dc = param_4;" (assignment_expression "pppppppiStack_dc = param_4" (identifier "pppppppiStack_dc") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pppppppiStack_d8 = pppppppiVar30;" (assignment_expression "pppppppiStack_d8 = pppppppiVar30" (identifier "pppppppiStack_d8") (= "=") (identifier "pppppppiVar30")) (; ";")) (expression_statement "pppppppiStack_d4 = param_3;" (assignment_expression "pppppppiStack_d4 = param_3" (identifier "pppppppiStack_d4") (= "=") (identifier "param_3")) (; ";")) (expression_statement "ppppppiStack_d0 = ppppppiVar32;" (assignment_expression "ppppppiStack_d0 = ppppppiVar32" (identifier "ppppppiStack_d0") (= "=") (identifier "ppppppiVar32")) (; ";")) (expression_statement "pppppppiStack_cc = unaff_s5;" (assignment_expression "pppppppiStack_cc = unaff_s5" (identifier "pppppppiStack_cc") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "pppppppiStack_c8 = param_1;" (assignment_expression "pppppppiStack_c8 = param_1" (identifier "pppppppiStack_c8") (= "=") (identifier "param_1")) (; ";")) (expression_statement "ppppppiStack_c4 = unaff_s7;" (assignment_expression "ppppppiStack_c4 = unaff_s7" (identifier "ppppppiStack_c4") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "pppppppiStack_c0 = unaff_s8;" (assignment_expression "pppppppiStack_c0 = unaff_s8" (identifier "pppppppiStack_c0") (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "pcStack_bc = pcVar15;" (assignment_expression "pcStack_bc = pcVar15" (identifier "pcStack_bc") (= "=") (identifier "pcVar15")) (; ";")) (if_statement "if ((char)local_a8 == '\0') {\n    pppppppiVar28 = (int *******)piVar34[0x12];\n    ppiVar33 = (int **)0x0;\n    if ((uint)((int)pppppppiVar23 << 3) < 0xfc0) goto LAB_00020d5c;\nLAB_00021488:\n    pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n    ppppppiStack_f4 = (int ******)0x0;\n    uStack_f8 = 0;\n    ppppppiStack_fc = (int ******)0x0;\n    param_3 = &ppppppiStack_fc;\n    pppppppiStack_124 = (int *******)(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c);\n    iStack_128 = 1;\n    if (pppppppiStack_124 != (int *******)0x0) goto LAB_00020d6c;\n    puVar37 = auStack_150;\n    if (ppiVar33 == (int **)0x0) {\n      uVar10 = 0xc;\n      goto LAB_00020f18;\n    }\nLAB_0002112c:\n    param_3 = &ppppppiStack_fc;\n    FUN_0001ec78(ppiVar33);\n    puVar39 = puVar37;\n  }\n  else {\n    ppiVar33 = &piStack_f0;\n    iStack_e8 = (**(code **)(puVar35 + 0x1b614))(0x30);\n    puVar39 = auStack_150;\n    if (iStack_e8 != 0) {\n      pppppppiVar28 = (int *******)piVar34[0x12];\n      if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n      ppppppiStack_f4 = (int ******)0x0;\n      uStack_f8 = 0;\n      ppppppiStack_fc = (int ******)0x0;\n      puVar37 = auStack_150 + (int)pppppppiVar23 * -8;\n      iStack_128 = 0;\n      pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;\nLAB_00020d6c:\n      param_3 = &ppppppiStack_fc;\n      pppppppiVar3 = pppppppiVar7;\n      pppppppiVar12 = pppppppiStack_11c;\n      (*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);\n      pppppppiStack_100 = (int *******)*pppppppiVar7;\n      ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);\n      ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);\n      ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);\nLAB_00020db0:\n      pppppppiVar29 = (int *******)pppppppiVar7[1];\n      ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n      ppppppiVar32 = appppppiStack_138[0];\n      puVar38 = puVar37;\n      if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }\n      pppppppiVar25 = pppppppiStack_100;\n      (*(code *)ppppiVar19)(ppppppiStack_f4);\n      if (iStack_128 == 0) {\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }\n      else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      FUN_0001ec78(ppiVar33);\nLAB_00020f14:\n      uVar10 = 0;\n      goto LAB_00020f18;\n    }\n  }" (if "if") (parenthesized_expression "((char)local_a8 == '\0')" (( "(") (binary_expression "(char)local_a8 == '\0'" (cast_expression "(char)local_a8" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_a8")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    pppppppiVar28 = (int *******)piVar34[0x12];\n    ppiVar33 = (int **)0x0;\n    if ((uint)((int)pppppppiVar23 << 3) < 0xfc0) goto LAB_00020d5c;\nLAB_00021488:\n    pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n    ppppppiStack_f4 = (int ******)0x0;\n    uStack_f8 = 0;\n    ppppppiStack_fc = (int ******)0x0;\n    param_3 = &ppppppiStack_fc;\n    pppppppiStack_124 = (int *******)(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c);\n    iStack_128 = 1;\n    if (pppppppiStack_124 != (int *******)0x0) goto LAB_00020d6c;\n    puVar37 = auStack_150;\n    if (ppiVar33 == (int **)0x0) {\n      uVar10 = 0xc;\n      goto LAB_00020f18;\n    }\nLAB_0002112c:\n    param_3 = &ppppppiStack_fc;\n    FUN_0001ec78(ppiVar33);\n    puVar39 = puVar37;\n  }" ({ "{") (expression_statement "pppppppiVar28 = (int *******)piVar34[0x12];" (assignment_expression "pppppppiVar28 = (int *******)piVar34[0x12]" (identifier "pppppppiVar28") (= "=") (cast_expression "(int *******)piVar34[0x12]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "piVar34[0x12]" (identifier "piVar34") ([ "[") (number_literal "0x12") (] "]")))) (; ";")) (expression_statement "ppiVar33 = (int **)0x0;" (assignment_expression "ppiVar33 = (int **)0x0" (identifier "ppiVar33") (= "=") (cast_expression "(int **)0x0" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if ((uint)((int)pppppppiVar23 << 3) < 0xfc0) goto LAB_00020d5c;" (if "if") (parenthesized_expression "((uint)((int)pppppppiVar23 << 3) < 0xfc0)" (( "(") (binary_expression "(uint)((int)pppppppiVar23 << 3) < 0xfc0" (call_expression "(uint)((int)pppppppiVar23 << 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pppppppiVar23 << 3)" (( "(") (binary_expression "(int)pppppppiVar23 << 3" (cast_expression "(int)pppppppiVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar23")) (<< "<<") (number_literal "3")) () ")"))) (< "<") (number_literal "0xfc0")) () ")")) (goto_statement "goto LAB_00020d5c;" (goto "goto") (statement_identifier "LAB_00020d5c") (; ";"))) (labeled_statement "LAB_00021488:\n    pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);" (statement_identifier "LAB_00021488") (: ":") (expression_statement "pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);" (assignment_expression "pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3)" (identifier "pppppppiStack_11c") (= "=") (cast_expression "(int *******)((int)pppppppiVar23 << 3)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppiVar23 << 3)" (( "(") (binary_expression "(int)pppppppiVar23 << 3" (cast_expression "(int)pppppppiVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar23")) (<< "<<") (number_literal "3")) () ")")))) (; ";"))) (expression_statement "ppppppiStack_f4 = (int ******)0x0;" (assignment_expression "ppppppiStack_f4 = (int ******)0x0" (identifier "ppppppiStack_f4") (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uStack_f8 = 0;" (assignment_expression "uStack_f8 = 0" (identifier "uStack_f8") (= "=") (number_literal "0")) (; ";")) (expression_statement "ppppppiStack_fc = (int ******)0x0;" (assignment_expression "ppppppiStack_fc = (int ******)0x0" (identifier "ppppppiStack_fc") (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "param_3 = &ppppppiStack_fc;" (assignment_expression "param_3 = &ppppppiStack_fc" (identifier "param_3") (= "=") (pointer_expression "&ppppppiStack_fc" (& "&") (identifier "ppppppiStack_fc"))) (; ";")) (expression_statement "pppppppiStack_124 = (int *******)(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c);" (assignment_expression "pppppppiStack_124 = (int *******)(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c)" (identifier "pppppppiStack_124") (= "=") (cast_expression "(int *******)(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c)" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f87])" (( "(") (pointer_expression "*(code *)appppppiStack_138[0][-0x1f87]" (* "*") (cast_expression "(code *)appppppiStack_138[0][-0x1f87]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "appppppiStack_138[0][-0x1f87]" (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "-0x1f87") (] "]")))) () ")")) (argument_list "(pppppppiStack_11c)" (( "(") (identifier "pppppppiStack_11c") () ")"))))) (; ";")) (expression_statement "iStack_128 = 1;" (assignment_expression "iStack_128 = 1" (identifier "iStack_128") (= "=") (number_literal "1")) (; ";")) (if_statement "if (pppppppiStack_124 != (int *******)0x0) goto LAB_00020d6c;" (if "if") (parenthesized_expression "(pppppppiStack_124 != (int *******)0x0)" (( "(") (binary_expression "pppppppiStack_124 != (int *******)0x0" (identifier "pppppppiStack_124") (!= "!=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00020d6c;" (goto "goto") (statement_identifier "LAB_00020d6c") (; ";"))) (expression_statement "puVar37 = auStack_150;" (assignment_expression "puVar37 = auStack_150" (identifier "puVar37") (= "=") (identifier "auStack_150")) (; ";")) (if_statement "if (ppiVar33 == (int **)0x0) {\n      uVar10 = 0xc;\n      goto LAB_00020f18;\n    }" (if "if") (parenthesized_expression "(ppiVar33 == (int **)0x0)" (( "(") (binary_expression "ppiVar33 == (int **)0x0" (identifier "ppiVar33") (== "==") (cast_expression "(int **)0x0" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      uVar10 = 0xc;\n      goto LAB_00020f18;\n    }" ({ "{") (expression_statement "uVar10 = 0xc;" (assignment_expression "uVar10 = 0xc" (identifier "uVar10") (= "=") (number_literal "0xc")) (; ";")) (goto_statement "goto LAB_00020f18;" (goto "goto") (statement_identifier "LAB_00020f18") (; ";")) (} "}"))) (labeled_statement "LAB_0002112c:\n    param_3 = &ppppppiStack_fc;" (statement_identifier "LAB_0002112c") (: ":") (expression_statement "param_3 = &ppppppiStack_fc;" (assignment_expression "param_3 = &ppppppiStack_fc" (identifier "param_3") (= "=") (pointer_expression "&ppppppiStack_fc" (& "&") (identifier "ppppppiStack_fc"))) (; ";"))) (expression_statement "FUN_0001ec78(ppiVar33);" (call_expression "FUN_0001ec78(ppiVar33)" (identifier "FUN_0001ec78") (argument_list "(ppiVar33)" (( "(") (identifier "ppiVar33") () ")"))) (; ";")) (expression_statement "puVar39 = puVar37;" (assignment_expression "puVar39 = puVar37" (identifier "puVar39") (= "=") (identifier "puVar37")) (; ";")) (} "}")) (else_clause "else {\n    ppiVar33 = &piStack_f0;\n    iStack_e8 = (**(code **)(puVar35 + 0x1b614))(0x30);\n    puVar39 = auStack_150;\n    if (iStack_e8 != 0) {\n      pppppppiVar28 = (int *******)piVar34[0x12];\n      if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n      ppppppiStack_f4 = (int ******)0x0;\n      uStack_f8 = 0;\n      ppppppiStack_fc = (int ******)0x0;\n      puVar37 = auStack_150 + (int)pppppppiVar23 * -8;\n      iStack_128 = 0;\n      pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;\nLAB_00020d6c:\n      param_3 = &ppppppiStack_fc;\n      pppppppiVar3 = pppppppiVar7;\n      pppppppiVar12 = pppppppiStack_11c;\n      (*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);\n      pppppppiStack_100 = (int *******)*pppppppiVar7;\n      ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);\n      ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);\n      ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);\nLAB_00020db0:\n      pppppppiVar29 = (int *******)pppppppiVar7[1];\n      ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n      ppppppiVar32 = appppppiStack_138[0];\n      puVar38 = puVar37;\n      if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }\n      pppppppiVar25 = pppppppiStack_100;\n      (*(code *)ppppiVar19)(ppppppiStack_f4);\n      if (iStack_128 == 0) {\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }\n      else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      FUN_0001ec78(ppiVar33);\nLAB_00020f14:\n      uVar10 = 0;\n      goto LAB_00020f18;\n    }\n  }" (else "else") (compound_statement "{\n    ppiVar33 = &piStack_f0;\n    iStack_e8 = (**(code **)(puVar35 + 0x1b614))(0x30);\n    puVar39 = auStack_150;\n    if (iStack_e8 != 0) {\n      pppppppiVar28 = (int *******)piVar34[0x12];\n      if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n      ppppppiStack_f4 = (int ******)0x0;\n      uStack_f8 = 0;\n      ppppppiStack_fc = (int ******)0x0;\n      puVar37 = auStack_150 + (int)pppppppiVar23 * -8;\n      iStack_128 = 0;\n      pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;\nLAB_00020d6c:\n      param_3 = &ppppppiStack_fc;\n      pppppppiVar3 = pppppppiVar7;\n      pppppppiVar12 = pppppppiStack_11c;\n      (*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);\n      pppppppiStack_100 = (int *******)*pppppppiVar7;\n      ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);\n      ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);\n      ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);\nLAB_00020db0:\n      pppppppiVar29 = (int *******)pppppppiVar7[1];\n      ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n      ppppppiVar32 = appppppiStack_138[0];\n      puVar38 = puVar37;\n      if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }\n      pppppppiVar25 = pppppppiStack_100;\n      (*(code *)ppppiVar19)(ppppppiStack_f4);\n      if (iStack_128 == 0) {\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }\n      else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      FUN_0001ec78(ppiVar33);\nLAB_00020f14:\n      uVar10 = 0;\n      goto LAB_00020f18;\n    }\n  }" ({ "{") (expression_statement "ppiVar33 = &piStack_f0;" (assignment_expression "ppiVar33 = &piStack_f0" (identifier "ppiVar33") (= "=") (pointer_expression "&piStack_f0" (& "&") (identifier "piStack_f0"))) (; ";")) (expression_statement "iStack_e8 = (**(code **)(puVar35 + 0x1b614))(0x30);" (assignment_expression "iStack_e8 = (**(code **)(puVar35 + 0x1b614))(0x30)" (identifier "iStack_e8") (= "=") (call_expression "(**(code **)(puVar35 + 0x1b614))(0x30)" (parenthesized_expression "(**(code **)(puVar35 + 0x1b614))" (( "(") (pointer_expression "**(code **)(puVar35 + 0x1b614)" (* "*") (pointer_expression "*(code **)(puVar35 + 0x1b614)" (* "*") (cast_expression "(code **)(puVar35 + 0x1b614)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar35 + 0x1b614)" (( "(") (binary_expression "puVar35 + 0x1b614" (identifier "puVar35") (+ "+") (number_literal "0x1b614")) () ")"))))) () ")")) (argument_list "(0x30)" (( "(") (number_literal "0x30") () ")")))) (; ";")) (expression_statement "puVar39 = auStack_150;" (assignment_expression "puVar39 = auStack_150" (identifier "puVar39") (= "=") (identifier "auStack_150")) (; ";")) (if_statement "if (iStack_e8 != 0) {\n      pppppppiVar28 = (int *******)piVar34[0x12];\n      if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n      ppppppiStack_f4 = (int ******)0x0;\n      uStack_f8 = 0;\n      ppppppiStack_fc = (int ******)0x0;\n      puVar37 = auStack_150 + (int)pppppppiVar23 * -8;\n      iStack_128 = 0;\n      pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;\nLAB_00020d6c:\n      param_3 = &ppppppiStack_fc;\n      pppppppiVar3 = pppppppiVar7;\n      pppppppiVar12 = pppppppiStack_11c;\n      (*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);\n      pppppppiStack_100 = (int *******)*pppppppiVar7;\n      ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);\n      ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);\n      ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);\nLAB_00020db0:\n      pppppppiVar29 = (int *******)pppppppiVar7[1];\n      ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n      ppppppiVar32 = appppppiStack_138[0];\n      puVar38 = puVar37;\n      if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }\n      pppppppiVar25 = pppppppiStack_100;\n      (*(code *)ppppiVar19)(ppppppiStack_f4);\n      if (iStack_128 == 0) {\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }\n      else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      FUN_0001ec78(ppiVar33);\nLAB_00020f14:\n      uVar10 = 0;\n      goto LAB_00020f18;\n    }" (if "if") (parenthesized_expression "(iStack_e8 != 0)" (( "(") (binary_expression "iStack_e8 != 0" (identifier "iStack_e8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pppppppiVar28 = (int *******)piVar34[0x12];\n      if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;\nLAB_00020d5c:\n      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);\n      ppppppiStack_f4 = (int ******)0x0;\n      uStack_f8 = 0;\n      ppppppiStack_fc = (int ******)0x0;\n      puVar37 = auStack_150 + (int)pppppppiVar23 * -8;\n      iStack_128 = 0;\n      pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;\nLAB_00020d6c:\n      param_3 = &ppppppiStack_fc;\n      pppppppiVar3 = pppppppiVar7;\n      pppppppiVar12 = pppppppiStack_11c;\n      (*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);\n      pppppppiStack_100 = (int *******)*pppppppiVar7;\n      ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);\n      ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);\n      ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);\nLAB_00020db0:\n      pppppppiVar29 = (int *******)pppppppiVar7[1];\n      ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];\n      ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n      ppppppiVar32 = appppppiStack_138[0];\n      puVar38 = puVar37;\n      if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }\n      pppppppiVar25 = pppppppiStack_100;\n      (*(code *)ppppiVar19)(ppppppiStack_f4);\n      if (iStack_128 == 0) {\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }\n      else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }\nLAB_00020f00:\n      FUN_0001ec78(ppiVar33);\nLAB_00020f14:\n      uVar10 = 0;\n      goto LAB_00020f18;\n    }" ({ "{") (expression_statement "pppppppiVar28 = (int *******)piVar34[0x12];" (assignment_expression "pppppppiVar28 = (int *******)piVar34[0x12]" (identifier "pppppppiVar28") (= "=") (cast_expression "(int *******)piVar34[0x12]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "piVar34[0x12]" (identifier "piVar34") ([ "[") (number_literal "0x12") (] "]")))) (; ";")) (if_statement "if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;" (if "if") (parenthesized_expression "(0xfbf < (uint)((int)pppppppiVar23 << 3))" (( "(") (binary_expression "0xfbf < (uint)((int)pppppppiVar23 << 3)" (number_literal "0xfbf") (< "<") (call_expression "(uint)((int)pppppppiVar23 << 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pppppppiVar23 << 3)" (( "(") (binary_expression "(int)pppppppiVar23 << 3" (cast_expression "(int)pppppppiVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar23")) (<< "<<") (number_literal "3")) () ")")))) () ")")) (goto_statement "goto LAB_00021488;" (goto "goto") (statement_identifier "LAB_00021488") (; ";"))) (labeled_statement "LAB_00020d5c:\n      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);" (statement_identifier "LAB_00020d5c") (: ":") (expression_statement "pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);" (assignment_expression "pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3)" (identifier "pppppppiStack_11c") (= "=") (cast_expression "(int *******)((int)pppppppiVar23 << 3)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppiVar23 << 3)" (( "(") (binary_expression "(int)pppppppiVar23 << 3" (cast_expression "(int)pppppppiVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar23")) (<< "<<") (number_literal "3")) () ")")))) (; ";"))) (expression_statement "ppppppiStack_f4 = (int ******)0x0;" (assignment_expression "ppppppiStack_f4 = (int ******)0x0" (identifier "ppppppiStack_f4") (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uStack_f8 = 0;" (assignment_expression "uStack_f8 = 0" (identifier "uStack_f8") (= "=") (number_literal "0")) (; ";")) (expression_statement "ppppppiStack_fc = (int ******)0x0;" (assignment_expression "ppppppiStack_fc = (int ******)0x0" (identifier "ppppppiStack_fc") (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar37 = auStack_150 + (int)pppppppiVar23 * -8;" (assignment_expression "puVar37 = auStack_150 + (int)pppppppiVar23 * -8" (identifier "puVar37") (= "=") (binary_expression "auStack_150 + (int)pppppppiVar23 * -8" (identifier "auStack_150") (+ "+") (binary_expression "(int)pppppppiVar23 * -8" (cast_expression "(int)pppppppiVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar23")) (* "*") (number_literal "-8")))) (; ";")) (expression_statement "iStack_128 = 0;" (assignment_expression "iStack_128 = 0" (identifier "iStack_128") (= "=") (number_literal "0")) (; ";")) (expression_statement "pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;" (assignment_expression "pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2" (identifier "pppppppiStack_124") (= "=") (binary_expression "appppppiStack_138 + (int)pppppppiVar23 * -2" (identifier "appppppiStack_138") (+ "+") (binary_expression "(int)pppppppiVar23 * -2" (cast_expression "(int)pppppppiVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar23")) (* "*") (number_literal "-2")))) (; ";")) (labeled_statement "LAB_00020d6c:\n      param_3 = &ppppppiStack_fc;" (statement_identifier "LAB_00020d6c") (: ":") (expression_statement "param_3 = &ppppppiStack_fc;" (assignment_expression "param_3 = &ppppppiStack_fc" (identifier "param_3") (= "=") (pointer_expression "&ppppppiStack_fc" (& "&") (identifier "ppppppiStack_fc"))) (; ";"))) (expression_statement "pppppppiVar3 = pppppppiVar7;" (assignment_expression "pppppppiVar3 = pppppppiVar7" (identifier "pppppppiVar3") (= "=") (identifier "pppppppiVar7")) (; ";")) (expression_statement "pppppppiVar12 = pppppppiStack_11c;" (assignment_expression "pppppppiVar12 = pppppppiStack_11c" (identifier "pppppppiVar12") (= "=") (identifier "pppppppiStack_11c")) (; ";")) (expression_statement "(*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);" (call_expression "(*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124)" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f6e])" (( "(") (pointer_expression "*(code *)appppppiStack_138[0][-0x1f6e]" (* "*") (cast_expression "(code *)appppppiStack_138[0][-0x1f6e]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "appppppiStack_138[0][-0x1f6e]" (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "-0x1f6e") (] "]")))) () ")")) (argument_list "(pppppppiStack_124)" (( "(") (identifier "pppppppiStack_124") () ")"))) (; ";")) (expression_statement "pppppppiStack_100 = (int *******)*pppppppiVar7;" (assignment_expression "pppppppiStack_100 = (int *******)*pppppppiVar7" (identifier "pppppppiStack_100") (= "=") (cast_expression "(int *******)*pppppppiVar7" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*pppppppiVar7" (* "*") (identifier "pppppppiVar7")))) (; ";")) (expression_statement "ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);" (assignment_expression "ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb)" (identifier "ppppiStack_120") (= "=") (cast_expression "(int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb)" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(appppppiStack_138[0][-0x1fba] + -0x4bb)" (( "(") (binary_expression "appppppiStack_138[0][-0x1fba] + -0x4bb" (subscript_expression "appppppiStack_138[0][-0x1fba]" (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "-0x1fba") (] "]")) (+ "+") (number_literal "-0x4bb")) () ")")))) (; ";")) (expression_statement "ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);" (assignment_expression "ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c)" (identifier "ppppiStack_104") (= "=") (cast_expression "(int ****)(appppppiStack_138[0][-0x1fba] + -0x174c)" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(appppppiStack_138[0][-0x1fba] + -0x174c)" (( "(") (binary_expression "appppppiStack_138[0][-0x1fba] + -0x174c" (subscript_expression "appppppiStack_138[0][-0x1fba]" (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "-0x1fba") (] "]")) (+ "+") (number_literal "-0x174c")) () ")")))) (; ";")) (expression_statement "ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);" (assignment_expression "ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece)" (identifier "ppppiStack_114") (= "=") (cast_expression "(int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece)" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(appppppiStack_138[0][-0x1fba] + -0x1ece)" (( "(") (binary_expression "appppppiStack_138[0][-0x1fba] + -0x1ece" (subscript_expression "appppppiStack_138[0][-0x1fba]" (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "-0x1fba") (] "]")) (+ "+") (number_literal "-0x1ece")) () ")")))) (; ";")) (labeled_statement "LAB_00020db0:\n      pppppppiVar29 = (int *******)pppppppiVar7[1];" (statement_identifier "LAB_00020db0") (: ":") (expression_statement "pppppppiVar29 = (int *******)pppppppiVar7[1];" (assignment_expression "pppppppiVar29 = (int *******)pppppppiVar7[1]" (identifier "pppppppiVar29") (= "=") (cast_expression "(int *******)pppppppiVar7[1]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppiVar7[1]" (identifier "pppppppiVar7") ([ "[") (number_literal "1") (] "]")))) (; ";"))) (expression_statement "ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];" (assignment_expression "ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba]" (identifier "ppppiStack_110") (= "=") (cast_expression "(int ****)appppppiStack_138[0][-0x1fba]" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (subscript_expression "appppppiStack_138[0][-0x1fba]" (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "-0x1fba") (] "]")))) (; ";")) (expression_statement "ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];" (assignment_expression "ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba]" (identifier "ppppiStack_118") (= "=") (cast_expression "(int ****)appppppiStack_138[0][-0x1fba]" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (subscript_expression "appppppiStack_138[0][-0x1fba]" (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "-0x1fba") (] "]")))) (; ";")) (expression_statement "ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];" (assignment_expression "ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c]" (identifier "ppppiVar19") (= "=") (cast_expression "(int ****)appppppiStack_138[0][-0x1f6c]" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (subscript_expression "appppppiStack_138[0][-0x1f6c]" (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "-0x1f6c") (] "]")))) (; ";")) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" (identifier "ppppppiVar32") (= "=") (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "puVar38 = puVar37;" (assignment_expression "puVar38 = puVar37" (identifier "puVar38") (= "=") (identifier "puVar37")) (; ";")) (if_statement "if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }" (if "if") (parenthesized_expression "((int)pppppppiStack_100 <= (int)pppppppiVar29)" (( "(") (binary_expression "(int)pppppppiStack_100 <= (int)pppppppiVar29" (cast_expression "(int)pppppppiStack_100" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiStack_100")) (<= "<=") (cast_expression "(int)pppppppiVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar29"))) () ")")) (compound_statement "{\n        do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );\n      }" ({ "{") (do_statement "do {\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        } while( true );" (do "do") (compound_statement "{\n          pppppppiVar30 = pppppppiVar28;\n          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);\n          pppppppiVar12 = (int *******)0x8;\n          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);\n          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);\n          pppppppiVar25 = pppppppiStack_100;\n          if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }\nLAB_00020df8:\n          ppppiVar19 = ppppiStack_120;\n          if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }\n          pppppppiVar29 = pppppppiStack_100;\n          pppppppiVar26 = (int *******)pppppppiVar22[0x15];\n          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);\n          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);\n          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }\nLAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;\n          pppppppiVar29 = (int *******)pppppppiVar7[1];\n          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];\n          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;\n        }" ({ "{") (expression_statement "pppppppiVar30 = pppppppiVar28;" (assignment_expression "pppppppiVar30 = pppppppiVar28" (identifier "pppppppiVar30") (= "=") (identifier "pppppppiVar28")) (; ";")) (expression_statement "pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);" (assignment_expression "pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8)" (identifier "pppppppiVar28") (= "=") (cast_expression "(int *******)((int)pppppppiVar30 * 8)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppiVar30 * 8)" (( "(") (binary_expression "(int)pppppppiVar30 * 8" (cast_expression "(int)pppppppiVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar30")) (* "*") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pppppppiVar12 = (int *******)0x8;" (assignment_expression "pppppppiVar12 = (int *******)0x8" (identifier "pppppppiVar12") (= "=") (cast_expression "(int *******)0x8" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x8"))) (; ";")) (expression_statement "piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);" (assignment_expression "piVar9 = (int *)(*piVar34 + (int)pppppppiVar28)" (identifier "piVar9") (= "=") (cast_expression "(int *)(*piVar34 + (int)pppppppiVar28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar34 + (int)pppppppiVar28)" (( "(") (binary_expression "*piVar34 + (int)pppppppiVar28" (pointer_expression "*piVar34" (* "*") (identifier "piVar34")) (+ "+") (cast_expression "(int)pppppppiVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar28"))) () ")")))) (; ";")) (expression_statement "pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);" (assignment_expression "pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1)" (identifier "pppppppiVar3") (= "=") (binary_expression "(int *******)(uint)*(byte *)(piVar9 + 1)" (cast_expression "(int *******)(uint)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)(piVar9 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar9 + 1)" (( "(") (binary_expression "piVar9 + 1" (identifier "piVar9") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "pppppppiVar25 = pppppppiStack_100;" (assignment_expression "pppppppiVar25 = pppppppiStack_100" (identifier "pppppppiVar25") (= "=") (identifier "pppppppiStack_100")) (; ";")) (if_statement "if (pppppppiVar3 == (int *******)0x8) {\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }\n          else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }" (if "if") (parenthesized_expression "(pppppppiVar3 == (int *******)0x8)" (( "(") (binary_expression "pppppppiVar3 == (int *******)0x8" (identifier "pppppppiVar3") (== "==") (cast_expression "(int *******)0x8" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x8"))) () ")")) (compound_statement "{\n            iVar6 = *piVar9;\n            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);\n            if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }\n          }" ({ "{") (expression_statement "iVar6 = *piVar9;" (assignment_expression "iVar6 = *piVar9" (identifier "iVar6") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (expression_statement "pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);" (assignment_expression "pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23)" (identifier "pppppppiVar3") (= "=") (cast_expression "(int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(uint)(iVar6 + 1 < (int)pppppppiVar23)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar6 + 1 < (int)pppppppiVar23)" (( "(") (binary_expression "iVar6 + 1 < (int)pppppppiVar23" (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1")) (< "<") (cast_expression "(int)pppppppiVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar23"))) () ")"))))) (; ";")) (if_statement "if (pppppppiVar3 != (int *******)0x0) {\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }" (if "if") (parenthesized_expression "(pppppppiVar3 != (int *******)0x0)" (( "(") (binary_expression "pppppppiVar3 != (int *******)0x0" (identifier "pppppppiVar3") (!= "!=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;\n              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;\n              pppppppiVar29 = (int *******)pppppppiVar7[1];\n            }" ({ "{") (expression_statement "(pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;" (assignment_expression "(pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff" (subscript_expression "(pppppppiVar7 + (iVar6 + 1) * 2)[1]" (parenthesized_expression "(pppppppiVar7 + (iVar6 + 1) * 2)" (( "(") (binary_expression "pppppppiVar7 + (iVar6 + 1) * 2" (identifier "pppppppiVar7") (+ "+") (binary_expression "(iVar6 + 1) * 2" (parenthesized_expression "(iVar6 + 1)" (( "(") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "2"))) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int ******)0xffffffff" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;" (assignment_expression "pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100" (subscript_expression "pppppppiVar7[(iVar6 + 1) * 2]" (identifier "pppppppiVar7") ([ "[") (binary_expression "(iVar6 + 1) * 2" (parenthesized_expression "(iVar6 + 1)" (( "(") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "2")) (] "]")) (= "=") (cast_expression "(int ******)pppppppiStack_100" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "pppppppiStack_100"))) (; ";")) (expression_statement "pppppppiVar29 = (int *******)pppppppiVar7[1];" (assignment_expression "pppppppiVar29 = (int *******)pppppppiVar7[1]" (identifier "pppppppiVar29") (= "=") (cast_expression "(int *******)pppppppiVar7[1]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppiVar7[1]" (identifier "pppppppiVar7") ([ "[") (number_literal "1") (] "]")))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }" (else "else") (compound_statement "{\n            pppppppiVar12 = (int *******)&DAT_00000009;\n            if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }\n          }" ({ "{") (expression_statement "pppppppiVar12 = (int *******)&DAT_00000009;" (assignment_expression "pppppppiVar12 = (int *******)&DAT_00000009" (identifier "pppppppiVar12") (= "=") (cast_expression "(int *******)&DAT_00000009" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&DAT_00000009" (& "&") (identifier "DAT_00000009")))) (; ";")) (if_statement "if (pppppppiVar3 == (int *******)&DAT_00000009) {\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }" (if "if") (parenthesized_expression "(pppppppiVar3 == (int *******)&DAT_00000009)" (( "(") (binary_expression "pppppppiVar3 == (int *******)&DAT_00000009" (identifier "pppppppiVar3") (== "==") (cast_expression "(int *******)&DAT_00000009" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&DAT_00000009" (& "&") (identifier "DAT_00000009")))) () ")")) (compound_statement "{\n              iVar6 = *piVar9 + 1;\n              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);\n              pppppppiVar3 = (int *******)(iVar6 * 8);\n              if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }\n            }" ({ "{") (expression_statement "iVar6 = *piVar9 + 1;" (assignment_expression "iVar6 = *piVar9 + 1" (identifier "iVar6") (= "=") (binary_expression "*piVar9 + 1" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);" (assignment_expression "pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23)" (identifier "pppppppiVar12") (= "=") (cast_expression "(int *******)(uint)(iVar6 < (int)pppppppiVar23)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(uint)(iVar6 < (int)pppppppiVar23)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar6 < (int)pppppppiVar23)" (( "(") (binary_expression "iVar6 < (int)pppppppiVar23" (identifier "iVar6") (< "<") (cast_expression "(int)pppppppiVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar23"))) () ")"))))) (; ";")) (expression_statement "pppppppiVar3 = (int *******)(iVar6 * 8);" (assignment_expression "pppppppiVar3 = (int *******)(iVar6 * 8)" (identifier "pppppppiVar3") (= "=") (cast_expression "(int *******)(iVar6 * 8)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(iVar6 * 8)" (( "(") (binary_expression "iVar6 * 8" (identifier "iVar6") (* "*") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (pppppppiVar12 != (int *******)0x0) {\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }" (if "if") (parenthesized_expression "(pppppppiVar12 != (int *******)0x0)" (( "(") (binary_expression "pppppppiVar12 != (int *******)0x0" (identifier "pppppppiVar12") (!= "!=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;\n                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];\n                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }\n                pppppppiVar12 = pppppppiStack_11c;\n                pppppppiStack_10c = pppppppiVar28;\n                pppppppiStack_108 = pppppppiStack_100;\n                (*(code *)ppppiVar19)(pppppppiVar26);\n                pppppppiVar29 = (int *******)pppppppiVar7[1];\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar28 = pppppppiStack_10c;\n                ppppppiVar32 = appppppiStack_138[0];\n              }" ({ "{") (expression_statement "pppppppiVar29 = pppppppiVar7 + iVar6 * 2;" (assignment_expression "pppppppiVar29 = pppppppiVar7 + iVar6 * 2" (identifier "pppppppiVar29") (= "=") (binary_expression "pppppppiVar7 + iVar6 * 2" (identifier "pppppppiVar7") (+ "+") (binary_expression "iVar6 * 2" (identifier "iVar6") (* "*") (number_literal "2")))) (; ";")) (expression_statement "ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];" (assignment_expression "ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e]" (identifier "ppppiVar19") (= "=") (subscript_expression "((int *****)ppppppiVar32)[-0x1f6e]" (parenthesized_expression "((int *****)ppppppiVar32)" (( "(") (cast_expression "(int *****)ppppppiVar32" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppppiVar32")) () ")")) ([ "[") (number_literal "-0x1f6e") (] "]"))) (; ";")) (if_statement "if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }\n                else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }" (if "if") (parenthesized_expression "((int)*pppppppiVar29 < (int)pppppppiStack_100)" (( "(") (binary_expression "(int)*pppppppiVar29 < (int)pppppppiStack_100" (cast_expression "(int)*pppppppiVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pppppppiVar29" (* "*") (identifier "pppppppiVar29"))) (< "<") (cast_expression "(int)pppppppiStack_100" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiStack_100"))) () ")")) (compound_statement "{\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar26 = pppppppiStack_124;\n                  pppppppiVar3 = pppppppiVar7;\n                }" ({ "{") (expression_statement "pppppppiVar29[1] = (int ******)pppppppiStack_100;" (assignment_expression "pppppppiVar29[1] = (int ******)pppppppiStack_100" (subscript_expression "pppppppiVar29[1]" (identifier "pppppppiVar29") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int ******)pppppppiStack_100" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "pppppppiStack_100"))) (; ";")) (expression_statement "pppppppiVar26 = pppppppiStack_124;" (assignment_expression "pppppppiVar26 = pppppppiStack_124" (identifier "pppppppiVar26") (= "=") (identifier "pppppppiStack_124")) (; ";")) (expression_statement "pppppppiVar3 = pppppppiVar7;" (assignment_expression "pppppppiVar3 = pppppppiVar7" (identifier "pppppppiVar3") (= "=") (identifier "pppppppiVar7")) (; ";")) (} "}")) (else_clause "else if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }" (else "else") (if_statement "if (((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }" (if "if") (parenthesized_expression "(((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff))" (( "(") (binary_expression "((piVar9[1] & 0x1000U) == 0) ||\n                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)" (parenthesized_expression "((piVar9[1] & 0x1000U) == 0)" (( "(") (binary_expression "(piVar9[1] & 0x1000U) == 0" (parenthesized_expression "(piVar9[1] & 0x1000U)" (( "(") (binary_expression "piVar9[1] & 0x1000U" (subscript_expression "piVar9[1]" (identifier "piVar9") ([ "[") (number_literal "1") (] "]")) (& "&") (number_literal "0x1000U")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)" (( "(") (comma_expression "pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff" (assignment_expression "pppppppiVar26 = pppppppiVar7" (identifier "pppppppiVar26") (= "=") (identifier "pppppppiVar7")) (, ",") (comma_expression "pppppppiVar3 = pppppppiStack_124,\n                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff" (assignment_expression "pppppppiVar3 = pppppppiStack_124" (identifier "pppppppiVar3") (= "=") (identifier "pppppppiStack_124")) (, ",") (binary_expression "pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff" (subscript_expression "pppppppiStack_124[iVar6 * 2]" (identifier "pppppppiStack_124") ([ "[") (binary_expression "iVar6 * 2" (identifier "iVar6") (* "*") (number_literal "2")) (] "]")) (== "==") (cast_expression "(int ******)0xffffffff" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0xffffffff"))))) () ")"))) () ")")) (compound_statement "{\n                  pppppppiVar29[1] = (int ******)pppppppiStack_100;\n                  pppppppiVar29 = (int *******)pppppppiVar7[1];\n                  goto LAB_00020df8;\n                }" ({ "{") (expression_statement "pppppppiVar29[1] = (int ******)pppppppiStack_100;" (assignment_expression "pppppppiVar29[1] = (int ******)pppppppiStack_100" (subscript_expression "pppppppiVar29[1]" (identifier "pppppppiVar29") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int ******)pppppppiStack_100" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "pppppppiStack_100"))) (; ";")) (expression_statement "pppppppiVar29 = (int *******)pppppppiVar7[1];" (assignment_expression "pppppppiVar29 = (int *******)pppppppiVar7[1]" (identifier "pppppppiVar29") (= "=") (cast_expression "(int *******)pppppppiVar7[1]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppiVar7[1]" (identifier "pppppppiVar7") ([ "[") (number_literal "1") (] "]")))) (; ";")) (goto_statement "goto LAB_00020df8;" (goto "goto") (statement_identifier "LAB_00020df8") (; ";")) (} "}"))))) (expression_statement "pppppppiVar12 = pppppppiStack_11c;" (assignment_expression "pppppppiVar12 = pppppppiStack_11c" (identifier "pppppppiVar12") (= "=") (identifier "pppppppiStack_11c")) (; ";")) (expression_statement "pppppppiStack_10c = pppppppiVar28;" (assignment_expression "pppppppiStack_10c = pppppppiVar28" (identifier "pppppppiStack_10c") (= "=") (identifier "pppppppiVar28")) (; ";")) (expression_statement "pppppppiStack_108 = pppppppiStack_100;" (assignment_expression "pppppppiStack_108 = pppppppiStack_100" (identifier "pppppppiStack_108") (= "=") (identifier "pppppppiStack_100")) (; ";")) (expression_statement "(*(code *)ppppiVar19)(pppppppiVar26);" (call_expression "(*(code *)ppppiVar19)(pppppppiVar26)" (parenthesized_expression "(*(code *)ppppiVar19)" (( "(") (pointer_expression "*(code *)ppppiVar19" (* "*") (cast_expression "(code *)ppppiVar19" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppiVar19"))) () ")")) (argument_list "(pppppppiVar26)" (( "(") (identifier "pppppppiVar26") () ")"))) (; ";")) (expression_statement "pppppppiVar29 = (int *******)pppppppiVar7[1];" (assignment_expression "pppppppiVar29 = (int *******)pppppppiVar7[1]" (identifier "pppppppiVar29") (= "=") (cast_expression "(int *******)pppppppiVar7[1]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppiVar7[1]" (identifier "pppppppiVar7") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "pppppppiVar25 = pppppppiStack_108;" (assignment_expression "pppppppiVar25 = pppppppiStack_108" (identifier "pppppppiVar25") (= "=") (identifier "pppppppiStack_108")) (; ";")) (expression_statement "pppppppiVar28 = pppppppiStack_10c;" (assignment_expression "pppppppiVar28 = pppppppiStack_10c" (identifier "pppppppiVar28") (= "=") (identifier "pppppppiStack_10c")) (; ";")) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" (identifier "ppppppiVar32") (= "=") (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}"))) (} "}"))) (} "}")))) (labeled_statement "LAB_00020df8:\n          ppppiVar19 = ppppiStack_120;" (statement_identifier "LAB_00020df8") (: ":") (expression_statement "ppppiVar19 = ppppiStack_120;" (assignment_expression "ppppiVar19 = ppppiStack_120" (identifier "ppppiVar19") (= "=") (identifier "ppppiStack_120")) (; ";"))) (if_statement "if ((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }" (if "if") (parenthesized_expression "((pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30))" (( "(") (binary_expression "(pppppppiVar25 == pppppppiVar29) &&\n             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)" (parenthesized_expression "(pppppppiVar25 == pppppppiVar29)" (( "(") (binary_expression "pppppppiVar25 == pppppppiVar29" (identifier "pppppppiVar25") (== "==") (identifier "pppppppiVar29")) () ")")) (&& "&&") (parenthesized_expression "((int *******)pppppppiVar22[0x18] == pppppppiVar30)" (( "(") (binary_expression "(int *******)pppppppiVar22[0x18] == pppppppiVar30" (cast_expression "(int *******)pppppppiVar22[0x18]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppiVar22[0x18]" (identifier "pppppppiVar22") ([ "[") (number_literal "0x18") (] "]"))) (== "==") (identifier "pppppppiVar30")) () ")"))) () ")")) (compound_statement "{\n            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n            if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }\n            pppppppiVar28 = (int *******)0x0;\n            if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }\n            pppppppiVar3 = (int *******)0xffffffff;\n            pppppppiVar29 = pppppppiVar7;\n            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }\n            *(int ********)(puVar37 + 0x14) = param_3;\n            *(int ********)(puVar37 + 0x10) = pppppppiVar7;\n            pppppppiVar25 = pppppppiVar23;\n            pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);\n            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);\n            ppppppiVar32 = appppppiStack_138[0];\n          }" ({ "{") (expression_statement "ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];" (assignment_expression "ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c]" (identifier "ppppiVar36") (= "=") (subscript_expression "((int *****)ppppppiVar32)[-0x1f6c]" (parenthesized_expression "((int *****)ppppppiVar32)" (( "(") (cast_expression "(int *****)ppppppiVar32" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppppiVar32")) () ")")) ([ "[") (number_literal "-0x1f6c") (] "]"))) (; ";")) (if_statement "if (ppiVar33 == (int **)0x0) {\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }" (if "if") (parenthesized_expression "(ppiVar33 == (int **)0x0)" (( "(") (binary_expression "ppiVar33 == (int **)0x0" (identifier "ppiVar33") (== "==") (cast_expression "(int **)0x0" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 == 0) goto LAB_00020f14;\n              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              uVar10 = 0;\n              goto LAB_00020f18;\n            }" ({ "{") (expression_statement "(*(code *)ppppiVar36)(ppppppiStack_f4);" (call_expression "(*(code *)ppppiVar36)(ppppppiStack_f4)" (parenthesized_expression "(*(code *)ppppiVar36)" (( "(") (pointer_expression "*(code *)ppppiVar36" (* "*") (cast_expression "(code *)ppppiVar36" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppiVar36"))) () ")")) (argument_list "(ppppppiStack_f4)" (( "(") (identifier "ppppppiStack_f4") () ")"))) (; ";")) (if_statement "if (iStack_128 == 0) goto LAB_00020f14;" (if "if") (parenthesized_expression "(iStack_128 == 0)" (( "(") (binary_expression "iStack_128 == 0" (identifier "iStack_128") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00020f14;" (goto "goto") (statement_identifier "LAB_00020f14") (; ";"))) (expression_statement "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);" (call_expression "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124)" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f6c])" (( "(") (pointer_expression "*(code *)appppppiStack_138[0][-0x1f6c]" (* "*") (cast_expression "(code *)appppppiStack_138[0][-0x1f6c]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "appppppiStack_138[0][-0x1f6c]" (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "-0x1f6c") (] "]")))) () ")")) (argument_list "(pppppppiStack_124)" (( "(") (identifier "pppppppiStack_124") () ")"))) (; ";")) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00020f18;" (goto "goto") (statement_identifier "LAB_00020f18") (; ";")) (} "}"))) (expression_statement "pppppppiVar28 = (int *******)0x0;" (assignment_expression "pppppppiVar28 = (int *******)0x0" (identifier "pppppppiVar28") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (pppppppiVar23 == (int *******)0x0) {\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }" (if "if") (parenthesized_expression "(pppppppiVar23 == (int *******)0x0)" (( "(") (binary_expression "pppppppiVar23 == (int *******)0x0" (identifier "pppppppiVar23") (== "==") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);\n              if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }\n              goto LAB_00020f00;\n            }" ({ "{") (labeled_statement "LAB_000212c0:\n              (*(code *)ppppiVar36)(ppppppiStack_f4);" (statement_identifier "LAB_000212c0") (: ":") (expression_statement "(*(code *)ppppiVar36)(ppppppiStack_f4);" (call_expression "(*(code *)ppppiVar36)(ppppppiStack_f4)" (parenthesized_expression "(*(code *)ppppiVar36)" (( "(") (pointer_expression "*(code *)ppppiVar36" (* "*") (cast_expression "(code *)ppppiVar36" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppiVar36"))) () ")")) (argument_list "(ppppppiStack_f4)" (( "(") (identifier "ppppppiStack_f4") () ")"))) (; ";"))) (if_statement "if (iStack_128 != 0) {\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }" (if "if") (parenthesized_expression "(iStack_128 != 0)" (( "(") (binary_expression "iStack_128 != 0" (identifier "iStack_128") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n              }" ({ "{") (expression_statement "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);" (call_expression "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124)" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f6c])" (( "(") (pointer_expression "*(code *)appppppiStack_138[0][-0x1f6c]" (* "*") (cast_expression "(code *)appppppiStack_138[0][-0x1f6c]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "appppppiStack_138[0][-0x1f6c]" (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "-0x1f6c") (] "]")))) () ")")) (argument_list "(pppppppiStack_124)" (( "(") (identifier "pppppppiStack_124") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_00020f00;" (goto "goto") (statement_identifier "LAB_00020f00") (; ";")) (} "}"))) (expression_statement "pppppppiVar3 = (int *******)0xffffffff;" (assignment_expression "pppppppiVar3 = (int *******)0xffffffff" (identifier "pppppppiVar3") (= "=") (cast_expression "(int *******)0xffffffff" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "pppppppiVar29 = pppppppiVar7;" (assignment_expression "pppppppiVar29 = pppppppiVar7" (identifier "pppppppiVar29") (= "=") (identifier "pppppppiVar7")) (; ";")) (while_statement "while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }" (while "while") (parenthesized_expression "(((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff)))" (( "(") (parenthesized_expression "((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))" (( "(") (binary_expression "(int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff)" (binary_expression "(int)*pppppppiVar29 < 0" (cast_expression "(int)*pppppppiVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pppppppiVar29" (* "*") (identifier "pppppppiVar29"))) (< "<") (number_literal "0")) (|| "||") (parenthesized_expression "(pppppppiVar29[1] != (int ******)0xffffffff)" (( "(") (binary_expression "pppppppiVar29[1] != (int ******)0xffffffff" (subscript_expression "pppppppiVar29[1]" (identifier "pppppppiVar29") ([ "[") (number_literal "1") (] "]")) (!= "!=") (cast_expression "(int ******)0xffffffff" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0xffffffff"))) () ")"))) () ")")) () ")")) (compound_statement "{\n              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);\n              pppppppiVar29 = pppppppiVar29 + 2;\n              if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }\n            }" ({ "{") (expression_statement "pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);" (assignment_expression "pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1)" (identifier "pppppppiVar28") (= "=") (cast_expression "(int *******)((int)pppppppiVar28 + 1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppiVar28 + 1)" (( "(") (binary_expression "(int)pppppppiVar28 + 1" (cast_expression "(int)pppppppiVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar28")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pppppppiVar29 = pppppppiVar29 + 2;" (assignment_expression "pppppppiVar29 = pppppppiVar29 + 2" (identifier "pppppppiVar29") (= "=") (binary_expression "pppppppiVar29 + 2" (identifier "pppppppiVar29") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (pppppppiVar23 == pppppppiVar28) {\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }" (if "if") (parenthesized_expression "(pppppppiVar23 == pppppppiVar28)" (( "(") (binary_expression "pppppppiVar23 == pppppppiVar28" (identifier "pppppppiVar23") (== "==") (identifier "pppppppiVar28")) () ")")) (compound_statement "{\n                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];\n                goto LAB_000212c0;\n              }" ({ "{") (expression_statement "ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];" (assignment_expression "ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c]" (identifier "ppppiVar36") (= "=") (subscript_expression "((int *****)ppppppiVar32)[-0x1f6c]" (parenthesized_expression "((int *****)ppppppiVar32)" (( "(") (cast_expression "(int *****)ppppppiVar32" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppppiVar32")) () ")")) ([ "[") (number_literal "-0x1f6c") (] "]"))) (; ";")) (goto_statement "goto LAB_000212c0;" (goto "goto") (statement_identifier "LAB_000212c0") (; ";")) (} "}"))) (} "}"))) (expression_statement "*(int ********)(puVar37 + 0x14) = param_3;" (assignment_expression "*(int ********)(puVar37 + 0x14) = param_3" (pointer_expression "*(int ********)(puVar37 + 0x14)" (* "*") (cast_expression "(int ********)(puVar37 + 0x14)" (( "(") (type_descriptor "int ********" (primitive_type "int") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (parenthesized_expression "(puVar37 + 0x14)" (( "(") (binary_expression "puVar37 + 0x14" (identifier "puVar37") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(int ********)(puVar37 + 0x10) = pppppppiVar7;" (assignment_expression "*(int ********)(puVar37 + 0x10) = pppppppiVar7" (pointer_expression "*(int ********)(puVar37 + 0x10)" (* "*") (cast_expression "(int ********)(puVar37 + 0x10)" (( "(") (type_descriptor "int ********" (primitive_type "int") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (parenthesized_expression "(puVar37 + 0x10)" (( "(") (binary_expression "puVar37 + 0x10" (identifier "puVar37") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "pppppppiVar7")) (; ";")) (expression_statement "pppppppiVar25 = pppppppiVar23;" (assignment_expression "pppppppiVar25 = pppppppiVar23" (identifier "pppppppiVar25") (= "=") (identifier "pppppppiVar23")) (; ";")) (expression_statement "pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);" (assignment_expression "pppppppiVar30 =\n                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100)" (identifier "pppppppiVar30") (= "=") (cast_expression "(int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100)" (parenthesized_expression "(*(code *)ppppiVar19)" (( "(") (pointer_expression "*(code *)ppppiVar19" (* "*") (cast_expression "(code *)ppppiVar19" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppiVar19"))) () ")")) (argument_list "(ppiVar33,ppiVar33 + 2,&pppppppiStack_100)" (( "(") (identifier "ppiVar33") (, ",") (binary_expression "ppiVar33 + 2" (identifier "ppiVar33") (+ "+") (number_literal "2")) (, ",") (pointer_expression "&pppppppiStack_100" (& "&") (identifier "pppppppiStack_100")) () ")"))))) (; ";")) (expression_statement "pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);" (assignment_expression "pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3)" (identifier "pppppppiVar28") (= "=") (cast_expression "(int *******)((int)pppppppiVar30 << 3)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppiVar30 << 3)" (( "(") (binary_expression "(int)pppppppiVar30 << 3" (cast_expression "(int)pppppppiVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar30")) (<< "<<") (number_literal "3")) () ")")))) (; ";")) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" (identifier "ppppppiVar32") (= "=") (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}"))) (expression_statement "pppppppiVar29 = pppppppiStack_100;" (assignment_expression "pppppppiVar29 = pppppppiStack_100" (identifier "pppppppiVar29") (= "=") (identifier "pppppppiStack_100")) (; ";")) (expression_statement "pppppppiVar26 = (int *******)pppppppiVar22[0x15];" (assignment_expression "pppppppiVar26 = (int *******)pppppppiVar22[0x15]" (identifier "pppppppiVar26") (= "=") (cast_expression "(int *******)pppppppiVar22[0x15]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppiVar22[0x15]" (identifier "pppppppiVar22") ([ "[") (number_literal "0x15") (] "]")))) (; ";")) (expression_statement "pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);" (assignment_expression "pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28)" (identifier "pppppppiVar3") (= "=") (cast_expression "(int *******)((int)*pppppppiVar26 + (int)pppppppiVar28)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)*pppppppiVar26 + (int)pppppppiVar28)" (( "(") (binary_expression "(int)*pppppppiVar26 + (int)pppppppiVar28" (cast_expression "(int)*pppppppiVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pppppppiVar26" (* "*") (identifier "pppppppiVar26"))) (+ "+") (cast_expression "(int)pppppppiVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar28"))) () ")")))) (; ";")) (expression_statement "pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);" (assignment_expression "pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1)" (identifier "pppppppiVar12") (= "=") (binary_expression "(int *******)(uint)*(byte *)(pppppppiVar3 + 1)" (cast_expression "(int *******)(uint)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)(pppppppiVar3 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppiVar3 + 1)" (( "(") (binary_expression "pppppppiVar3 + 1" (identifier "pppppppiVar3") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }\n          else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }" (if "if") (parenthesized_expression "((*(byte *)(pppppppiVar3 + 1) & 8) == 0)" (( "(") (binary_expression "(*(byte *)(pppppppiVar3 + 1) & 8) == 0" (parenthesized_expression "(*(byte *)(pppppppiVar3 + 1) & 8)" (( "(") (binary_expression "*(byte *)(pppppppiVar3 + 1) & 8" (pointer_expression "*(byte *)(pppppppiVar3 + 1)" (* "*") (cast_expression "(byte *)(pppppppiVar3 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppiVar3 + 1)" (( "(") (binary_expression "pppppppiVar3 + 1" (identifier "pppppppiVar3") (+ "+") (number_literal "1")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }\n            if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }\n            uStack_f8 = 0;\n          }" ({ "{") (if_statement "if (((uint)pppppppiVar3[1] & 0x800) == 0) {\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }\n            else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }" (if "if") (parenthesized_expression "(((uint)pppppppiVar3[1] & 0x800) == 0)" (( "(") (binary_expression "((uint)pppppppiVar3[1] & 0x800) == 0" (parenthesized_expression "((uint)pppppppiVar3[1] & 0x800)" (( "(") (binary_expression "(uint)pppppppiVar3[1] & 0x800" (cast_expression "(uint)pppppppiVar3[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppiVar3[1]" (identifier "pppppppiVar3") ([ "[") (number_literal "1") (] "]"))) (& "&") (number_literal "0x800")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              pppppppiVar25 = pppppppiStack_100;\n              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;\n              ppppppiVar13 = *pppppppiVar3;\n              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];\n              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];\n              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);\n              if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }\nLAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);\n              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];\n              pppppppiVar30 = pppppppiVar29;\n            }" ({ "{") (expression_statement "pppppppiVar25 = pppppppiStack_100;" (assignment_expression "pppppppiVar25 = pppppppiStack_100" (identifier "pppppppiVar25") (= "=") (identifier "pppppppiStack_100")) (; ";")) (if_statement "if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;" (if "if") (parenthesized_expression "(pppppppiVar12 != (int *******)0x4)" (( "(") (binary_expression "pppppppiVar12 != (int *******)0x4" (identifier "pppppppiVar12") (!= "!=") (cast_expression "(int *******)0x4" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x4"))) () ")")) (goto_statement "goto LAB_00020e44;" (goto "goto") (statement_identifier "LAB_00020e44") (; ";"))) (expression_statement "ppppppiVar13 = *pppppppiVar3;" (assignment_expression "ppppppiVar13 = *pppppppiVar3" (identifier "ppppppiVar13") (= "=") (pointer_expression "*pppppppiVar3" (* "*") (identifier "pppppppiVar3"))) (; ";")) (expression_statement "pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];" (assignment_expression "pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1]" (identifier "pppppppiVar3") (= "=") (cast_expression "(int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1]" (parenthesized_expression "(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)" (( "(") (binary_expression "pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2" (identifier "pppppppiVar7") (+ "+") (binary_expression "((int)ppppppiVar13 + 1) * 2" (parenthesized_expression "((int)ppppppiVar13 + 1)" (( "(") (binary_expression "(int)ppppppiVar13 + 1" (cast_expression "(int)ppppppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar13")) (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "2"))) () ")")) ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];" (assignment_expression "ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2]" (identifier "ppppppiVar13") (= "=") (subscript_expression "pppppppiVar7[((int)ppppppiVar13 + 1) * 2]" (identifier "pppppppiVar7") ([ "[") (binary_expression "((int)ppppppiVar13 + 1) * 2" (parenthesized_expression "((int)ppppppiVar13 + 1)" (( "(") (binary_expression "(int)ppppppiVar13 + 1" (cast_expression "(int)ppppppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar13")) (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "2")) (] "]"))) (; ";")) (expression_statement "pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);" (assignment_expression "pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13)" (identifier "pppppppiVar25") (= "=") (cast_expression "(int *******)((int)pppppppiVar3 - (int)ppppppiVar13)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppiVar3 - (int)ppppppiVar13)" (( "(") (binary_expression "(int)pppppppiVar3 - (int)ppppppiVar13" (cast_expression "(int)pppppppiVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar3")) (- "-") (cast_expression "(int)ppppppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar13"))) () ")")))) (; ";")) (if_statement "if (ppiVar33 == (int **)0x0) {\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }\n              else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }" (if "if") (parenthesized_expression "(ppiVar33 == (int **)0x0)" (( "(") (binary_expression "ppiVar33 == (int **)0x0" (identifier "ppiVar33") (== "==") (cast_expression "(int **)0x0" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;\n              }" ({ "{") (if_statement "if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;" (if "if") (parenthesized_expression "(pppppppiVar25 == (int *******)0x0)" (( "(") (binary_expression "pppppppiVar25 == (int *******)0x0" (identifier "pppppppiVar25") (== "==") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00021318;" (goto "goto") (statement_identifier "LAB_00021318") (; ";"))) (} "}")) (else_clause "else {\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }" (else "else") (compound_statement "{\n                pppppppiVar27 = pppppppiVar30;\n                if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;\n                if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }\n                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);\n                pppppppiStack_10c = pppppppiVar26;\n                pppppppiStack_108 = pppppppiVar25;\n                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);\n                pppppppiVar12 = pppppppiVar25;\n                pppppppiVar25 = pppppppiStack_108;\n                pppppppiVar26 = pppppppiStack_10c;\n                pppppppiVar27 = pppppppiVar29;\n                ppppppiVar32 = appppppiStack_138[0];\n                if (iVar6 != 0) goto LAB_00020f7c;\n              }" ({ "{") (expression_statement "pppppppiVar27 = pppppppiVar30;" (assignment_expression "pppppppiVar27 = pppppppiVar30" (identifier "pppppppiVar27") (= "=") (identifier "pppppppiVar30")) (; ";")) (if_statement "if ((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;" (if "if") (parenthesized_expression "((ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff))" (( "(") (binary_expression "(ppppppiVar13 == (int ******)0xffffffff) ||\n                   (pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)" (parenthesized_expression "(ppppppiVar13 == (int ******)0xffffffff)" (( "(") (binary_expression "ppppppiVar13 == (int ******)0xffffffff" (identifier "ppppppiVar13") (== "==") (cast_expression "(int ******)0xffffffff" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0xffffffff"))) () ")")) (|| "||") (parenthesized_expression "(pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff)" (( "(") (comma_expression "pppppppiVar12 = (int *******)&pppppppiStack_100,\n                   pppppppiVar3 == (int *******)0xffffffff" (assignment_expression "pppppppiVar12 = (int *******)&pppppppiStack_100" (identifier "pppppppiVar12") (= "=") (cast_expression "(int *******)&pppppppiStack_100" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&pppppppiStack_100" (& "&") (identifier "pppppppiStack_100")))) (, ",") (binary_expression "pppppppiVar3 == (int *******)0xffffffff" (identifier "pppppppiVar3") (== "==") (cast_expression "(int *******)0xffffffff" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xffffffff")))) () ")"))) () ")")) (goto_statement "goto LAB_00020f7c;" (goto "goto") (statement_identifier "LAB_00020f7c") (; ";"))) (if_statement "if (pppppppiVar25 == (int *******)0x0) {\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }" (if "if") (parenthesized_expression "(pppppppiVar25 == (int *******)0x0)" (( "(") (binary_expression "pppppppiVar25 == (int *******)0x0" (identifier "pppppppiVar25") (== "==") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;\n                  pppppppiStack_10c = pppppppiVar28;\n                  pppppppiStack_108 = pppppppiVar26;\n                  iVar6 = (*(code *)ppppiStack_114)(param_3);\n                  pppppppiVar28 = pppppppiVar30;\n                  if (iVar6 == 0) goto LAB_000213ac;\n                  pppppppiVar3 = pppppppiStack_108 + 5;\n                  pppppppiStack_130 = pppppppiStack_108;\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];\n                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);\n                  pppppppiVar12 = pppppppiVar28;\n                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);\n                  ppppppiVar32 = appppppiStack_138[0];\n                  if (iVar6 != 0) goto LAB_00020ecc;\n                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);\n                  pppppppiVar25 = pppppppiStack_108;\n                  pppppppiVar26 = pppppppiStack_130;\n                  goto LAB_00020e44;\n                }" ({ "{") (labeled_statement "LAB_00021318:\n                  pppppppiVar3 = pppppppiVar30;" (statement_identifier "LAB_00021318") (: ":") (expression_statement "pppppppiVar3 = pppppppiVar30;" (assignment_expression "pppppppiVar3 = pppppppiVar30" (identifier "pppppppiVar3") (= "=") (identifier "pppppppiVar30")) (; ";"))) (expression_statement "pppppppiStack_10c = pppppppiVar28;" (assignment_expression "pppppppiStack_10c = pppppppiVar28" (identifier "pppppppiStack_10c") (= "=") (identifier "pppppppiVar28")) (; ";")) (expression_statement "pppppppiStack_108 = pppppppiVar26;" (assignment_expression "pppppppiStack_108 = pppppppiVar26" (identifier "pppppppiStack_108") (= "=") (identifier "pppppppiVar26")) (; ";")) (expression_statement "iVar6 = (*(code *)ppppiStack_114)(param_3);" (assignment_expression "iVar6 = (*(code *)ppppiStack_114)(param_3)" (identifier "iVar6") (= "=") (call_expression "(*(code *)ppppiStack_114)(param_3)" (parenthesized_expression "(*(code *)ppppiStack_114)" (( "(") (pointer_expression "*(code *)ppppiStack_114" (* "*") (cast_expression "(code *)ppppiStack_114" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppiStack_114"))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (expression_statement "pppppppiVar28 = pppppppiVar30;" (assignment_expression "pppppppiVar28 = pppppppiVar30" (identifier "pppppppiVar28") (= "=") (identifier "pppppppiVar30")) (; ";")) (if_statement "if (iVar6 == 0) goto LAB_000213ac;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000213ac;" (goto "goto") (statement_identifier "LAB_000213ac") (; ";"))) (expression_statement "pppppppiVar3 = pppppppiStack_108 + 5;" (assignment_expression "pppppppiVar3 = pppppppiStack_108 + 5" (identifier "pppppppiVar3") (= "=") (binary_expression "pppppppiStack_108 + 5" (identifier "pppppppiStack_108") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "pppppppiStack_130 = pppppppiStack_108;" (assignment_expression "pppppppiStack_130 = pppppppiStack_108" (identifier "pppppppiStack_130") (= "=") (identifier "pppppppiStack_108")) (; ";")) (expression_statement "pppppppiStack_108 = pppppppiStack_100;" (assignment_expression "pppppppiStack_108 = pppppppiStack_100" (identifier "pppppppiStack_108") (= "=") (identifier "pppppppiStack_100")) (; ";")) (expression_statement "pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];" (assignment_expression "pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2]" (identifier "pppppppiVar28") (= "=") (cast_expression "(int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2]" (* "*") (subscript_expression "(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2]" (parenthesized_expression "(*pppppppiVar3)" (( "(") (pointer_expression "*pppppppiVar3" (* "*") (identifier "pppppppiVar3")) () ")")) ([ "[") (binary_expression "(int)pppppppiVar30 * 3 + 2" (binary_expression "(int)pppppppiVar30 * 3" (cast_expression "(int)pppppppiVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar30")) (* "*") (number_literal "3")) (+ "+") (number_literal "2")) (] "]"))))) (; ";")) (expression_statement "pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);" (assignment_expression "pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3)" (identifier "pppppppiVar3") (= "=") (cast_expression "(int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3)" (( "(") (binary_expression "pppppppiVar22[0x19][(int)pppppppiStack_100] + 3" (subscript_expression "pppppppiVar22[0x19][(int)pppppppiStack_100]" (subscript_expression "pppppppiVar22[0x19]" (identifier "pppppppiVar22") ([ "[") (number_literal "0x19") (] "]")) ([ "[") (cast_expression "(int)pppppppiStack_100" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiStack_100")) (] "]")) (+ "+") (number_literal "3")) () ")")))) (; ";")) (expression_statement "pppppppiVar12 = pppppppiVar28;" (assignment_expression "pppppppiVar12 = pppppppiVar28" (identifier "pppppppiVar12") (= "=") (identifier "pppppppiVar28")) (; ";")) (expression_statement "iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);" (assignment_expression "iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2])" (identifier "iVar6") (= "=") (call_expression "(*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2])" (parenthesized_expression "(*(code *)ppppiStack_104)" (( "(") (pointer_expression "*(code *)ppppiStack_104" (* "*") (cast_expression "(code *)ppppiStack_104" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppiStack_104"))) () ")")) (argument_list "(pppppppiVar22[0x19][(int)pppppppiStack_100][2])" (( "(") (subscript_expression "pppppppiVar22[0x19][(int)pppppppiStack_100][2]" (subscript_expression "pppppppiVar22[0x19][(int)pppppppiStack_100]" (subscript_expression "pppppppiVar22[0x19]" (identifier "pppppppiVar22") ([ "[") (number_literal "0x19") (] "]")) ([ "[") (cast_expression "(int)pppppppiStack_100" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiStack_100")) (] "]")) ([ "[") (number_literal "2") (] "]")) () ")")))) (; ";")) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" (identifier "ppppppiVar32") (= "=") (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (iVar6 != 0) goto LAB_00020ecc;" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00020ecc;" (goto "goto") (statement_identifier "LAB_00020ecc") (; ";"))) (expression_statement "pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);" (assignment_expression "pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c)" (identifier "pppppppiVar3") (= "=") (cast_expression "(int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)*pppppppiStack_130 + (int)pppppppiStack_10c)" (( "(") (binary_expression "(int)*pppppppiStack_130 + (int)pppppppiStack_10c" (cast_expression "(int)*pppppppiStack_130" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pppppppiStack_130" (* "*") (identifier "pppppppiStack_130"))) (+ "+") (cast_expression "(int)pppppppiStack_10c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiStack_10c"))) () ")")))) (; ";")) (expression_statement "pppppppiVar25 = pppppppiStack_108;" (assignment_expression "pppppppiVar25 = pppppppiStack_108" (identifier "pppppppiVar25") (= "=") (identifier "pppppppiStack_108")) (; ";")) (expression_statement "pppppppiVar26 = pppppppiStack_130;" (assignment_expression "pppppppiVar26 = pppppppiStack_130" (identifier "pppppppiVar26") (= "=") (identifier "pppppppiStack_130")) (; ";")) (goto_statement "goto LAB_00020e44;" (goto "goto") (statement_identifier "LAB_00020e44") (; ";")) (} "}"))) (expression_statement "pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);" (assignment_expression "pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100)" (identifier "pppppppiVar3") (= "=") (cast_expression "(int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppiVar22[1] + (int)pppppppiStack_100)" (( "(") (binary_expression "(int)pppppppiVar22[1] + (int)pppppppiStack_100" (cast_expression "(int)pppppppiVar22[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppiVar22[1]" (identifier "pppppppiVar22") ([ "[") (number_literal "1") (] "]"))) (+ "+") (cast_expression "(int)pppppppiStack_100" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiStack_100"))) () ")")))) (; ";")) (expression_statement "pppppppiStack_10c = pppppppiVar26;" (assignment_expression "pppppppiStack_10c = pppppppiVar26" (identifier "pppppppiStack_10c") (= "=") (identifier "pppppppiVar26")) (; ";")) (expression_statement "pppppppiStack_108 = pppppppiVar25;" (assignment_expression "pppppppiStack_108 = pppppppiVar25" (identifier "pppppppiStack_108") (= "=") (identifier "pppppppiVar25")) (; ";")) (expression_statement "iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);" (assignment_expression "iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13)" (identifier "iVar6") (= "=") (call_expression "(*(code *)((int *****)ppppppiVar32)[-0x1f74])\n                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13)" (parenthesized_expression "(*(code *)((int *****)ppppppiVar32)[-0x1f74])" (( "(") (pointer_expression "*(code *)((int *****)ppppppiVar32)[-0x1f74]" (* "*") (cast_expression "(code *)((int *****)ppppppiVar32)[-0x1f74]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "((int *****)ppppppiVar32)[-0x1f74]" (parenthesized_expression "((int *****)ppppppiVar32)" (( "(") (cast_expression "(int *****)ppppppiVar32" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppppiVar32")) () ")")) ([ "[") (number_literal "-0x1f74") (] "]")))) () ")")) (argument_list "((int)pppppppiVar22[1] + (int)ppppppiVar13)" (( "(") (binary_expression "(int)pppppppiVar22[1] + (int)ppppppiVar13" (cast_expression "(int)pppppppiVar22[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppiVar22[1]" (identifier "pppppppiVar22") ([ "[") (number_literal "1") (] "]"))) (+ "+") (cast_expression "(int)ppppppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar13"))) () ")")))) (; ";")) (expression_statement "pppppppiVar12 = pppppppiVar25;" (assignment_expression "pppppppiVar12 = pppppppiVar25" (identifier "pppppppiVar12") (= "=") (identifier "pppppppiVar25")) (; ";")) (expression_statement "pppppppiVar25 = pppppppiStack_108;" (assignment_expression "pppppppiVar25 = pppppppiStack_108" (identifier "pppppppiVar25") (= "=") (identifier "pppppppiStack_108")) (; ";")) (expression_statement "pppppppiVar26 = pppppppiStack_10c;" (assignment_expression "pppppppiVar26 = pppppppiStack_10c" (identifier "pppppppiVar26") (= "=") (identifier "pppppppiStack_10c")) (; ";")) (expression_statement "pppppppiVar27 = pppppppiVar29;" (assignment_expression "pppppppiVar27 = pppppppiVar29" (identifier "pppppppiVar27") (= "=") (identifier "pppppppiVar29")) (; ";")) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" (identifier "ppppppiVar32") (= "=") (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (iVar6 != 0) goto LAB_00020f7c;" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00020f7c;" (goto "goto") (statement_identifier "LAB_00020f7c") (; ";"))) (} "}")))) (labeled_statement "LAB_00021258:\n              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);" (statement_identifier "LAB_00021258") (: ":") (expression_statement "pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);" (assignment_expression "pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25)" (identifier "pppppppiStack_100") (= "=") (cast_expression "(int *******)((int)pppppppiVar29 + (int)pppppppiVar25)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppiVar29 + (int)pppppppiVar25)" (( "(") (binary_expression "(int)pppppppiVar29 + (int)pppppppiVar25" (cast_expression "(int)pppppppiVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar29")) (+ "+") (cast_expression "(int)pppppppiVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar25"))) () ")")))) (; ";"))) (expression_statement "pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];" (assignment_expression "pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30]" (identifier "pppppppiVar28") (= "=") (cast_expression "(int *******)pppppppiVar26[3][(int)pppppppiVar30]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppiVar26[3][(int)pppppppiVar30]" (subscript_expression "pppppppiVar26[3]" (identifier "pppppppiVar26") ([ "[") (number_literal "3") (] "]")) ([ "[") (cast_expression "(int)pppppppiVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar30")) (] "]")))) (; ";")) (expression_statement "pppppppiVar30 = pppppppiVar29;" (assignment_expression "pppppppiVar30 = pppppppiVar29" (identifier "pppppppiVar30") (= "=") (identifier "pppppppiVar29")) (; ";")) (} "}")) (else_clause "else {\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }" (else "else") (compound_statement "{\n              pppppppiVar3 = pppppppiVar26 + 0x20;\n              pppppppiStack_10c = pppppppiVar28;\n              pppppppiStack_108 = pppppppiVar26;\n              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar25 = (int *******)FUN_000201f0();\n              pppppppiVar26 = pppppppiStack_108;\n              pppppppiVar29 = pppppppiStack_100;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;\n              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);\n              pppppppiVar25 = pppppppiStack_100;\nLAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;\n              pppppppiStack_10c = pppppppiVar26;\n              pppppppiStack_108 = pppppppiVar12;\n              iVar6 = FUN_0001cc98(pppppppiVar22);\n              pppppppiVar25 = pppppppiStack_108;\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f6c;\n              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);\n              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];\n              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);\n            }" ({ "{") (expression_statement "pppppppiVar3 = pppppppiVar26 + 0x20;" (assignment_expression "pppppppiVar3 = pppppppiVar26 + 0x20" (identifier "pppppppiVar3") (= "=") (binary_expression "pppppppiVar26 + 0x20" (identifier "pppppppiVar26") (+ "+") (number_literal "0x20"))) (; ";")) (expression_statement "pppppppiStack_10c = pppppppiVar28;" (assignment_expression "pppppppiStack_10c = pppppppiVar28" (identifier "pppppppiStack_10c") (= "=") (identifier "pppppppiVar28")) (; ";")) (expression_statement "pppppppiStack_108 = pppppppiVar26;" (assignment_expression "pppppppiStack_108 = pppppppiVar26" (identifier "pppppppiStack_108") (= "=") (identifier "pppppppiVar26")) (; ";")) (expression_statement "*(int ********)(puVar37 + 0x10) = pppppppiStack_100;" (assignment_expression "*(int ********)(puVar37 + 0x10) = pppppppiStack_100" (pointer_expression "*(int ********)(puVar37 + 0x10)" (* "*") (cast_expression "(int ********)(puVar37 + 0x10)" (( "(") (type_descriptor "int ********" (primitive_type "int") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (parenthesized_expression "(puVar37 + 0x10)" (( "(") (binary_expression "puVar37 + 0x10" (identifier "puVar37") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "pppppppiStack_100")) (; ";")) (expression_statement "pppppppiVar12 = pppppppiVar30;" (assignment_expression "pppppppiVar12 = pppppppiVar30" (identifier "pppppppiVar12") (= "=") (identifier "pppppppiVar30")) (; ";")) (expression_statement "pppppppiVar25 = (int *******)FUN_000201f0();" (assignment_expression "pppppppiVar25 = (int *******)FUN_000201f0()" (identifier "pppppppiVar25") (= "=") (cast_expression "(int *******)FUN_000201f0()" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_000201f0()" (identifier "FUN_000201f0") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pppppppiVar26 = pppppppiStack_108;" (assignment_expression "pppppppiVar26 = pppppppiStack_108" (identifier "pppppppiVar26") (= "=") (identifier "pppppppiStack_108")) (; ";")) (expression_statement "pppppppiVar29 = pppppppiStack_100;" (assignment_expression "pppppppiVar29 = pppppppiStack_100" (identifier "pppppppiVar29") (= "=") (identifier "pppppppiStack_100")) (; ";")) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" (identifier "ppppppiVar32") (= "=") (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;" (if "if") (parenthesized_expression "(pppppppiVar25 != (int *******)0x0)" (( "(") (binary_expression "pppppppiVar25 != (int *******)0x0" (identifier "pppppppiVar25") (!= "!=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00021258;" (goto "goto") (statement_identifier "LAB_00021258") (; ";"))) (expression_statement "pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);" (assignment_expression "pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c)" (identifier "pppppppiVar3") (= "=") (cast_expression "(int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)*pppppppiStack_108 + (int)pppppppiStack_10c)" (( "(") (binary_expression "(int)*pppppppiStack_108 + (int)pppppppiStack_10c" (cast_expression "(int)*pppppppiStack_108" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pppppppiStack_108" (* "*") (identifier "pppppppiStack_108"))) (+ "+") (cast_expression "(int)pppppppiStack_10c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiStack_10c"))) () ")")))) (; ";")) (expression_statement "pppppppiVar25 = pppppppiStack_100;" (assignment_expression "pppppppiVar25 = pppppppiStack_100" (identifier "pppppppiVar25") (= "=") (identifier "pppppppiStack_100")) (; ";")) (labeled_statement "LAB_00020e44:\n              pppppppiVar12 = pppppppiVar25;" (statement_identifier "LAB_00020e44") (: ":") (expression_statement "pppppppiVar12 = pppppppiVar25;" (assignment_expression "pppppppiVar12 = pppppppiVar25" (identifier "pppppppiVar12") (= "=") (identifier "pppppppiVar25")) (; ";"))) (expression_statement "pppppppiStack_10c = pppppppiVar26;" (assignment_expression "pppppppiStack_10c = pppppppiVar26" (identifier "pppppppiStack_10c") (= "=") (identifier "pppppppiVar26")) (; ";")) (expression_statement "pppppppiStack_108 = pppppppiVar12;" (assignment_expression "pppppppiStack_108 = pppppppiVar12" (identifier "pppppppiStack_108") (= "=") (identifier "pppppppiVar12")) (; ";")) (expression_statement "iVar6 = FUN_0001cc98(pppppppiVar22);" (assignment_expression "iVar6 = FUN_0001cc98(pppppppiVar22)" (identifier "iVar6") (= "=") (call_expression "FUN_0001cc98(pppppppiVar22)" (identifier "FUN_0001cc98") (argument_list "(pppppppiVar22)" (( "(") (identifier "pppppppiVar22") () ")")))) (; ";")) (expression_statement "pppppppiVar25 = pppppppiStack_108;" (assignment_expression "pppppppiVar25 = pppppppiStack_108" (identifier "pppppppiVar25") (= "=") (identifier "pppppppiStack_108")) (; ";")) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" (identifier "ppppppiVar32") (= "=") (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (iVar6 == 0) goto LAB_00020f6c;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00020f6c;" (goto "goto") (statement_identifier "LAB_00020f6c") (; ";"))) (expression_statement "pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);" (assignment_expression "pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1)" (identifier "pppppppiStack_100") (= "=") (cast_expression "(int *******)((int)pppppppiStack_108 + 1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppiStack_108 + 1)" (( "(") (binary_expression "(int)pppppppiStack_108 + 1" (cast_expression "(int)pppppppiStack_108" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiStack_108")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];" (assignment_expression "pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30]" (identifier "pppppppiVar28") (= "=") (cast_expression "(int *******)pppppppiStack_10c[3][(int)pppppppiVar30]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppiStack_10c[3][(int)pppppppiVar30]" (subscript_expression "pppppppiStack_10c[3]" (identifier "pppppppiStack_10c") ([ "[") (number_literal "3") (] "]")) ([ "[") (cast_expression "(int)pppppppiVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar30")) (] "]")))) (; ";")) (expression_statement "pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);" (assignment_expression "pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30)" (identifier "pppppppiVar30") (= "=") (cast_expression "(int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(pppppppiStack_10c[3] + (int)pppppppiVar30)" (( "(") (binary_expression "pppppppiStack_10c[3] + (int)pppppppiVar30" (subscript_expression "pppppppiStack_10c[3]" (identifier "pppppppiStack_10c") ([ "[") (number_literal "3") (] "]")) (+ "+") (cast_expression "(int)pppppppiVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar30"))) () ")")))) (; ";")) (} "}")))) (if_statement "if (ppiVar33 != (int **)0x0) {\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }" (if "if") (parenthesized_expression "(ppiVar33 != (int **)0x0)" (( "(") (binary_expression "ppiVar33 != (int **)0x0" (identifier "ppiVar33") (!= "!=") (cast_expression "(int **)0x0" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              pppppppiVar27 = pppppppiVar30;\n              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;\n              pppppppiVar3 = (int *******)(pppppiVar8 + 3);\n              pppppppiVar12 = pppppppiVar28;\n              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);\n              ppppppiVar32 = appppppiStack_138[0];\n              if (iVar6 == 0) goto LAB_00020f7c;\n            }" ({ "{") (expression_statement "pppppppiVar27 = pppppppiVar30;" (assignment_expression "pppppppiVar27 = pppppppiVar30" (identifier "pppppppiVar27") (= "=") (identifier "pppppppiVar30")) (; ";")) (if_statement "if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;" (if "if") (parenthesized_expression "(((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0))" (( "(") (binary_expression "((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||\n                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)" (parenthesized_expression "((int)pppppppiVar22[0x17] < (int)pppppppiStack_100)" (( "(") (binary_expression "(int)pppppppiVar22[0x17] < (int)pppppppiStack_100" (cast_expression "(int)pppppppiVar22[0x17]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppiVar22[0x17]" (identifier "pppppppiVar22") ([ "[") (number_literal "0x17") (] "]"))) (< "<") (cast_expression "(int)pppppppiStack_100" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiStack_100"))) () ")")) (|| "||") (parenthesized_expression "(pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0)" (( "(") (comma_expression "pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],\n                 pppppiVar8 == (int *****)0x0" (assignment_expression "pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100]" (identifier "pppppiVar8") (= "=") (subscript_expression "pppppppiVar22[0x19][(int)pppppppiStack_100]" (subscript_expression "pppppppiVar22[0x19]" (identifier "pppppppiVar22") ([ "[") (number_literal "0x19") (] "]")) ([ "[") (cast_expression "(int)pppppppiStack_100" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiStack_100")) (] "]"))) (, ",") (binary_expression "pppppiVar8 == (int *****)0x0" (identifier "pppppiVar8") (== "==") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (goto_statement "goto LAB_00020f7c;" (goto "goto") (statement_identifier "LAB_00020f7c") (; ";"))) (expression_statement "pppppppiVar3 = (int *******)(pppppiVar8 + 3);" (assignment_expression "pppppppiVar3 = (int *******)(pppppiVar8 + 3)" (identifier "pppppppiVar3") (= "=") (cast_expression "(int *******)(pppppiVar8 + 3)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(pppppiVar8 + 3)" (( "(") (binary_expression "pppppiVar8 + 3" (identifier "pppppiVar8") (+ "+") (number_literal "3")) () ")")))) (; ";")) (expression_statement "pppppppiVar12 = pppppppiVar28;" (assignment_expression "pppppppiVar12 = pppppppiVar28" (identifier "pppppppiVar12") (= "=") (identifier "pppppppiVar28")) (; ";")) (expression_statement "iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);" (assignment_expression "iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2])" (identifier "iVar6") (= "=") (call_expression "(*(code *)ppppiStack_104)(pppppiVar8[2])" (parenthesized_expression "(*(code *)ppppiStack_104)" (( "(") (pointer_expression "*(code *)ppppiStack_104" (* "*") (cast_expression "(code *)ppppiStack_104" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppiStack_104"))) () ")")) (argument_list "(pppppiVar8[2])" (( "(") (subscript_expression "pppppiVar8[2]" (identifier "pppppiVar8") ([ "[") (number_literal "2") (] "]")) () ")")))) (; ";")) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" (identifier "ppppppiVar32") (= "=") (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (iVar6 == 0) goto LAB_00020f7c;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00020f7c;" (goto "goto") (statement_identifier "LAB_00020f7c") (; ";"))) (} "}"))) (expression_statement "uStack_f8 = 0;" (assignment_expression "uStack_f8 = 0" (identifier "uStack_f8") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }" (else "else") (compound_statement "{\n            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);\n            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];\n            iVar6 = (*(code *)ppppiStack_114)(param_3);\n            pppppppiVar3 = pppppppiVar30;\n            if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }\n            ppppppiVar13 = pppppppiVar28[1];\n            pppppppiVar30 = pppppppiVar28;\n            ppppppiVar32 = appppppiStack_138[0];\n            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;\n            ppppiVar19 = pppppiVar8[2];\n            ppppppiVar4 = pppppppiVar28[2];\n            ppppppiVar14 = (int ******)0x0;\n            pppppppiVar27 = (int *******)0xffffffff;\n            pppppppiVar29 = (int *******)(pppppiVar8 + 3);\n            pppppppiVar26 = (int *******)0xffffffff;\n            do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);\n          }" ({ "{") (expression_statement "pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);" (assignment_expression "pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3)" (identifier "pppppppiVar28") (= "=") (cast_expression "(int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(pppppppiVar26[5] + (int)pppppppiVar30 * 3)" (( "(") (binary_expression "pppppppiVar26[5] + (int)pppppppiVar30 * 3" (subscript_expression "pppppppiVar26[5]" (identifier "pppppppiVar26") ([ "[") (number_literal "5") (] "]")) (+ "+") (binary_expression "(int)pppppppiVar30 * 3" (cast_expression "(int)pppppppiVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar30")) (* "*") (number_literal "3"))) () ")")))) (; ";")) (expression_statement "pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];" (assignment_expression "pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100]" (identifier "pppppiVar8") (= "=") (subscript_expression "pppppppiVar22[0x19][(int)pppppppiStack_100]" (subscript_expression "pppppppiVar22[0x19]" (identifier "pppppppiVar22") ([ "[") (number_literal "0x19") (] "]")) ([ "[") (cast_expression "(int)pppppppiStack_100" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiStack_100")) (] "]"))) (; ";")) (expression_statement "iVar6 = (*(code *)ppppiStack_114)(param_3);" (assignment_expression "iVar6 = (*(code *)ppppiStack_114)(param_3)" (identifier "iVar6") (= "=") (call_expression "(*(code *)ppppiStack_114)(param_3)" (parenthesized_expression "(*(code *)ppppiStack_114)" (( "(") (pointer_expression "*(code *)ppppiStack_114" (* "*") (cast_expression "(code *)ppppiStack_114" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppiStack_114"))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (expression_statement "pppppppiVar3 = pppppppiVar30;" (assignment_expression "pppppppiVar3 = pppppppiVar30" (identifier "pppppppiVar3") (= "=") (identifier "pppppppiVar30")) (; ";")) (if_statement "if (iVar6 == 0) {\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;\n              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];\n              goto LAB_000213b0;\n            }" ({ "{") (labeled_statement "LAB_000213ac:\n              pppppppiVar30 = pppppppiVar28;" (statement_identifier "LAB_000213ac") (: ":") (expression_statement "pppppppiVar30 = pppppppiVar28;" (assignment_expression "pppppppiVar30 = pppppppiVar28" (identifier "pppppppiVar30") (= "=") (identifier "pppppppiVar28")) (; ";"))) (expression_statement "ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];" (assignment_expression "ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c]" (identifier "ppppiVar19") (= "=") (cast_expression "(int ****)appppppiStack_138[0][-0x1f6c]" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (subscript_expression "appppppiStack_138[0][-0x1f6c]" (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "-0x1f6c") (] "]")))) (; ";")) (goto_statement "goto LAB_000213b0;" (goto "goto") (statement_identifier "LAB_000213b0") (; ";")) (} "}"))) (expression_statement "ppppppiVar13 = pppppppiVar28[1];" (assignment_expression "ppppppiVar13 = pppppppiVar28[1]" (identifier "ppppppiVar13") (= "=") (subscript_expression "pppppppiVar28[1]" (identifier "pppppppiVar28") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pppppppiVar30 = pppppppiVar28;" (assignment_expression "pppppppiVar30 = pppppppiVar28" (identifier "pppppppiVar30") (= "=") (identifier "pppppppiVar28")) (; ";")) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" (identifier "ppppppiVar32") (= "=") (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;" (if "if") (parenthesized_expression "((int)ppppppiVar13 < 1)" (( "(") (binary_expression "(int)ppppppiVar13 < 1" (cast_expression "(int)ppppppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar13")) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_00020f6c;" (goto "goto") (statement_identifier "LAB_00020f6c") (; ";"))) (expression_statement "ppppiVar19 = pppppiVar8[2];" (assignment_expression "ppppiVar19 = pppppiVar8[2]" (identifier "ppppiVar19") (= "=") (subscript_expression "pppppiVar8[2]" (identifier "pppppiVar8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "ppppppiVar4 = pppppppiVar28[2];" (assignment_expression "ppppppiVar4 = pppppppiVar28[2]" (identifier "ppppppiVar4") (= "=") (subscript_expression "pppppppiVar28[2]" (identifier "pppppppiVar28") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "ppppppiVar14 = (int ******)0x0;" (assignment_expression "ppppppiVar14 = (int ******)0x0" (identifier "ppppppiVar14") (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppiVar27 = (int *******)0xffffffff;" (assignment_expression "pppppppiVar27 = (int *******)0xffffffff" (identifier "pppppppiVar27") (= "=") (cast_expression "(int *******)0xffffffff" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "pppppppiVar29 = (int *******)(pppppiVar8 + 3);" (assignment_expression "pppppppiVar29 = (int *******)(pppppiVar8 + 3)" (identifier "pppppppiVar29") (= "=") (cast_expression "(int *******)(pppppiVar8 + 3)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(pppppiVar8 + 3)" (( "(") (binary_expression "pppppiVar8 + 3" (identifier "pppppiVar8") (+ "+") (number_literal "3")) () ")")))) (; ";")) (expression_statement "pppppppiVar26 = (int *******)0xffffffff;" (assignment_expression "pppppppiVar26 = (int *******)0xffffffff" (identifier "pppppppiVar26") (= "=") (cast_expression "(int *******)0xffffffff" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xffffffff"))) (; ";")) (do_statement "do {\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            } while (ppppppiVar13 != ppppppiVar14);" (do "do") (compound_statement "{\n              pppppppiVar3 = pppppppiVar29;\n              pppppppiVar30 = (int *******)*ppppppiVar4;\n              pppppppiVar12 = pppppppiVar30;\n              pppppppiVar29 = pppppppiVar3;\n              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);\n              pppppppiVar28 = pppppppiVar26;\n              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }\n              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);\n              ppppppiVar4 = ppppppiVar4 + 1;\n              pppppppiVar26 = pppppppiVar28;\n              ppppppiVar32 = appppppiStack_138[0];\n            }" ({ "{") (expression_statement "pppppppiVar3 = pppppppiVar29;" (assignment_expression "pppppppiVar3 = pppppppiVar29" (identifier "pppppppiVar3") (= "=") (identifier "pppppppiVar29")) (; ";")) (expression_statement "pppppppiVar30 = (int *******)*ppppppiVar4;" (assignment_expression "pppppppiVar30 = (int *******)*ppppppiVar4" (identifier "pppppppiVar30") (= "=") (cast_expression "(int *******)*ppppppiVar4" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*ppppppiVar4" (* "*") (identifier "ppppppiVar4")))) (; ";")) (expression_statement "pppppppiVar12 = pppppppiVar30;" (assignment_expression "pppppppiVar12 = pppppppiVar30" (identifier "pppppppiVar12") (= "=") (identifier "pppppppiVar30")) (; ";")) (expression_statement "pppppppiVar29 = pppppppiVar3;" (assignment_expression "pppppppiVar29 = pppppppiVar3" (identifier "pppppppiVar29") (= "=") (identifier "pppppppiVar3")) (; ";")) (expression_statement "iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);" (assignment_expression "iVar6 = (*(code *)ppppiStack_104)(ppppiVar19)" (identifier "iVar6") (= "=") (call_expression "(*(code *)ppppiStack_104)(ppppiVar19)" (parenthesized_expression "(*(code *)ppppiStack_104)" (( "(") (pointer_expression "*(code *)ppppiStack_104" (* "*") (cast_expression "(code *)ppppiStack_104" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppiStack_104"))) () ")")) (argument_list "(ppppiVar19)" (( "(") (identifier "ppppiVar19") () ")")))) (; ";")) (expression_statement "pppppppiVar28 = pppppppiVar26;" (assignment_expression "pppppppiVar28 = pppppppiVar26" (identifier "pppppppiVar28") (= "=") (identifier "pppppppiVar26")) (; ";")) (if_statement "if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }" (if "if") (parenthesized_expression "((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27))" (( "(") (binary_expression "(iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)" (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)" (( "(") (comma_expression "pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27" (assignment_expression "pppppppiVar28 = pppppppiVar30" (identifier "pppppppiVar28") (= "=") (identifier "pppppppiVar30")) (, ",") (binary_expression "pppppppiVar26 != pppppppiVar27" (identifier "pppppppiVar26") (!= "!=") (identifier "pppppppiVar27"))) () ")"))) () ")")) (compound_statement "{\n                pppppppiVar3 = &ppppppiStack_f4;\n                pppppppiVar12 = pppppppiVar26;\n                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);\n                ppppppiVar32 = appppppiStack_138[0];\n                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;\n                pppppppiVar12 = (int *******)*ppiVar33;\n                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);\n                *ppiVar33 = (int *)pppppppiVar3;\n                if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }\n                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);\n                if (iStack_128 != 0) goto LAB_000214d4;\n                goto LAB_0002112c;\n              }" ({ "{") (expression_statement "pppppppiVar3 = &ppppppiStack_f4;" (assignment_expression "pppppppiVar3 = &ppppppiStack_f4" (identifier "pppppppiVar3") (= "=") (pointer_expression "&ppppppiStack_f4" (& "&") (identifier "ppppppiStack_f4"))) (; ";")) (expression_statement "pppppppiVar12 = pppppppiVar26;" (assignment_expression "pppppppiVar12 = pppppppiVar26" (identifier "pppppppiVar12") (= "=") (identifier "pppppppiVar26")) (; ";")) (expression_statement "iVar6 = (*(code *)ppppiStack_104)(uStack_f8);" (assignment_expression "iVar6 = (*(code *)ppppiStack_104)(uStack_f8)" (identifier "iVar6") (= "=") (call_expression "(*(code *)ppppiStack_104)(uStack_f8)" (parenthesized_expression "(*(code *)ppppiStack_104)" (( "(") (pointer_expression "*(code *)ppppiStack_104" (* "*") (cast_expression "(code *)ppppiStack_104" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppiStack_104"))) () ")")) (argument_list "(uStack_f8)" (( "(") (identifier "uStack_f8") () ")")))) (; ";")) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" (identifier "ppppppiVar32") (= "=") (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;" (if "if") (parenthesized_expression "((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0))" (( "(") (binary_expression "(iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)" (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)" (( "(") (comma_expression "pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0" (assignment_expression "pppppppiVar28 = pppppppiVar26" (identifier "pppppppiVar28") (= "=") (identifier "pppppppiVar26")) (, ",") (binary_expression "ppiVar33 == (int **)0x0" (identifier "ppiVar33") (== "==") (cast_expression "(int **)0x0" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pppppppiVar12 = (int *******)*ppiVar33;" (assignment_expression "pppppppiVar12 = (int *******)*ppiVar33" (identifier "pppppppiVar12") (= "=") (cast_expression "(int *******)*ppiVar33" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*ppiVar33" (* "*") (identifier "ppiVar33")))) (; ";")) (expression_statement "pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);" (assignment_expression "pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1)" (identifier "pppppppiVar3") (= "=") (cast_expression "(int *******)((int)pppppppiVar12 + 1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppiVar12 + 1)" (( "(") (binary_expression "(int)pppppppiVar12 + 1" (cast_expression "(int)pppppppiVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar12")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*ppiVar33 = (int *)pppppppiVar3;" (assignment_expression "*ppiVar33 = (int *)pppppppiVar3" (pointer_expression "*ppiVar33" (* "*") (identifier "ppiVar33")) (= "=") (cast_expression "(int *)pppppppiVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppppppiVar3"))) (; ";")) (if_statement "if (pppppppiVar3 == (int *******)ppiVar33[1]) {\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }\n                else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }" (if "if") (parenthesized_expression "(pppppppiVar3 == (int *******)ppiVar33[1])" (( "(") (binary_expression "pppppppiVar3 == (int *******)ppiVar33[1]" (identifier "pppppppiVar3") (== "==") (cast_expression "(int *******)ppiVar33[1]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "ppiVar33[1]" (identifier "ppiVar33") ([ "[") (number_literal "1") (] "]")))) () ")")) (compound_statement "{\n                  pppppppiStack_108 = pppppppiStack_100;\n                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);\n                  pppppppiStack_10c = pppppppiVar12;\n                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);\n                  if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }\n                }" ({ "{") (expression_statement "pppppppiStack_108 = pppppppiStack_100;" (assignment_expression "pppppppiStack_108 = pppppppiStack_100" (identifier "pppppppiStack_108") (= "=") (identifier "pppppppiStack_100")) (; ";")) (expression_statement "pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);" (assignment_expression "pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30)" (identifier "pppppppiVar3") (= "=") (cast_expression "(int *******)((int)pppppppiVar3 * 0x30)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppiVar3 * 0x30)" (( "(") (binary_expression "(int)pppppppiVar3 * 0x30" (cast_expression "(int)pppppppiVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar3")) (* "*") (number_literal "0x30")) () ")")))) (; ";")) (expression_statement "pppppppiStack_10c = pppppppiVar12;" (assignment_expression "pppppppiStack_10c = pppppppiVar12" (identifier "pppppppiStack_10c") (= "=") (identifier "pppppppiVar12")) (; ";")) (expression_statement "piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);" (assignment_expression "piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2])" (identifier "piVar9") (= "=") (cast_expression "(int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2])" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2])" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f86])" (( "(") (pointer_expression "*(code *)appppppiStack_138[0][-0x1f86]" (* "*") (cast_expression "(code *)appppppiStack_138[0][-0x1f86]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "appppppiStack_138[0][-0x1f86]" (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "-0x1f86") (] "]")))) () ")")) (argument_list "(ppiVar33[2])" (( "(") (subscript_expression "ppiVar33[2]" (identifier "ppiVar33") ([ "[") (number_literal "2") (] "]")) () ")"))))) (; ";")) (if_statement "if (piVar9 != (int *)0x0) {\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }" (if "if") (parenthesized_expression "(piVar9 != (int *)0x0)" (( "(") (binary_expression "piVar9 != (int *)0x0" (identifier "piVar9") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    ppiVar33[2] = piVar9;\n                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);\n                    pppppppiVar12 = pppppppiStack_10c;\n                    pppppppiVar28 = pppppppiStack_108;\n                    goto LAB_000210a0;\n                  }" ({ "{") (expression_statement "ppiVar33[2] = piVar9;" (assignment_expression "ppiVar33[2] = piVar9" (subscript_expression "ppiVar33[2]" (identifier "ppiVar33") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "piVar9")) (; ";")) (expression_statement "ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);" (assignment_expression "ppiVar33[1] = (int *)((int)ppiVar33[1] << 1)" (subscript_expression "ppiVar33[1]" (identifier "ppiVar33") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int *)((int)ppiVar33[1] << 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar33[1] << 1)" (( "(") (binary_expression "(int)ppiVar33[1] << 1" (cast_expression "(int)ppiVar33[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppiVar33[1]" (identifier "ppiVar33") ([ "[") (number_literal "1") (] "]"))) (<< "<<") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pppppppiVar12 = pppppppiStack_10c;" (assignment_expression "pppppppiVar12 = pppppppiStack_10c" (identifier "pppppppiVar12") (= "=") (identifier "pppppppiStack_10c")) (; ";")) (expression_statement "pppppppiVar28 = pppppppiStack_108;" (assignment_expression "pppppppiVar28 = pppppppiStack_108" (identifier "pppppppiVar28") (= "=") (identifier "pppppppiStack_108")) (; ";")) (goto_statement "goto LAB_000210a0;" (goto "goto") (statement_identifier "LAB_000210a0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }" (else "else") (compound_statement "{\n                  piVar9 = ppiVar33[2];\n                  pppppppiVar28 = pppppppiStack_100;\nLAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];\n                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);\n                  *pppppppiStack_108 = (int ******)pppppppiVar28;\n                  pppppppiStack_108[1] = (int ******)pppppppiVar30;\n                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);\n                  pppppppiStack_108[2] = ppppppiVar32;\n                  pppppppiVar25 = pppppppiStack_108;\n                  if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }\n                }" ({ "{") (expression_statement "piVar9 = ppiVar33[2];" (assignment_expression "piVar9 = ppiVar33[2]" (identifier "piVar9") (= "=") (subscript_expression "ppiVar33[2]" (identifier "ppiVar33") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pppppppiVar28 = pppppppiStack_100;" (assignment_expression "pppppppiVar28 = pppppppiStack_100" (identifier "pppppppiVar28") (= "=") (identifier "pppppppiStack_100")) (; ";")) (labeled_statement "LAB_000210a0:\n                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];" (statement_identifier "LAB_000210a0") (: ":") (expression_statement "ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];" (assignment_expression "ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87]" (identifier "ppppiVar19") (= "=") (cast_expression "(int ****)appppppiStack_138[0][-0x1f87]" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (subscript_expression "appppppiStack_138[0][-0x1f87]" (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "-0x1f87") (] "]")))) (; ";"))) (expression_statement "pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);" (assignment_expression "pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6)" (identifier "pppppppiStack_108") (= "=") (cast_expression "(int *******)(piVar9 + (int)pppppppiVar12 * 6)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(piVar9 + (int)pppppppiVar12 * 6)" (( "(") (binary_expression "piVar9 + (int)pppppppiVar12 * 6" (identifier "piVar9") (+ "+") (binary_expression "(int)pppppppiVar12 * 6" (cast_expression "(int)pppppppiVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar12")) (* "*") (number_literal "6"))) () ")")))) (; ";")) (expression_statement "*pppppppiStack_108 = (int ******)pppppppiVar28;" (assignment_expression "*pppppppiStack_108 = (int ******)pppppppiVar28" (pointer_expression "*pppppppiStack_108" (* "*") (identifier "pppppppiStack_108")) (= "=") (cast_expression "(int ******)pppppppiVar28" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "pppppppiVar28"))) (; ";")) (expression_statement "pppppppiStack_108[1] = (int ******)pppppppiVar30;" (assignment_expression "pppppppiStack_108[1] = (int ******)pppppppiVar30" (subscript_expression "pppppppiStack_108[1]" (identifier "pppppppiStack_108") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int ******)pppppppiVar30" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "pppppppiVar30"))) (; ";")) (expression_statement "ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);" (assignment_expression "ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c)" (identifier "ppppppiVar32") (= "=") (cast_expression "(int ******)(*(code *)ppppiVar19)(pppppppiStack_11c)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(*(code *)ppppiVar19)(pppppppiStack_11c)" (parenthesized_expression "(*(code *)ppppiVar19)" (( "(") (pointer_expression "*(code *)ppppiVar19" (* "*") (cast_expression "(code *)ppppiVar19" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppiVar19"))) () ")")) (argument_list "(pppppppiStack_11c)" (( "(") (identifier "pppppppiStack_11c") () ")"))))) (; ";")) (expression_statement "pppppppiStack_108[2] = ppppppiVar32;" (assignment_expression "pppppppiStack_108[2] = ppppppiVar32" (subscript_expression "pppppppiStack_108[2]" (identifier "pppppppiStack_108") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "ppppppiVar32")) (; ";")) (expression_statement "pppppppiVar25 = pppppppiStack_108;" (assignment_expression "pppppppiVar25 = pppppppiStack_108" (identifier "pppppppiVar25") (= "=") (identifier "pppppppiStack_108")) (; ";")) (if_statement "if (ppppppiVar32 != (int ******)0x0) {\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }" (if "if") (parenthesized_expression "(ppppppiVar32 != (int ******)0x0)" (( "(") (binary_expression "ppppppiVar32 != (int ******)0x0" (identifier "ppppppiVar32") (!= "!=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    pppppppiVar12 = pppppppiStack_11c;\n                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);\n                    pppppppiVar3 = param_3;\n                    pppppppiVar25 = pppppppiStack_108;\n                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);\n                    pppppppiVar28 = pppppppiVar26;\n                    ppppppiVar32 = appppppiStack_138[0];\n                    if (iVar6 == 0) break;\n                  }" ({ "{") (expression_statement "pppppppiVar12 = pppppppiStack_11c;" (assignment_expression "pppppppiVar12 = pppppppiStack_11c" (identifier "pppppppiVar12") (= "=") (identifier "pppppppiStack_11c")) (; ";")) (expression_statement "(*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);" (call_expression "(*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7)" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f6e])" (( "(") (pointer_expression "*(code *)appppppiStack_138[0][-0x1f6e]" (* "*") (cast_expression "(code *)appppppiStack_138[0][-0x1f6e]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "appppppiStack_138[0][-0x1f6e]" (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "-0x1f6e") (] "]")))) () ")")) (argument_list "(ppppppiVar32,pppppppiVar7)" (( "(") (identifier "ppppppiVar32") (, ",") (identifier "pppppppiVar7") () ")"))) (; ";")) (expression_statement "pppppppiVar3 = param_3;" (assignment_expression "pppppppiVar3 = param_3" (identifier "pppppppiVar3") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pppppppiVar25 = pppppppiStack_108;" (assignment_expression "pppppppiVar25 = pppppppiStack_108" (identifier "pppppppiVar25") (= "=") (identifier "pppppppiStack_108")) (; ";")) (expression_statement "iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);" (assignment_expression "iVar6 = FUN_0001ba80(pppppppiStack_108 + 3)" (identifier "iVar6") (= "=") (call_expression "FUN_0001ba80(pppppppiStack_108 + 3)" (identifier "FUN_0001ba80") (argument_list "(pppppppiStack_108 + 3)" (( "(") (binary_expression "pppppppiStack_108 + 3" (identifier "pppppppiStack_108") (+ "+") (number_literal "3")) () ")")))) (; ";")) (expression_statement "pppppppiVar28 = pppppppiVar26;" (assignment_expression "pppppppiVar28 = pppppppiVar26" (identifier "pppppppiVar28") (= "=") (identifier "pppppppiVar26")) (; ";")) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" (identifier "ppppppiVar32") (= "=") (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (iVar6 == 0) break;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}"))) (} "}")))) (expression_statement "(*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);" (call_expression "(*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4)" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f6c])" (( "(") (pointer_expression "*(code *)appppppiStack_138[0][-0x1f6c]" (* "*") (cast_expression "(code *)appppppiStack_138[0][-0x1f6c]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "appppppiStack_138[0][-0x1f6c]" (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "-0x1f6c") (] "]")))) () ")")) (argument_list "(ppppppiStack_f4)" (( "(") (identifier "ppppppiStack_f4") () ")"))) (; ";")) (if_statement "if (iStack_128 != 0) goto LAB_000214d4;" (if "if") (parenthesized_expression "(iStack_128 != 0)" (( "(") (binary_expression "iStack_128 != 0" (identifier "iStack_128") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000214d4;" (goto "goto") (statement_identifier "LAB_000214d4") (; ";"))) (goto_statement "goto LAB_0002112c;" (goto "goto") (statement_identifier "LAB_0002112c") (; ";")) (} "}"))) (expression_statement "ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);" (assignment_expression "ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1)" (identifier "ppppppiVar14") (= "=") (cast_expression "(int ******)((int)ppppppiVar14 + 1)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)ppppppiVar14 + 1)" (( "(") (binary_expression "(int)ppppppiVar14 + 1" (cast_expression "(int)ppppppiVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar14")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "ppppppiVar4 = ppppppiVar4 + 1;" (assignment_expression "ppppppiVar4 = ppppppiVar4 + 1" (identifier "ppppppiVar4") (= "=") (binary_expression "ppppppiVar4 + 1" (identifier "ppppppiVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppppiVar26 = pppppppiVar28;" (assignment_expression "pppppppiVar26 = pppppppiVar28" (identifier "pppppppiVar26") (= "=") (identifier "pppppppiVar28")) (; ";")) (expression_statement "ppppppiVar32 = appppppiStack_138[0];" (assignment_expression "ppppppiVar32 = appppppiStack_138[0]" (identifier "ppppppiVar32") (= "=") (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppppppiVar13 != ppppppiVar14)" (( "(") (binary_expression "ppppppiVar13 != ppppppiVar14" (identifier "ppppppiVar13") (!= "!=") (identifier "ppppppiVar14")) () ")")) (; ";")) (} "}")))) (labeled_statement "LAB_00020ecc:\n          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;" (statement_identifier "LAB_00020ecc") (: ":") (if_statement "if ((int)pppppppiVar28 < 0) goto LAB_00020f60;" (if "if") (parenthesized_expression "((int)pppppppiVar28 < 0)" (( "(") (binary_expression "(int)pppppppiVar28 < 0" (cast_expression "(int)pppppppiVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar28")) (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_00020f60;" (goto "goto") (statement_identifier "LAB_00020f60") (; ";")))) (expression_statement "pppppppiVar29 = (int *******)pppppppiVar7[1];" (assignment_expression "pppppppiVar29 = (int *******)pppppppiVar7[1]" (identifier "pppppppiVar29") (= "=") (cast_expression "(int *******)pppppppiVar7[1]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppiVar7[1]" (identifier "pppppppiVar7") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];" (assignment_expression "ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c]" (identifier "ppppiVar19") (= "=") (subscript_expression "((int *****)ppppppiVar32)[-0x1f6c]" (parenthesized_expression "((int *****)ppppppiVar32)" (( "(") (cast_expression "(int *****)ppppppiVar32" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppppiVar32")) () ")")) ([ "[") (number_literal "-0x1f6c") (] "]"))) (; ";")) (if_statement "if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;" (if "if") (parenthesized_expression "((int)pppppppiVar29 < (int)pppppppiStack_100)" (( "(") (binary_expression "(int)pppppppiVar29 < (int)pppppppiStack_100" (cast_expression "(int)pppppppiVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar29")) (< "<") (cast_expression "(int)pppppppiStack_100" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiStack_100"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "pppppppiVar25 = pppppppiStack_100;" (assignment_expression "pppppppiVar25 = pppppppiStack_100" (identifier "pppppppiVar25") (= "=") (identifier "pppppppiStack_100")) (; ";")) (expression_statement "(*(code *)ppppiVar19)(ppppppiStack_f4);" (call_expression "(*(code *)ppppiVar19)(ppppppiStack_f4)" (parenthesized_expression "(*(code *)ppppiVar19)" (( "(") (pointer_expression "*(code *)ppppiVar19" (* "*") (cast_expression "(code *)ppppiVar19" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppiVar19"))) () ")")) (argument_list "(ppppppiStack_f4)" (( "(") (identifier "ppppppiStack_f4") () ")"))) (; ";")) (if_statement "if (iStack_128 == 0) {\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }\n      else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }" (if "if") (parenthesized_expression "(iStack_128 == 0)" (( "(") (binary_expression "iStack_128 == 0" (identifier "iStack_128") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar10 = 0;\n        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;\n      }" ({ "{") (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (if_statement "if (ppiVar33 == (int **)0x0) goto LAB_00020f18;" (if "if") (parenthesized_expression "(ppiVar33 == (int **)0x0)" (( "(") (binary_expression "ppiVar33 == (int **)0x0" (identifier "ppiVar33") (== "==") (cast_expression "(int **)0x0" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00020f18;" (goto "goto") (statement_identifier "LAB_00020f18") (; ";"))) (} "}")) (else_clause "else {\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }" (else "else") (compound_statement "{\n        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n        if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }\n      }" ({ "{") (expression_statement "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);" (call_expression "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124)" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f6c])" (( "(") (pointer_expression "*(code *)appppppiStack_138[0][-0x1f6c]" (* "*") (cast_expression "(code *)appppppiStack_138[0][-0x1f6c]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "appppppiStack_138[0][-0x1f6c]" (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "-0x1f6c") (] "]")))) () ")")) (argument_list "(pppppppiStack_124)" (( "(") (identifier "pppppppiStack_124") () ")"))) (; ";")) (if_statement "if (ppiVar33 == (int **)0x0) {\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }" (if "if") (parenthesized_expression "(ppiVar33 == (int **)0x0)" (( "(") (binary_expression "ppiVar33 == (int **)0x0" (identifier "ppiVar33") (== "==") (cast_expression "(int **)0x0" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          uVar10 = 0;\n          goto LAB_00020f18;\n        }" ({ "{") (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00020f18;" (goto "goto") (statement_identifier "LAB_00020f18") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_00020f00:\n      FUN_0001ec78(ppiVar33);" (statement_identifier "LAB_00020f00") (: ":") (expression_statement "FUN_0001ec78(ppiVar33);" (call_expression "FUN_0001ec78(ppiVar33)" (identifier "FUN_0001ec78") (argument_list "(ppiVar33)" (( "(") (identifier "ppiVar33") () ")"))) (; ";"))) (labeled_statement "LAB_00020f14:\n      uVar10 = 0;" (statement_identifier "LAB_00020f14") (: ":") (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";"))) (goto_statement "goto LAB_00020f18;" (goto "goto") (statement_identifier "LAB_00020f18") (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar10 = 0xc;" (assignment_expression "uVar10 = 0xc" (identifier "uVar10") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "puVar38 = puVar39;" (assignment_expression "puVar38 = puVar39" (identifier "puVar38") (= "=") (identifier "puVar39")) (; ";")) (labeled_statement "LAB_00020f18:\n  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f77];" (statement_identifier "LAB_00020f18") (: ":") (expression_statement "ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f77];" (assignment_expression "ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f77]" (identifier "ppppiVar19") (= "=") (cast_expression "(int ****)appppppiStack_138[0][-0x1f77]" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (subscript_expression "appppppiStack_138[0][-0x1f77]" (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "-0x1f77") (] "]")))) (; ";"))) (if_statement "if (iStack_e4 == *piStack_12c) {\n    return uVar10;\n  }" (if "if") (parenthesized_expression "(iStack_e4 == *piStack_12c)" (( "(") (binary_expression "iStack_e4 == *piStack_12c" (identifier "iStack_e4") (== "==") (pointer_expression "*piStack_12c" (* "*") (identifier "piStack_12c"))) () ")")) (compound_statement "{\n    return uVar10;\n  }" ({ "{") (return_statement "return uVar10;" (return "return") (identifier "uVar10") (; ";")) (} "}"))) (expression_statement "pcVar15 = FUN_00021550;" (assignment_expression "pcVar15 = FUN_00021550" (identifier "pcVar15") (= "=") (identifier "FUN_00021550")) (; ";")) (expression_statement "iVar6 = iStack_e4;" (assignment_expression "iVar6 = iStack_e4" (identifier "iVar6") (= "=") (identifier "iStack_e4")) (; ";")) (expression_statement "(*(code *)ppppiVar19)();" (call_expression "(*(code *)ppppiVar19)()" (parenthesized_expression "(*(code *)ppppiVar19)" (( "(") (pointer_expression "*(code *)ppppiVar19" (* "*") (cast_expression "(code *)ppppiVar19" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppiVar19"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(int ********)(puVar38 + -0x18) = pppppppiVar30;" (assignment_expression "*(int ********)(puVar38 + -0x18) = pppppppiVar30" (pointer_expression "*(int ********)(puVar38 + -0x18)" (* "*") (cast_expression "(int ********)(puVar38 + -0x18)" (( "(") (type_descriptor "int ********" (primitive_type "int") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (parenthesized_expression "(puVar38 + -0x18)" (( "(") (binary_expression "puVar38 + -0x18" (identifier "puVar38") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "pppppppiVar30")) (; ";")) (expression_statement "*(int ********)(puVar38 + -0x14) = param_3;" (assignment_expression "*(int ********)(puVar38 + -0x14) = param_3" (pointer_expression "*(int ********)(puVar38 + -0x14)" (* "*") (cast_expression "(int ********)(puVar38 + -0x14)" (( "(") (type_descriptor "int ********" (primitive_type "int") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (parenthesized_expression "(puVar38 + -0x14)" (( "(") (binary_expression "puVar38 + -0x14" (identifier "puVar38") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(int ********)(puVar38 + -0x1c) = pppppppiVar7;" (assignment_expression "*(int ********)(puVar38 + -0x1c) = pppppppiVar7" (pointer_expression "*(int ********)(puVar38 + -0x1c)" (* "*") (cast_expression "(int ********)(puVar38 + -0x1c)" (( "(") (type_descriptor "int ********" (primitive_type "int") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (parenthesized_expression "(puVar38 + -0x1c)" (( "(") (binary_expression "puVar38 + -0x1c" (identifier "puVar38") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "pppppppiVar7")) (; ";")) (expression_statement "*(int ********)(puVar38 + -0x10) = pppppppiVar23;" (assignment_expression "*(int ********)(puVar38 + -0x10) = pppppppiVar23" (pointer_expression "*(int ********)(puVar38 + -0x10)" (* "*") (cast_expression "(int ********)(puVar38 + -0x10)" (( "(") (type_descriptor "int ********" (primitive_type "int") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (parenthesized_expression "(puVar38 + -0x10)" (( "(") (binary_expression "puVar38 + -0x10" (identifier "puVar38") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "pppppppiVar23")) (; ";")) (expression_statement "*(int *****)(puVar38 + -0x28) = ppppiVar19 + 0x8ae0;" (assignment_expression "*(int *****)(puVar38 + -0x28) = ppppiVar19 + 0x8ae0" (pointer_expression "*(int *****)(puVar38 + -0x28)" (* "*") (cast_expression "(int *****)(puVar38 + -0x28)" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar38 + -0x28)" (( "(") (binary_expression "puVar38 + -0x28" (identifier "puVar38") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (binary_expression "ppppiVar19 + 0x8ae0" (identifier "ppppiVar19") (+ "+") (number_literal "0x8ae0"))) (; ";")) (expression_statement "*(int ********)(puVar38 + -0x20) = pppppppiVar22;" (assignment_expression "*(int ********)(puVar38 + -0x20) = pppppppiVar22" (pointer_expression "*(int ********)(puVar38 + -0x20)" (* "*") (cast_expression "(int ********)(puVar38 + -0x20)" (( "(") (type_descriptor "int ********" (primitive_type "int") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (parenthesized_expression "(puVar38 + -0x20)" (( "(") (binary_expression "puVar38 + -0x20" (identifier "puVar38") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "pppppppiVar22")) (; ";")) (expression_statement "*(code **)(puVar38 + -4) = pcVar15;" (assignment_expression "*(code **)(puVar38 + -4) = pcVar15" (pointer_expression "*(code **)(puVar38 + -4)" (* "*") (cast_expression "(code **)(puVar38 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + -4)" (( "(") (binary_expression "puVar38 + -4" (identifier "puVar38") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "pcVar15")) (; ";")) (expression_statement "*(int **)(puVar38 + -8) = piVar34;" (assignment_expression "*(int **)(puVar38 + -8) = piVar34" (pointer_expression "*(int **)(puVar38 + -8)" (* "*") (cast_expression "(int **)(puVar38 + -8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + -8)" (( "(") (binary_expression "puVar38 + -8" (identifier "puVar38") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "piVar34")) (; ";")) (expression_statement "*(int ***)(puVar38 + -0xc) = ppiVar33;" (assignment_expression "*(int ***)(puVar38 + -0xc) = ppiVar33" (pointer_expression "*(int ***)(puVar38 + -0xc)" (* "*") (cast_expression "(int ***)(puVar38 + -0xc)" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar38 + -0xc)" (( "(") (binary_expression "puVar38 + -0xc" (identifier "puVar38") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "ppiVar33")) (; ";")) (expression_statement "iVar31 = *(int *)(puVar38 + 0x10);" (assignment_expression "iVar31 = *(int *)(puVar38 + 0x10)" (identifier "iVar31") (= "=") (pointer_expression "*(int *)(puVar38 + 0x10)" (* "*") (cast_expression "(int *)(puVar38 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x10)" (( "(") (binary_expression "puVar38 + 0x10" (identifier "puVar38") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar38 + -0x30) = 8;" (assignment_expression "*(undefined4 *)(puVar38 + -0x30) = 8" (pointer_expression "*(undefined4 *)(puVar38 + -0x30)" (* "*") (cast_expression "(undefined4 *)(puVar38 + -0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + -0x30)" (( "(") (binary_expression "puVar38 + -0x30" (identifier "puVar38") (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (number_literal "8")) (; ";")) (expression_statement "*(int *)(puVar38 + -0x34) = iVar31;" (assignment_expression "*(int *)(puVar38 + -0x34) = iVar31" (pointer_expression "*(int *)(puVar38 + -0x34)" (* "*") (cast_expression "(int *)(puVar38 + -0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + -0x34)" (( "(") (binary_expression "puVar38 + -0x34" (identifier "puVar38") (+ "+") (number_literal "-0x34")) () ")")))) (= "=") (identifier "iVar31")) (; ";")) (expression_statement "*(int ********)(puVar38 + -0x38) = pppppppiVar25;" (assignment_expression "*(int ********)(puVar38 + -0x38) = pppppppiVar25" (pointer_expression "*(int ********)(puVar38 + -0x38)" (* "*") (cast_expression "(int ********)(puVar38 + -0x38)" (( "(") (type_descriptor "int ********" (primitive_type "int") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (parenthesized_expression "(puVar38 + -0x38)" (( "(") (binary_expression "puVar38 + -0x38" (identifier "puVar38") (+ "+") (number_literal "-0x38")) () ")")))) (= "=") (identifier "pppppppiVar25")) (; ";")) (expression_statement "uVar10 = FUN_00020550();" (assignment_expression "uVar10 = FUN_00020550()" (identifier "uVar10") (= "=") (call_expression "FUN_00020550()" (identifier "FUN_00020550") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (uVar10 != 0) {\n    return uVar10;\n  }" (if "if") (parenthesized_expression "(uVar10 != 0)" (( "(") (binary_expression "uVar10 != 0" (identifier "uVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return uVar10;\n  }" ({ "{") (return_statement "return uVar10;" (return "return") (identifier "uVar10") (; ";")) (} "}"))) (expression_statement "iVar11 = *(int *)(iVar6 + 0x6c);" (assignment_expression "iVar11 = *(int *)(iVar6 + 0x6c)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar6 + 0x6c)" (* "*") (cast_expression "(int *)(iVar6 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x6c)" (( "(") (binary_expression "iVar6 + 0x6c" (identifier "iVar6") (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (expression_statement "ppppppiVar14 = *pppppppiVar3;" (assignment_expression "ppppppiVar14 = *pppppppiVar3" (identifier "ppppppiVar14") (= "=") (pointer_expression "*pppppppiVar3" (* "*") (identifier "pppppppiVar3"))) (; ";")) (expression_statement "ppppppiVar13 = pppppppiVar12[1];" (assignment_expression "ppppppiVar13 = pppppppiVar12[1]" (identifier "ppppppiVar13") (= "=") (subscript_expression "pppppppiVar12[1]" (identifier "pppppppiVar12") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar20 = *(int *)(iVar6 + 0x74);" (assignment_expression "iVar20 = *(int *)(iVar6 + 0x74)" (identifier "iVar20") (= "=") (pointer_expression "*(int *)(iVar6 + 0x74)" (* "*") (cast_expression "(int *)(iVar6 + 0x74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x74)" (( "(") (binary_expression "iVar6 + 0x74" (identifier "iVar6") (+ "+") (number_literal "0x74")) () ")"))))) (; ";")) (expression_statement "ppppppiVar32 = ppppppiVar13;" (assignment_expression "ppppppiVar32 = ppppppiVar13" (identifier "ppppppiVar32") (= "=") (identifier "ppppppiVar13")) (; ";")) (if_statement "if (*(int *)(iVar6 + 0x70) <= iVar11) {\n    iVar11 = (**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))\n                       (iVar20,*(int *)(iVar6 + 0x70) * 0x28);\n    if (iVar11 == 0) {\n      (**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74));\n      return 0xc;\n    }\n    pcVar15 = *(code **)(*(int *)(puVar38 + -0x28) + -0x7e40);\n    *(int *)(iVar6 + 0x74) = iVar11;\n    (*pcVar15)(iVar11 + *(int *)(iVar6 + 0x6c) * 0x14,0,*(int *)(iVar6 + 0x70) * 0x14);\n    ppppppiVar32 = pppppppiVar12[1];\n    iVar11 = *(int *)(iVar6 + 0x6c);\n    iVar20 = *(int *)(iVar6 + 0x74);\n    *(int *)(iVar6 + 0x70) = *(int *)(iVar6 + 0x70) << 1;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar6 + 0x70) <= iVar11)" (( "(") (binary_expression "*(int *)(iVar6 + 0x70) <= iVar11" (pointer_expression "*(int *)(iVar6 + 0x70)" (* "*") (cast_expression "(int *)(iVar6 + 0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x70)" (( "(") (binary_expression "iVar6 + 0x70" (identifier "iVar6") (+ "+") (number_literal "0x70")) () ")")))) (<= "<=") (identifier "iVar11")) () ")")) (compound_statement "{\n    iVar11 = (**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))\n                       (iVar20,*(int *)(iVar6 + 0x70) * 0x28);\n    if (iVar11 == 0) {\n      (**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74));\n      return 0xc;\n    }\n    pcVar15 = *(code **)(*(int *)(puVar38 + -0x28) + -0x7e40);\n    *(int *)(iVar6 + 0x74) = iVar11;\n    (*pcVar15)(iVar11 + *(int *)(iVar6 + 0x6c) * 0x14,0,*(int *)(iVar6 + 0x70) * 0x14);\n    ppppppiVar32 = pppppppiVar12[1];\n    iVar11 = *(int *)(iVar6 + 0x6c);\n    iVar20 = *(int *)(iVar6 + 0x74);\n    *(int *)(iVar6 + 0x70) = *(int *)(iVar6 + 0x70) << 1;\n  }" ({ "{") (expression_statement "iVar11 = (**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))\n                       (iVar20,*(int *)(iVar6 + 0x70) * 0x28);" (assignment_expression "iVar11 = (**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))\n                       (iVar20,*(int *)(iVar6 + 0x70) * 0x28)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))\n                       (iVar20,*(int *)(iVar6 + 0x70) * 0x28)" (parenthesized_expression "(**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar38 + -0x28) + -0x7e18)" (* "*") (cast_expression "(code **)(*(int *)(puVar38 + -0x28) + -0x7e18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar38 + -0x28) + -0x7e18)" (( "(") (binary_expression "*(int *)(puVar38 + -0x28) + -0x7e18" (pointer_expression "*(int *)(puVar38 + -0x28)" (* "*") (cast_expression "(int *)(puVar38 + -0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + -0x28)" (( "(") (binary_expression "puVar38 + -0x28" (identifier "puVar38") (+ "+") (number_literal "-0x28")) () ")")))) (+ "+") (number_literal "-0x7e18")) () ")"))))) () ")")) (argument_list "(iVar20,*(int *)(iVar6 + 0x70) * 0x28)" (( "(") (identifier "iVar20") (, ",") (binary_expression "*(int *)(iVar6 + 0x70) * 0x28" (pointer_expression "*(int *)(iVar6 + 0x70)" (* "*") (cast_expression "(int *)(iVar6 + 0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x70)" (( "(") (binary_expression "iVar6 + 0x70" (identifier "iVar6") (+ "+") (number_literal "0x70")) () ")")))) (* "*") (number_literal "0x28")) () ")")))) (; ";")) (if_statement "if (iVar11 == 0) {\n      (**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74));\n      return 0xc;\n    }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      (**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74));\n      return 0xc;\n    }" ({ "{") (expression_statement "(**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74));" (call_expression "(**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74))" (parenthesized_expression "(**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar38 + -0x28) + -0x7db0)" (* "*") (cast_expression "(code **)(*(int *)(puVar38 + -0x28) + -0x7db0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar38 + -0x28) + -0x7db0)" (( "(") (binary_expression "*(int *)(puVar38 + -0x28) + -0x7db0" (pointer_expression "*(int *)(puVar38 + -0x28)" (* "*") (cast_expression "(int *)(puVar38 + -0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + -0x28)" (( "(") (binary_expression "puVar38 + -0x28" (identifier "puVar38") (+ "+") (number_literal "-0x28")) () ")")))) (+ "+") (number_literal "-0x7db0")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar6 + 0x74))" (( "(") (pointer_expression "*(undefined4 *)(iVar6 + 0x74)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x74)" (( "(") (binary_expression "iVar6 + 0x74" (identifier "iVar6") (+ "+") (number_literal "0x74")) () ")")))) () ")"))) (; ";")) (return_statement "return 0xc;" (return "return") (number_literal "0xc") (; ";")) (} "}"))) (expression_statement "pcVar15 = *(code **)(*(int *)(puVar38 + -0x28) + -0x7e40);" (assignment_expression "pcVar15 = *(code **)(*(int *)(puVar38 + -0x28) + -0x7e40)" (identifier "pcVar15") (= "=") (pointer_expression "*(code **)(*(int *)(puVar38 + -0x28) + -0x7e40)" (* "*") (cast_expression "(code **)(*(int *)(puVar38 + -0x28) + -0x7e40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar38 + -0x28) + -0x7e40)" (( "(") (binary_expression "*(int *)(puVar38 + -0x28) + -0x7e40" (pointer_expression "*(int *)(puVar38 + -0x28)" (* "*") (cast_expression "(int *)(puVar38 + -0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + -0x28)" (( "(") (binary_expression "puVar38 + -0x28" (identifier "puVar38") (+ "+") (number_literal "-0x28")) () ")")))) (+ "+") (number_literal "-0x7e40")) () ")"))))) (; ";")) (expression_statement "*(int *)(iVar6 + 0x74) = iVar11;" (assignment_expression "*(int *)(iVar6 + 0x74) = iVar11" (pointer_expression "*(int *)(iVar6 + 0x74)" (* "*") (cast_expression "(int *)(iVar6 + 0x74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x74)" (( "(") (binary_expression "iVar6 + 0x74" (identifier "iVar6") (+ "+") (number_literal "0x74")) () ")")))) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "(*pcVar15)(iVar11 + *(int *)(iVar6 + 0x6c) * 0x14,0,*(int *)(iVar6 + 0x70) * 0x14);" (call_expression "(*pcVar15)(iVar11 + *(int *)(iVar6 + 0x6c) * 0x14,0,*(int *)(iVar6 + 0x70) * 0x14)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(iVar11 + *(int *)(iVar6 + 0x6c) * 0x14,0,*(int *)(iVar6 + 0x70) * 0x14)" (( "(") (binary_expression "iVar11 + *(int *)(iVar6 + 0x6c) * 0x14" (identifier "iVar11") (+ "+") (binary_expression "*(int *)(iVar6 + 0x6c) * 0x14" (pointer_expression "*(int *)(iVar6 + 0x6c)" (* "*") (cast_expression "(int *)(iVar6 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x6c)" (( "(") (binary_expression "iVar6 + 0x6c" (identifier "iVar6") (+ "+") (number_literal "0x6c")) () ")")))) (* "*") (number_literal "0x14"))) (, ",") (number_literal "0") (, ",") (binary_expression "*(int *)(iVar6 + 0x70) * 0x14" (pointer_expression "*(int *)(iVar6 + 0x70)" (* "*") (cast_expression "(int *)(iVar6 + 0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x70)" (( "(") (binary_expression "iVar6 + 0x70" (identifier "iVar6") (+ "+") (number_literal "0x70")) () ")")))) (* "*") (number_literal "0x14")) () ")"))) (; ";")) (expression_statement "ppppppiVar32 = pppppppiVar12[1];" (assignment_expression "ppppppiVar32 = pppppppiVar12[1]" (identifier "ppppppiVar32") (= "=") (subscript_expression "pppppppiVar12[1]" (identifier "pppppppiVar12") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar11 = *(int *)(iVar6 + 0x6c);" (assignment_expression "iVar11 = *(int *)(iVar6 + 0x6c)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar6 + 0x6c)" (* "*") (cast_expression "(int *)(iVar6 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x6c)" (( "(") (binary_expression "iVar6 + 0x6c" (identifier "iVar6") (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (expression_statement "iVar20 = *(int *)(iVar6 + 0x74);" (assignment_expression "iVar20 = *(int *)(iVar6 + 0x74)" (identifier "iVar20") (= "=") (pointer_expression "*(int *)(iVar6 + 0x74)" (* "*") (cast_expression "(int *)(iVar6 + 0x74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x74)" (( "(") (binary_expression "iVar6 + 0x74" (identifier "iVar6") (+ "+") (number_literal "0x74")) () ")"))))) (; ";")) (expression_statement "*(int *)(iVar6 + 0x70) = *(int *)(iVar6 + 0x70) << 1;" (assignment_expression "*(int *)(iVar6 + 0x70) = *(int *)(iVar6 + 0x70) << 1" (pointer_expression "*(int *)(iVar6 + 0x70)" (* "*") (cast_expression "(int *)(iVar6 + 0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x70)" (( "(") (binary_expression "iVar6 + 0x70" (identifier "iVar6") (+ "+") (number_literal "0x70")) () ")")))) (= "=") (binary_expression "*(int *)(iVar6 + 0x70) << 1" (pointer_expression "*(int *)(iVar6 + 0x70)" (* "*") (cast_expression "(int *)(iVar6 + 0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x70)" (( "(") (binary_expression "iVar6 + 0x70" (identifier "iVar6") (+ "+") (number_literal "0x70")) () ")")))) (<< "<<") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if ((0 < iVar11) && (iVar24 = iVar20 + iVar11 * 0x14 + -0x14, iVar31 == *(int *)(iVar24 + 4))) {\n    *(undefined1 *)(iVar24 + 0x10) = 1;\n  }" (if "if") (parenthesized_expression "((0 < iVar11) && (iVar24 = iVar20 + iVar11 * 0x14 + -0x14, iVar31 == *(int *)(iVar24 + 4)))" (( "(") (binary_expression "(0 < iVar11) && (iVar24 = iVar20 + iVar11 * 0x14 + -0x14, iVar31 == *(int *)(iVar24 + 4))" (parenthesized_expression "(0 < iVar11)" (( "(") (binary_expression "0 < iVar11" (number_literal "0") (< "<") (identifier "iVar11")) () ")")) (&& "&&") (parenthesized_expression "(iVar24 = iVar20 + iVar11 * 0x14 + -0x14, iVar31 == *(int *)(iVar24 + 4))" (( "(") (comma_expression "iVar24 = iVar20 + iVar11 * 0x14 + -0x14, iVar31 == *(int *)(iVar24 + 4)" (assignment_expression "iVar24 = iVar20 + iVar11 * 0x14 + -0x14" (identifier "iVar24") (= "=") (binary_expression "iVar20 + iVar11 * 0x14 + -0x14" (binary_expression "iVar20 + iVar11 * 0x14" (identifier "iVar20") (+ "+") (binary_expression "iVar11 * 0x14" (identifier "iVar11") (* "*") (number_literal "0x14"))) (+ "+") (number_literal "-0x14"))) (, ",") (binary_expression "iVar31 == *(int *)(iVar24 + 4)" (identifier "iVar31") (== "==") (pointer_expression "*(int *)(iVar24 + 4)" (* "*") (cast_expression "(int *)(iVar24 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 4)" (( "(") (binary_expression "iVar24 + 4" (identifier "iVar24") (+ "+") (number_literal "4")) () ")")))))) () ")"))) () ")")) (compound_statement "{\n    *(undefined1 *)(iVar24 + 0x10) = 1;\n  }" ({ "{") (expression_statement "*(undefined1 *)(iVar24 + 0x10) = 1;" (assignment_expression "*(undefined1 *)(iVar24 + 0x10) = 1" (pointer_expression "*(undefined1 *)(iVar24 + 0x10)" (* "*") (cast_expression "(undefined1 *)(iVar24 + 0x10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x10)" (( "(") (binary_expression "iVar24 + 0x10" (identifier "iVar24") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "puVar21 = (undefined4 *)(iVar20 + iVar11 * 0x14);" (assignment_expression "puVar21 = (undefined4 *)(iVar20 + iVar11 * 0x14)" (identifier "puVar21") (= "=") (cast_expression "(undefined4 *)(iVar20 + iVar11 * 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + iVar11 * 0x14)" (( "(") (binary_expression "iVar20 + iVar11 * 0x14" (identifier "iVar20") (+ "+") (binary_expression "iVar11 * 0x14" (identifier "iVar11") (* "*") (number_literal "0x14"))) () ")")))) (; ";")) (expression_statement "*puVar21 = pppppppiVar25;" (assignment_expression "*puVar21 = pppppppiVar25" (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (= "=") (identifier "pppppppiVar25")) (; ";")) (expression_statement "puVar21[1] = iVar31;" (assignment_expression "puVar21[1] = iVar31" (subscript_expression "puVar21[1]" (identifier "puVar21") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar31")) (; ";")) (expression_statement "puVar21[2] = ppppppiVar14;" (assignment_expression "puVar21[2] = ppppppiVar14" (subscript_expression "puVar21[2]" (identifier "puVar21") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "ppppppiVar14")) (; ";")) (expression_statement "puVar21[3] = ppppppiVar13;" (assignment_expression "puVar21[3] = ppppppiVar13" (subscript_expression "puVar21[3]" (identifier "puVar21") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "ppppppiVar13")) (; ";")) (expression_statement "*(ushort *)((int)puVar21 + 0x12) = -(ushort)(ppppppiVar14 == ppppppiVar13);" (assignment_expression "*(ushort *)((int)puVar21 + 0x12) = -(ushort)(ppppppiVar14 == ppppppiVar13)" (pointer_expression "*(ushort *)((int)puVar21 + 0x12)" (* "*") (cast_expression "(ushort *)((int)puVar21 + 0x12)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar21 + 0x12)" (( "(") (binary_expression "(int)puVar21 + 0x12" (cast_expression "(int)puVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar21")) (+ "+") (number_literal "0x12")) () ")")))) (= "=") (unary_expression "-(ushort)(ppppppiVar14 == ppppppiVar13)" (- "-") (call_expression "(ushort)(ppppppiVar14 == ppppppiVar13)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(ppppppiVar14 == ppppppiVar13)" (( "(") (binary_expression "ppppppiVar14 == ppppppiVar13" (identifier "ppppppiVar14") (== "==") (identifier "ppppppiVar13")) () ")"))))) (; ";")) (expression_statement "*(int *)(iVar6 + 0x6c) = iVar11 + 1;" (assignment_expression "*(int *)(iVar6 + 0x6c) = iVar11 + 1" (pointer_expression "*(int *)(iVar6 + 0x6c)" (* "*") (cast_expression "(int *)(iVar6 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x6c)" (( "(") (binary_expression "iVar6 + 0x6c" (identifier "iVar6") (+ "+") (number_literal "0x6c")) () ")")))) (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined1 *)(puVar21 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar21 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar21 + 4)" (* "*") (cast_expression "(undefined1 *)(puVar21 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + 4)" (( "(") (binary_expression "puVar21 + 4" (identifier "puVar21") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(int *)(iVar6 + 0x78) < (int)ppppppiVar13 - (int)ppppppiVar14) {\n    *(int *)(iVar6 + 0x78) = (int)ppppppiVar13 - (int)ppppppiVar14;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar6 + 0x78) < (int)ppppppiVar13 - (int)ppppppiVar14)" (( "(") (binary_expression "*(int *)(iVar6 + 0x78) < (int)ppppppiVar13 - (int)ppppppiVar14" (pointer_expression "*(int *)(iVar6 + 0x78)" (* "*") (cast_expression "(int *)(iVar6 + 0x78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x78)" (( "(") (binary_expression "iVar6 + 0x78" (identifier "iVar6") (+ "+") (number_literal "0x78")) () ")")))) (< "<") (binary_expression "(int)ppppppiVar13 - (int)ppppppiVar14" (cast_expression "(int)ppppppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar13")) (- "-") (cast_expression "(int)ppppppiVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar14")))) () ")")) (compound_statement "{\n    *(int *)(iVar6 + 0x78) = (int)ppppppiVar13 - (int)ppppppiVar14;\n  }" ({ "{") (expression_statement "*(int *)(iVar6 + 0x78) = (int)ppppppiVar13 - (int)ppppppiVar14;" (assignment_expression "*(int *)(iVar6 + 0x78) = (int)ppppppiVar13 - (int)ppppppiVar14" (pointer_expression "*(int *)(iVar6 + 0x78)" (* "*") (cast_expression "(int *)(iVar6 + 0x78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x78)" (( "(") (binary_expression "iVar6 + 0x78" (identifier "iVar6") (+ "+") (number_literal "0x78")) () ")")))) (= "=") (binary_expression "(int)ppppppiVar13 - (int)ppppppiVar14" (cast_expression "(int)ppppppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar13")) (- "-") (cast_expression "(int)ppppppiVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar14")))) (; ";")) (} "}"))) (expression_statement "uVar10 = FUN_00019470(iVar6,(int)ppppppiVar32 + (iVar31 - (int)*pppppppiVar3));" (assignment_expression "uVar10 = FUN_00019470(iVar6,(int)ppppppiVar32 + (iVar31 - (int)*pppppppiVar3))" (identifier "uVar10") (= "=") (call_expression "FUN_00019470(iVar6,(int)ppppppiVar32 + (iVar31 - (int)*pppppppiVar3))" (identifier "FUN_00019470") (argument_list "(iVar6,(int)ppppppiVar32 + (iVar31 - (int)*pppppppiVar3))" (( "(") (identifier "iVar6") (, ",") (binary_expression "(int)ppppppiVar32 + (iVar31 - (int)*pppppppiVar3)" (cast_expression "(int)ppppppiVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar32")) (+ "+") (parenthesized_expression "(iVar31 - (int)*pppppppiVar3)" (( "(") (binary_expression "iVar31 - (int)*pppppppiVar3" (identifier "iVar31") (- "-") (cast_expression "(int)*pppppppiVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pppppppiVar3" (* "*") (identifier "pppppppiVar3")))) () ")"))) () ")")))) (; ";")) (return_statement "return uVar10;" (return "return") (identifier "uVar10") (; ";")) (labeled_statement "LAB_00020f60:\n  ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];" (statement_identifier "LAB_00020f60") (: ":") (expression_statement "ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];" (assignment_expression "ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c]" (identifier "ppppiVar19") (= "=") (subscript_expression "((int *****)ppppppiVar32)[-0x1f6c]" (parenthesized_expression "((int *****)ppppppiVar32)" (( "(") (cast_expression "(int *****)ppppppiVar32" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppppiVar32")) () ")")) ([ "[") (number_literal "-0x1f6c") (] "]"))) (; ";"))) (expression_statement "pppppppiVar25 = pppppppiStack_100;" (assignment_expression "pppppppiVar25 = pppppppiStack_100" (identifier "pppppppiVar25") (= "=") (identifier "pppppppiStack_100")) (; ";")) (if_statement "if (pppppppiVar28 == (int *******)&SUB_fffffffe) {\nLAB_000213b0:\n    (*(code *)ppppiVar19)(ppppppiStack_f4);\n    if (iStack_128 != 0) {\nLAB_000214d4:\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n    }\n    if (ppiVar33 != (int **)0x0) goto LAB_0002112c;\n    uVar10 = 0xc;\n    goto LAB_00020f18;\n  }" (if "if") (parenthesized_expression "(pppppppiVar28 == (int *******)&SUB_fffffffe)" (( "(") (binary_expression "pppppppiVar28 == (int *******)&SUB_fffffffe" (identifier "pppppppiVar28") (== "==") (cast_expression "(int *******)&SUB_fffffffe" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&SUB_fffffffe" (& "&") (identifier "SUB_fffffffe")))) () ")")) (compound_statement "{\nLAB_000213b0:\n    (*(code *)ppppiVar19)(ppppppiStack_f4);\n    if (iStack_128 != 0) {\nLAB_000214d4:\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n    }\n    if (ppiVar33 != (int **)0x0) goto LAB_0002112c;\n    uVar10 = 0xc;\n    goto LAB_00020f18;\n  }" ({ "{") (labeled_statement "LAB_000213b0:\n    (*(code *)ppppiVar19)(ppppppiStack_f4);" (statement_identifier "LAB_000213b0") (: ":") (expression_statement "(*(code *)ppppiVar19)(ppppppiStack_f4);" (call_expression "(*(code *)ppppiVar19)(ppppppiStack_f4)" (parenthesized_expression "(*(code *)ppppiVar19)" (( "(") (pointer_expression "*(code *)ppppiVar19" (* "*") (cast_expression "(code *)ppppiVar19" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppiVar19"))) () ")")) (argument_list "(ppppppiStack_f4)" (( "(") (identifier "ppppppiStack_f4") () ")"))) (; ";"))) (if_statement "if (iStack_128 != 0) {\nLAB_000214d4:\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n    }" (if "if") (parenthesized_expression "(iStack_128 != 0)" (( "(") (binary_expression "iStack_128 != 0" (identifier "iStack_128") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000214d4:\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n    }" ({ "{") (labeled_statement "LAB_000214d4:\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);" (statement_identifier "LAB_000214d4") (: ":") (expression_statement "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);" (call_expression "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124)" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f6c])" (( "(") (pointer_expression "*(code *)appppppiStack_138[0][-0x1f6c]" (* "*") (cast_expression "(code *)appppppiStack_138[0][-0x1f6c]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "appppppiStack_138[0][-0x1f6c]" (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "-0x1f6c") (] "]")))) () ")")) (argument_list "(pppppppiStack_124)" (( "(") (identifier "pppppppiStack_124") () ")"))) (; ";"))) (} "}"))) (if_statement "if (ppiVar33 != (int **)0x0) goto LAB_0002112c;" (if "if") (parenthesized_expression "(ppiVar33 != (int **)0x0)" (( "(") (binary_expression "ppiVar33 != (int **)0x0" (identifier "ppiVar33") (!= "!=") (cast_expression "(int **)0x0" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0002112c;" (goto "goto") (statement_identifier "LAB_0002112c") (; ";"))) (expression_statement "uVar10 = 0xc;" (assignment_expression "uVar10 = 0xc" (identifier "uVar10") (= "=") (number_literal "0xc")) (; ";")) (goto_statement "goto LAB_00020f18;" (goto "goto") (statement_identifier "LAB_00020f18") (; ";")) (} "}"))) (labeled_statement "LAB_00020f6c:\n  pppppppiVar27 = pppppppiVar30;" (statement_identifier "LAB_00020f6c") (: ":") (expression_statement "pppppppiVar27 = pppppppiVar30;" (assignment_expression "pppppppiVar27 = pppppppiVar30" (identifier "pppppppiVar27") (= "=") (identifier "pppppppiVar30")) (; ";"))) (if_statement "if (ppiVar33 == (int **)0x0) {\n    (*(code *)((int *****)ppppppiVar32)[-0x1f6c])(ppppppiStack_f4);\n    if (iStack_128 == 0) {\n      uVar10 = 1;\n    }\n    else {\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n      uVar10 = 1;\n    }\n    goto LAB_00020f18;\n  }" (if "if") (parenthesized_expression "(ppiVar33 == (int **)0x0)" (( "(") (binary_expression "ppiVar33 == (int **)0x0" (identifier "ppiVar33") (== "==") (cast_expression "(int **)0x0" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (*(code *)((int *****)ppppppiVar32)[-0x1f6c])(ppppppiStack_f4);\n    if (iStack_128 == 0) {\n      uVar10 = 1;\n    }\n    else {\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n      uVar10 = 1;\n    }\n    goto LAB_00020f18;\n  }" ({ "{") (expression_statement "(*(code *)((int *****)ppppppiVar32)[-0x1f6c])(ppppppiStack_f4);" (call_expression "(*(code *)((int *****)ppppppiVar32)[-0x1f6c])(ppppppiStack_f4)" (parenthesized_expression "(*(code *)((int *****)ppppppiVar32)[-0x1f6c])" (( "(") (pointer_expression "*(code *)((int *****)ppppppiVar32)[-0x1f6c]" (* "*") (cast_expression "(code *)((int *****)ppppppiVar32)[-0x1f6c]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "((int *****)ppppppiVar32)[-0x1f6c]" (parenthesized_expression "((int *****)ppppppiVar32)" (( "(") (cast_expression "(int *****)ppppppiVar32" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppppiVar32")) () ")")) ([ "[") (number_literal "-0x1f6c") (] "]")))) () ")")) (argument_list "(ppppppiStack_f4)" (( "(") (identifier "ppppppiStack_f4") () ")"))) (; ";")) (if_statement "if (iStack_128 == 0) {\n      uVar10 = 1;\n    }\n    else {\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n      uVar10 = 1;\n    }" (if "if") (parenthesized_expression "(iStack_128 == 0)" (( "(") (binary_expression "iStack_128 == 0" (identifier "iStack_128") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar10 = 1;\n    }" ({ "{") (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" (identifier "uVar10") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n      uVar10 = 1;\n    }" (else "else") (compound_statement "{\n      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);\n      uVar10 = 1;\n    }" ({ "{") (expression_statement "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);" (call_expression "(*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124)" (parenthesized_expression "(*(code *)appppppiStack_138[0][-0x1f6c])" (( "(") (pointer_expression "*(code *)appppppiStack_138[0][-0x1f6c]" (* "*") (cast_expression "(code *)appppppiStack_138[0][-0x1f6c]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "appppppiStack_138[0][-0x1f6c]" (subscript_expression "appppppiStack_138[0]" (identifier "appppppiStack_138") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "-0x1f6c") (] "]")))) () ")")) (argument_list "(pppppppiStack_124)" (( "(") (identifier "pppppppiStack_124") () ")"))) (; ";")) (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" (identifier "uVar10") (= "=") (number_literal "1")) (; ";")) (} "}")))) (goto_statement "goto LAB_00020f18;" (goto "goto") (statement_identifier "LAB_00020f18") (; ";")) (} "}"))) (labeled_statement "LAB_00020f7c:\n  ppppiVar19 = ppppiStack_120;" (statement_identifier "LAB_00020f7c") (: ":") (expression_statement "ppppiVar19 = ppppiStack_120;" (assignment_expression "ppppiVar19 = ppppiStack_120" (identifier "ppppiVar19") (= "=") (identifier "ppppiStack_120")) (; ";"))) (expression_statement "pppppppiVar12 = (int *******)&pppppppiStack_100;" (assignment_expression "pppppppiVar12 = (int *******)&pppppppiStack_100" (identifier "pppppppiVar12") (= "=") (cast_expression "(int *******)&pppppppiStack_100" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&pppppppiStack_100" (& "&") (identifier "pppppppiStack_100")))) (; ";")) (expression_statement "pppppppiVar3 = (int *******)(ppiVar33 + 2);" (assignment_expression "pppppppiVar3 = (int *******)(ppiVar33 + 2)" (identifier "pppppppiVar3") (= "=") (cast_expression "(int *******)(ppiVar33 + 2)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(ppiVar33 + 2)" (( "(") (binary_expression "ppiVar33 + 2" (identifier "ppiVar33") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "*(int ********)(puVar37 + 0x14) = param_3;" (assignment_expression "*(int ********)(puVar37 + 0x14) = param_3" (pointer_expression "*(int ********)(puVar37 + 0x14)" (* "*") (cast_expression "(int ********)(puVar37 + 0x14)" (( "(") (type_descriptor "int ********" (primitive_type "int") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (parenthesized_expression "(puVar37 + 0x14)" (( "(") (binary_expression "puVar37 + 0x14" (identifier "puVar37") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(int ********)(puVar37 + 0x10) = pppppppiVar7;" (assignment_expression "*(int ********)(puVar37 + 0x10) = pppppppiVar7" (pointer_expression "*(int ********)(puVar37 + 0x10)" (* "*") (cast_expression "(int ********)(puVar37 + 0x10)" (( "(") (type_descriptor "int ********" (primitive_type "int") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (parenthesized_expression "(puVar37 + 0x10)" (( "(") (binary_expression "puVar37 + 0x10" (identifier "puVar37") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "pppppppiVar7")) (; ";")) (expression_statement "pppppppiVar28 =\n       (int *******)(*(code *)ppppiVar19)(ppiVar33,pppppppiVar3,pppppppiVar12,pppppppiVar23);" (assignment_expression "pppppppiVar28 =\n       (int *******)(*(code *)ppppiVar19)(ppiVar33,pppppppiVar3,pppppppiVar12,pppppppiVar23)" (identifier "pppppppiVar28") (= "=") (cast_expression "(int *******)(*(code *)ppppiVar19)(ppiVar33,pppppppiVar3,pppppppiVar12,pppppppiVar23)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*(code *)ppppiVar19)(ppiVar33,pppppppiVar3,pppppppiVar12,pppppppiVar23)" (parenthesized_expression "(*(code *)ppppiVar19)" (( "(") (pointer_expression "*(code *)ppppiVar19" (* "*") (cast_expression "(code *)ppppiVar19" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppiVar19"))) () ")")) (argument_list "(ppiVar33,pppppppiVar3,pppppppiVar12,pppppppiVar23)" (( "(") (identifier "ppiVar33") (, ",") (identifier "pppppppiVar3") (, ",") (identifier "pppppppiVar12") (, ",") (identifier "pppppppiVar23") () ")"))))) (; ";")) (expression_statement "pppppppiVar30 = pppppppiVar27;" (assignment_expression "pppppppiVar30 = pppppppiVar27" (identifier "pppppppiVar30") (= "=") (identifier "pppppppiVar27")) (; ";")) (goto_statement "goto LAB_00020db0;" (goto "goto") (statement_identifier "LAB_00020db0") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator 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: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator 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: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator 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: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator 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: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator 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: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (labeled_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)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) consequence: (compound_statement (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (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: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (binary_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: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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))))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (labeled_statement label: (statement_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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (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: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) 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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_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 (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) (number_literal) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) consequence: (compound_statement (return_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 (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) 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 declarator: (abstract_pointer_declarator))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal))))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_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 declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal))))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal)) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (identifier))) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (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) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (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 declarator: (abstract_pointer_declarator))) value: (number_literal)))) 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: (identifier)))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal))))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) 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: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal))))) arguments: (argument_list (identifier)))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (identifier))) index: (number_literal)))) (goto_statement label: (statement_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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (pointer_expression argument: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (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 (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (number_literal)))) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier)))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (labeled_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: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (subscript_expression argument: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (pointer_expression argument: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (identifier))) index: (number_literal))))) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (pointer_expression argument: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal))))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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 (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal))))) (goto_statement label: (statement_identifier)))) (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: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal))))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal))))) arguments: (argument_list (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (identifier) 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: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal))))) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal))))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (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: (subscript_expression argument: (identifier) index: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (identifier))) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (break_statement))) condition: (parenthesized_expression (true))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal))))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 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 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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (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))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (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))))))) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (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))))))) arguments: (argument_list (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)))))))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) 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 (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (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: (unary_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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))) (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) 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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))))))))) (return_statement (identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal))))) arguments: (argument_list (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_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 declarator: (abstract_pointer_declarator))) value: (number_literal)))) 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: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (identifier))) index: (number_literal))))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal))))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))))

/* WARNING: Type propagation algorithm not settling */

uint MASKED(int *******param_1,int *******param_2,int *******param_3,int *******param_4,
                 int *******param_5,int param_6,int *******param_7)

{
  uint *puVar1;
  undefined *puVar2;
  int *******pppppppiVar3;
  int ******ppppppiVar4;
  code *pcVar5;
  int iVar6;
  int *******pppppppiVar7;
  int *****pppppiVar8;
  int *piVar9;
  uint uVar10;
  int iVar11;
  int *******pppppppiVar12;
  int ******ppppppiVar13;
  int ******ppppppiVar14;
  code *pcVar15;
  code *pcVar16;
  code *pcVar17;
  int ******ppppppiVar18;
  int ****ppppiVar19;
  int iVar20;
  undefined4 *puVar21;
  int *******pppppppiVar22;
  int *******pppppppiVar23;
  int iVar24;
  int *******pppppppiVar25;
  int *******pppppppiVar26;
  int *******pppppppiVar27;
  int *******pppppppiVar28;
  int *******pppppppiVar29;
  int *******pppppppiVar30;
  int iVar31;
  int ******ppppppiVar32;
  int *******unaff_s5;
  int **ppiVar33;
  int *piVar34;
  int ******unaff_s7;
  undefined *puVar35;
  int ****ppppiVar36;
  undefined1 *puVar37;
  undefined1 *puVar38;
  undefined1 *puVar39;
  int *******unaff_s8;
  undefined1 auStack_150 [24];
  int ******appppppiStack_138 [2];
  int *******pppppppiStack_130;
  int *piStack_12c;
  int iStack_128;
  int *******pppppppiStack_124;
  int ****ppppiStack_120;
  int *******pppppppiStack_11c;
  int ****ppppiStack_118;
  int ****ppppiStack_114;
  int ****ppppiStack_110;
  int *******pppppppiStack_10c;
  int *******pppppppiStack_108;
  int ****ppppiStack_104;
  int *******pppppppiStack_100;
  int ******ppppppiStack_fc;
  undefined4 uStack_f8;
  int ******ppppppiStack_f4;
  int *piStack_f0;
  undefined4 uStack_ec;
  int iStack_e8;
  int iStack_e4;
  int *******pppppppiStack_e0;
  int *******pppppppiStack_dc;
  int *******pppppppiStack_d8;
  int *******pppppppiStack_d4;
  int ******ppppppiStack_d0;
  int *******pppppppiStack_cc;
  int *******pppppppiStack_c8;
  int ******ppppppiStack_c4;
  int *******pppppppiStack_c0;
  code *pcStack_bc;
  undefined4 local_a8;
  int local_8c;
  code *local_6c;
  uint local_4c;
  uint local_48 [3];
  undefined4 *local_3c;
  int ******local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 *local_2c;
  
  puVar35 = PTR___stack_chk_guard_0003c314;
  pppppppiVar12 = (int *******)param_1[0x15];
  pppppppiVar30 = (int *******)param_2[1];
  local_2c = *(undefined4 **)PTR___stack_chk_guard_0003c314;
  pppppppiVar22 = (int *******)((int)param_3 * 8);
  pppppppiVar23 = (int *******)(param_6 + (int)param_1[0x1e]);
  local_4c = 0;
  pppppppiVar3 = (int *******)(*pppppppiVar12)[(int)param_3 * 2];
  pppppppiVar7 = param_4;
  if ((int)pppppppiVar23 < (int)pppppppiVar30) {
LAB_000205e8:
    puVar2 = PTR_LAB_0003c1e8;
    ppppppiVar13 = param_1[0x19];
    pppppppiVar23 = (int *******)param_1[0x16];
    pppppppiVar28 = (int *******)*param_2;
    ppppppiVar32 = param_2[2];
    ppppppiVar14 = param_1[10];
    if (pppppppiVar28 == (int *******)0x0) {
      param_1[0x19] = ppppppiVar32;
      pppppppiVar22 = (int *******)((int)param_4 + -1);
      param_1[10] = (int ******)param_4;
      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);
LAB_00020b7c:
      local_48[1] = 1;
      local_48[2] = 1;
      local_3c = (undefined4 *)(*(code *)PTR_malloc_0003c2b4)(4);
      if (local_3c == (undefined4 *)0x0) goto LAB_00020c64;
      pppppppiVar22 = (int *******)(local_48 + 1);
      *local_3c = param_3;
      local_4c = 0;
      pppppppiVar23 = pppppppiVar3;
      pppppppiVar7 = param_7;
      local_4c = FUN_0001afe8(pppppppiVar12);
      pppppppiVar28 = param_4;
      if (local_4c == 0) {
LAB_00020ab8:
        pppppppiVar25 = (int *******)(local_48 + 1);
        if (local_48[2] != 0) {
          local_a8 = param_7;
          pppppppiVar22 = pppppppiVar25;
          pppppppiVar23 = pppppppiVar28;
          pppppppiVar7 = pppppppiVar3;
          local_4c = FUN_0001c580(param_1);
          if (local_4c != 0) goto LAB_00020920;
        }
        pppppppiVar22 = pppppppiVar12;
        pppppppiVar7 = pppppppiVar30;
        unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);
        pppppppiVar23 = pppppppiVar25;
        if ((unaff_s7 != (int ******)0x0) || (local_4c == 0)) {
          param_1[0x19][(int)pppppppiVar28] = (int *****)unaff_s7;
          pppppppiVar25 = pppppppiVar28;
          goto LAB_00020670;
        }
      }
LAB_00020920:
      (*(code *)PTR_free_0003c320)(local_3c);
      uVar10 = local_4c;
    }
    else {
      param_1[0x19] = ppppppiVar32;
      pppppppiVar22 = (int *******)((int)pppppppiVar28 + -1);
      param_1[10] = (int ******)pppppppiVar28;
      pppppppiVar30 = (int *******)FUN_0001cb50(param_1);
      if (pppppppiVar28 == param_4) goto LAB_00020b7c;
      ppppppiVar32 = ppppppiVar32 + (int)pppppppiVar28;
      unaff_s7 = (int ******)*ppppppiVar32;
      pppppppiVar25 = pppppppiVar28;
      if ((unaff_s7 == (int ******)0x0) || (((uint)unaff_s7[0xd] & 0x2000000) == 0)) {
        local_48[1] = 0;
        local_48[2] = 0;
        local_3c = (undefined4 *)0x0;
LAB_00020670:
        local_6c = (code *)(puVar2 + -0x34b0);
        puVar1 = local_48 + 1;
        if (((int)pppppppiVar25 < param_6) && (-1 < (int)param_1[0x1e])) {
          ppppppiVar4 = param_1[0x19];
          local_8c = 0;
          pcVar15 = (code *)(PTR_LAB_0003c1e8 + -0x5018);
          pcVar16 = (code *)(PTR_LAB_0003c1e8 + -0x3368);
          pcVar17 = (code *)(PTR_LAB_0003c1e8 + -0x7b38);
          pppppppiVar28 = pppppppiVar25;
          unaff_s8 = (int *******)((int)pppppppiVar25 + 1);
          do {
            pppppppiVar25 = unaff_s8;
            local_48[2] = 0;
            param_3 = (int *******)((int)pppppppiVar25 + -1);
            if (ppppppiVar4[(int)pppppppiVar25] == (int *****)0x0) {
              uVar10 = local_4c;
              if (unaff_s7 != (int ******)0x0) goto LAB_000206f8;
              ppppppiVar4 = param_1[0x16];
            }
            else {
              pppppppiVar22 = (int *******)(ppppppiVar4[(int)pppppppiVar25] + 1);
              local_4c = FUN_0001aa4c(puVar1);
              unaff_s8 = pppppppiVar25;
              if (local_4c != 0) goto LAB_00020920;
              uVar10 = 0;
              if (unaff_s7 != (int ******)0x0) {
LAB_000206f8:
                local_4c = uVar10;
                unaff_s5 = &local_38;
                pppppppiVar30 = (int *******)param_1[0x15];
                local_38 = (int ******)0x0;
                local_48[0] = 0;
                local_34 = 0;
                local_30 = 0;
                if (0 < (int)unaff_s7[5]) {
                  ppppppiVar32 = (int ******)0x0;
                  pcVar5 = (code *)(PTR_LAB_0003c1e8 + -0x3ea4);
                  do {
                    pppppppiVar29 = (int *******)unaff_s7[6][(int)ppppppiVar32];
                    param_4 = (int *******)((int)pppppppiVar29 * 8);
                    ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;
                    if (((uint)ppppppiVar4[1] & 0x800) != 0) {
                      pppppppiVar23 = pppppppiVar29;
                      pppppppiVar7 = param_1;
                      local_a8 = param_3;
                      iVar6 = FUN_000201f0(*pppppppiVar30,pppppppiVar30 + 0x20);
                      if (iVar6 < 2) {
                        unaff_s8 = pppppppiVar25;
                        if (iVar6 == 0) {
                          ppppppiVar4 = *pppppppiVar30 + (int)pppppppiVar29 * 2;
                          goto LAB_00020768;
                        }
                        goto LAB_00020784;
                      }
                      iVar6 = (int)param_3 + iVar6;
                      pppppppiVar28 = (int *******)((int)pppppppiVar29 * 4);
                      param_4 = (int *******)(iVar6 * 4);
                      unaff_s8 = (int *******)pppppppiVar30[3][(int)pppppppiVar29];
                      local_34 = 0;
                      if (param_1[0x19][iVar6] == (int *****)0x0) {
LAB_000209e0:
                        pppppppiVar22 = unaff_s8;
                        iVar31 = (*pcVar17)(unaff_s5);
                        if (iVar31 == 0) goto LAB_00020904;
                        pppppppiVar7 = (int *******)param_1[0x19];
                        unaff_s8 = pppppppiVar7 + iVar6;
                        pppppppiVar22 = pppppppiVar30;
                        pppppppiVar23 = unaff_s5;
                        ppppppiVar4 = (int ******)(*pcVar5)(local_48);
                        ppppppiVar18 = param_1[0x19];
                        *unaff_s8 = ppppppiVar4;
                        param_4 = (int *******)(ppppppiVar18 + iVar6);
                        if ((*param_4 != (int ******)0x0) || (local_48[0] == 0)) goto LAB_00020784;
                      }
                      else {
                        pppppppiVar22 = (int *******)(param_1[0x19][iVar6] + 1);
                        local_48[0] = FUN_0001aa4c(unaff_s5);
                        if (local_48[0] == 0) goto LAB_000209e0;
                      }
                      (*(code *)PTR_free_0003c320)(local_30);
                      local_4c = local_48[0];
                      unaff_s8 = pppppppiVar25;
                      if (local_48[0] == 0) goto LAB_000207d0;
                      goto LAB_00020920;
                    }
LAB_00020768:
                    pppppppiVar23 = param_3;
                    iVar6 = (*pcVar16)(param_1,ppppppiVar4);
                    unaff_s8 = pppppppiVar25;
                    if (iVar6 != 0) {
LAB_00020784:
                      pppppppiVar28 = (int *******)(pppppppiVar30[3] + (int)pppppppiVar29);
                      pppppppiVar22 = (int *******)*pppppppiVar28;
                      iVar6 = (*pcVar17)(puVar1);
                      if (iVar6 == 0) {
LAB_00020904:
                        (*(code *)PTR_free_0003c320)(local_30);
                        local_4c = 0xc;
                        goto LAB_00020920;
                      }
                    }
                    ppppppiVar32 = (int ******)((int)ppppppiVar32 + 1);
                  } while ((int)ppppppiVar32 < (int)unaff_s7[5]);
                }
                (*(code *)PTR_free_0003c320)(local_30);
                local_4c = 0;
              }
LAB_000207d0:
              if (local_48[2] != 0) {
                pppppppiVar22 = (int *******)puVar1;
                pppppppiVar23 = pppppppiVar3;
                pppppppiVar7 = param_7;
                local_4c = (*pcVar15)(pppppppiVar12);
                pppppppiVar28 = pppppppiVar25;
                unaff_s8 = pppppppiVar25;
                if (local_4c != 0) goto LAB_00020920;
                local_a8 = param_7;
                pppppppiVar22 = (int *******)puVar1;
                pppppppiVar23 = pppppppiVar25;
                pppppppiVar7 = pppppppiVar3;
                local_4c = FUN_0001c580(param_1);
                if (local_4c != 0) goto LAB_00020920;
              }
              ppppppiVar4 = param_1[0x16];
            }
            pppppppiVar7 = (int *******)(*local_6c)(param_1,param_3,ppppppiVar4);
            pppppppiVar22 = pppppppiVar12;
            pppppppiVar23 = (int *******)puVar1;
            unaff_s7 = (int ******)FUN_0001bd4c(&local_4c);
            if (unaff_s7 == (int ******)0x0) {
              pppppppiVar28 = pppppppiVar25;
              unaff_s8 = pppppppiVar25;
              if (local_4c != 0) goto LAB_00020920;
              ppppppiVar4 = param_1[0x19];
              local_8c = local_8c + 1;
              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);
              *unaff_s5 = (int ******)0x0;
            }
            else {
              ppppppiVar4 = param_1[0x19];
              local_8c = 0;
              unaff_s5 = (int *******)(ppppppiVar4 + (int)pppppppiVar25);
              *unaff_s5 = unaff_s7;
            }
            unaff_s8 = pppppppiVar25;
          } while (((int)pppppppiVar25 < param_6) &&
                  (unaff_s8 = (int *******)((int)pppppppiVar25 + 1), pppppppiVar28 = pppppppiVar25,
                  local_8c <= (int)param_1[0x1e]));
        }
        (*(code *)PTR_free_0003c320)(local_3c);
        pppppiVar8 = param_1[0x19][param_6];
        pppppppiVar28 = pppppppiVar25;
        if (pppppiVar8 == (int *****)0x0) {
          *param_2 = (int ******)pppppppiVar25;
          param_1[0x19] = ppppppiVar13;
          param_1[10] = ppppppiVar14;
          uVar10 = 1;
        }
        else {
          pppppppiVar22 = (int *******)(pppppiVar8 + 3);
          *param_2 = (int ******)pppppppiVar25;
          param_1[10] = ppppppiVar14;
          ppppiVar19 = pppppiVar8[2];
          param_1[0x19] = ppppppiVar13;
          iVar6 = FUN_0001a2d0(ppppiVar19);
          uVar10 = (uint)(iVar6 == 0);
          pppppppiVar23 = param_5;
        }
      }
      else {
        pppppppiVar22 = (int *******)(unaff_s7 + 1);
        uVar10 = FUN_0001ba80(local_48 + 1);
        local_4c = uVar10;
        if (uVar10 == 0) {
          if (((uint)unaff_s7[0xd] & 0x2000000) == 0) goto LAB_00020670;
          goto LAB_00020ab8;
        }
      }
    }
  }
  else {
    pppppppiVar28 = (int *******)((int)pppppppiVar23 + 1);
    ppppppiVar32 = (int ******)((int)pppppppiVar30 + (int)pppppppiVar28);
    if (((int)pppppppiVar28 <= 0x7fffffff - (int)pppppppiVar30) &&
       (unaff_s5 = param_2, ppppppiVar32 < (int ******)0x40000000)) {
      pppppppiVar22 = (int *******)((int)ppppppiVar32 * 4);
      ppppppiVar13 = (int ******)(*(code *)PTR_realloc_0003c2b8)(param_2[2]);
      puVar2 = PTR_memset_0003c290;
      if (ppppppiVar13 != (int ******)0x0) {
        param_2[2] = ppppppiVar13;
        param_2[1] = ppppppiVar32;
        (*(code *)puVar2)(ppppppiVar13 + (int)pppppppiVar30,0,(int)pppppppiVar28 * 4);
        goto LAB_000205e8;
      }
    }
LAB_00020c64:
    uVar10 = 0xc;
  }
  if (local_2c == *(undefined4 **)puVar35) {
    return uVar10;
  }
  pcVar15 = FUN_00020ca0;
  puVar21 = local_2c;
  puVar35 = PTR___stack_chk_fail_0003c2f4;
  (*(code *)PTR___stack_chk_fail_0003c2f4)();
  appppppiStack_138[0] = (int ******)(puVar35 + 0x23430);
  puVar37 = auStack_150;
  puVar38 = auStack_150;
  piStack_12c = *(int **)(puVar35 + 0x1b674);
  uStack_ec = 2;
  piStack_f0 = (int *)0x0;
  iStack_e8 = 0;
  iStack_e4 = *piStack_12c;
  piVar34 = (int *)*puVar21;
  pppppppiVar3 = pppppppiVar22;
  pppppppiVar12 = pppppppiVar23;
  pppppppiVar25 = pppppppiVar7;
  pppppppiStack_e0 = pppppppiVar28;
  pppppppiStack_dc = param_4;
  pppppppiStack_d8 = pppppppiVar30;
  pppppppiStack_d4 = param_3;
  ppppppiStack_d0 = ppppppiVar32;
  pppppppiStack_cc = unaff_s5;
  pppppppiStack_c8 = param_1;
  ppppppiStack_c4 = unaff_s7;
  pppppppiStack_c0 = unaff_s8;
  pcStack_bc = pcVar15;
  if ((char)local_a8 == '\0') {
    pppppppiVar28 = (int *******)piVar34[0x12];
    ppiVar33 = (int **)0x0;
    if ((uint)((int)pppppppiVar23 << 3) < 0xfc0) goto LAB_00020d5c;
LAB_00021488:
    pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);
    ppppppiStack_f4 = (int ******)0x0;
    uStack_f8 = 0;
    ppppppiStack_fc = (int ******)0x0;
    param_3 = &ppppppiStack_fc;
    pppppppiStack_124 = (int *******)(*(code *)appppppiStack_138[0][-0x1f87])(pppppppiStack_11c);
    iStack_128 = 1;
    if (pppppppiStack_124 != (int *******)0x0) goto LAB_00020d6c;
    puVar37 = auStack_150;
    if (ppiVar33 == (int **)0x0) {
      uVar10 = 0xc;
      goto LAB_00020f18;
    }
LAB_0002112c:
    param_3 = &ppppppiStack_fc;
    FUN_0001ec78(ppiVar33);
    puVar39 = puVar37;
  }
  else {
    ppiVar33 = &piStack_f0;
    iStack_e8 = (**(code **)(puVar35 + 0x1b614))(0x30);
    puVar39 = auStack_150;
    if (iStack_e8 != 0) {
      pppppppiVar28 = (int *******)piVar34[0x12];
      if (0xfbf < (uint)((int)pppppppiVar23 << 3)) goto LAB_00021488;
LAB_00020d5c:
      pppppppiStack_11c = (int *******)((int)pppppppiVar23 << 3);
      ppppppiStack_f4 = (int ******)0x0;
      uStack_f8 = 0;
      ppppppiStack_fc = (int ******)0x0;
      puVar37 = auStack_150 + (int)pppppppiVar23 * -8;
      iStack_128 = 0;
      pppppppiStack_124 = appppppiStack_138 + (int)pppppppiVar23 * -2;
LAB_00020d6c:
      param_3 = &ppppppiStack_fc;
      pppppppiVar3 = pppppppiVar7;
      pppppppiVar12 = pppppppiStack_11c;
      (*(code *)appppppiStack_138[0][-0x1f6e])(pppppppiStack_124);
      pppppppiStack_100 = (int *******)*pppppppiVar7;
      ppppiStack_120 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x4bb);
      ppppiStack_104 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x174c);
      ppppiStack_114 = (int ****)(appppppiStack_138[0][-0x1fba] + -0x1ece);
LAB_00020db0:
      pppppppiVar29 = (int *******)pppppppiVar7[1];
      ppppiStack_110 = (int ****)appppppiStack_138[0][-0x1fba];
      ppppiStack_118 = (int ****)appppppiStack_138[0][-0x1fba];
      ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];
      ppppppiVar32 = appppppiStack_138[0];
      puVar38 = puVar37;
      if ((int)pppppppiStack_100 <= (int)pppppppiVar29) {
        do {
          pppppppiVar30 = pppppppiVar28;
          pppppppiVar28 = (int *******)((int)pppppppiVar30 * 8);
          pppppppiVar12 = (int *******)0x8;
          piVar9 = (int *)(*piVar34 + (int)pppppppiVar28);
          pppppppiVar3 = (int *******)(uint)*(byte *)(piVar9 + 1);
          pppppppiVar25 = pppppppiStack_100;
          if (pppppppiVar3 == (int *******)0x8) {
            iVar6 = *piVar9;
            pppppppiVar3 = (int *******)(uint)(iVar6 + 1 < (int)pppppppiVar23);
            if (pppppppiVar3 != (int *******)0x0) {
              (pppppppiVar7 + (iVar6 + 1) * 2)[1] = (int ******)0xffffffff;
              pppppppiVar7[(iVar6 + 1) * 2] = (int ******)pppppppiStack_100;
              pppppppiVar29 = (int *******)pppppppiVar7[1];
            }
          }
          else {
            pppppppiVar12 = (int *******)&DAT_00000009;
            if (pppppppiVar3 == (int *******)&DAT_00000009) {
              iVar6 = *piVar9 + 1;
              pppppppiVar12 = (int *******)(uint)(iVar6 < (int)pppppppiVar23);
              pppppppiVar3 = (int *******)(iVar6 * 8);
              if (pppppppiVar12 != (int *******)0x0) {
                pppppppiVar29 = pppppppiVar7 + iVar6 * 2;
                ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6e];
                if ((int)*pppppppiVar29 < (int)pppppppiStack_100) {
                  pppppppiVar29[1] = (int ******)pppppppiStack_100;
                  pppppppiVar26 = pppppppiStack_124;
                  pppppppiVar3 = pppppppiVar7;
                }
                else if (((piVar9[1] & 0x1000U) == 0) ||
                        (pppppppiVar26 = pppppppiVar7, pppppppiVar3 = pppppppiStack_124,
                        pppppppiStack_124[iVar6 * 2] == (int ******)0xffffffff)) {
                  pppppppiVar29[1] = (int ******)pppppppiStack_100;
                  pppppppiVar29 = (int *******)pppppppiVar7[1];
                  goto LAB_00020df8;
                }
                pppppppiVar12 = pppppppiStack_11c;
                pppppppiStack_10c = pppppppiVar28;
                pppppppiStack_108 = pppppppiStack_100;
                (*(code *)ppppiVar19)(pppppppiVar26);
                pppppppiVar29 = (int *******)pppppppiVar7[1];
                pppppppiVar25 = pppppppiStack_108;
                pppppppiVar28 = pppppppiStack_10c;
                ppppppiVar32 = appppppiStack_138[0];
              }
            }
          }
LAB_00020df8:
          ppppiVar19 = ppppiStack_120;
          if ((pppppppiVar25 == pppppppiVar29) &&
             ((int *******)pppppppiVar22[0x18] == pppppppiVar30)) {
            ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];
            if (ppiVar33 == (int **)0x0) {
              (*(code *)ppppiVar36)(ppppppiStack_f4);
              if (iStack_128 == 0) goto LAB_00020f14;
              (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);
              uVar10 = 0;
              goto LAB_00020f18;
            }
            pppppppiVar28 = (int *******)0x0;
            if (pppppppiVar23 == (int *******)0x0) {
LAB_000212c0:
              (*(code *)ppppiVar36)(ppppppiStack_f4);
              if (iStack_128 != 0) {
                (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);
              }
              goto LAB_00020f00;
            }
            pppppppiVar3 = (int *******)0xffffffff;
            pppppppiVar29 = pppppppiVar7;
            while (((int)*pppppppiVar29 < 0 || (pppppppiVar29[1] != (int ******)0xffffffff))) {
              pppppppiVar28 = (int *******)((int)pppppppiVar28 + 1);
              pppppppiVar29 = pppppppiVar29 + 2;
              if (pppppppiVar23 == pppppppiVar28) {
                ppppiVar36 = ((int *****)ppppppiVar32)[-0x1f6c];
                goto LAB_000212c0;
              }
            }
            *(int ********)(puVar37 + 0x14) = param_3;
            *(int ********)(puVar37 + 0x10) = pppppppiVar7;
            pppppppiVar25 = pppppppiVar23;
            pppppppiVar30 =
                 (int *******)(*(code *)ppppiVar19)(ppiVar33,ppiVar33 + 2,&pppppppiStack_100);
            pppppppiVar28 = (int *******)((int)pppppppiVar30 << 3);
            ppppppiVar32 = appppppiStack_138[0];
          }
          pppppppiVar29 = pppppppiStack_100;
          pppppppiVar26 = (int *******)pppppppiVar22[0x15];
          pppppppiVar3 = (int *******)((int)*pppppppiVar26 + (int)pppppppiVar28);
          pppppppiVar12 = (int *******)(uint)*(byte *)(pppppppiVar3 + 1);
          if ((*(byte *)(pppppppiVar3 + 1) & 8) == 0) {
            if (((uint)pppppppiVar3[1] & 0x800) == 0) {
              pppppppiVar25 = pppppppiStack_100;
              if (pppppppiVar12 != (int *******)0x4) goto LAB_00020e44;
              ppppppiVar13 = *pppppppiVar3;
              pppppppiVar3 = (int *******)(pppppppiVar7 + ((int)ppppppiVar13 + 1) * 2)[1];
              ppppppiVar13 = pppppppiVar7[((int)ppppppiVar13 + 1) * 2];
              pppppppiVar25 = (int *******)((int)pppppppiVar3 - (int)ppppppiVar13);
              if (ppiVar33 == (int **)0x0) {
                if (pppppppiVar25 == (int *******)0x0) goto LAB_00021318;
              }
              else {
                pppppppiVar27 = pppppppiVar30;
                if ((ppppppiVar13 == (int ******)0xffffffff) ||
                   (pppppppiVar12 = (int *******)&pppppppiStack_100,
                   pppppppiVar3 == (int *******)0xffffffff)) goto LAB_00020f7c;
                if (pppppppiVar25 == (int *******)0x0) {
LAB_00021318:
                  pppppppiVar3 = pppppppiVar30;
                  pppppppiStack_10c = pppppppiVar28;
                  pppppppiStack_108 = pppppppiVar26;
                  iVar6 = (*(code *)ppppiStack_114)(param_3);
                  pppppppiVar28 = pppppppiVar30;
                  if (iVar6 == 0) goto LAB_000213ac;
                  pppppppiVar3 = pppppppiStack_108 + 5;
                  pppppppiStack_130 = pppppppiStack_108;
                  pppppppiStack_108 = pppppppiStack_100;
                  pppppppiVar28 = (int *******)*(*pppppppiVar3)[(int)pppppppiVar30 * 3 + 2];
                  pppppppiVar3 = (int *******)(pppppppiVar22[0x19][(int)pppppppiStack_100] + 3);
                  pppppppiVar12 = pppppppiVar28;
                  iVar6 = (*(code *)ppppiStack_104)(pppppppiVar22[0x19][(int)pppppppiStack_100][2]);
                  ppppppiVar32 = appppppiStack_138[0];
                  if (iVar6 != 0) goto LAB_00020ecc;
                  pppppppiVar3 = (int *******)((int)*pppppppiStack_130 + (int)pppppppiStack_10c);
                  pppppppiVar25 = pppppppiStack_108;
                  pppppppiVar26 = pppppppiStack_130;
                  goto LAB_00020e44;
                }
                pppppppiVar3 = (int *******)((int)pppppppiVar22[1] + (int)pppppppiStack_100);
                pppppppiStack_10c = pppppppiVar26;
                pppppppiStack_108 = pppppppiVar25;
                iVar6 = (*(code *)((int *****)ppppppiVar32)[-0x1f74])
                                  ((int)pppppppiVar22[1] + (int)ppppppiVar13);
                pppppppiVar12 = pppppppiVar25;
                pppppppiVar25 = pppppppiStack_108;
                pppppppiVar26 = pppppppiStack_10c;
                pppppppiVar27 = pppppppiVar29;
                ppppppiVar32 = appppppiStack_138[0];
                if (iVar6 != 0) goto LAB_00020f7c;
              }
LAB_00021258:
              pppppppiStack_100 = (int *******)((int)pppppppiVar29 + (int)pppppppiVar25);
              pppppppiVar28 = (int *******)pppppppiVar26[3][(int)pppppppiVar30];
              pppppppiVar30 = pppppppiVar29;
            }
            else {
              pppppppiVar3 = pppppppiVar26 + 0x20;
              pppppppiStack_10c = pppppppiVar28;
              pppppppiStack_108 = pppppppiVar26;
              *(int ********)(puVar37 + 0x10) = pppppppiStack_100;
              pppppppiVar12 = pppppppiVar30;
              pppppppiVar25 = (int *******)FUN_000201f0();
              pppppppiVar26 = pppppppiStack_108;
              pppppppiVar29 = pppppppiStack_100;
              ppppppiVar32 = appppppiStack_138[0];
              if (pppppppiVar25 != (int *******)0x0) goto LAB_00021258;
              pppppppiVar3 = (int *******)((int)*pppppppiStack_108 + (int)pppppppiStack_10c);
              pppppppiVar25 = pppppppiStack_100;
LAB_00020e44:
              pppppppiVar12 = pppppppiVar25;
              pppppppiStack_10c = pppppppiVar26;
              pppppppiStack_108 = pppppppiVar12;
              iVar6 = FUN_0001cc98(pppppppiVar22);
              pppppppiVar25 = pppppppiStack_108;
              ppppppiVar32 = appppppiStack_138[0];
              if (iVar6 == 0) goto LAB_00020f6c;
              pppppppiStack_100 = (int *******)((int)pppppppiStack_108 + 1);
              pppppppiVar28 = (int *******)pppppppiStack_10c[3][(int)pppppppiVar30];
              pppppppiVar30 = (int *******)(pppppppiStack_10c[3] + (int)pppppppiVar30);
            }
            if (ppiVar33 != (int **)0x0) {
              pppppppiVar27 = pppppppiVar30;
              if (((int)pppppppiVar22[0x17] < (int)pppppppiStack_100) ||
                 (pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100],
                 pppppiVar8 == (int *****)0x0)) goto LAB_00020f7c;
              pppppppiVar3 = (int *******)(pppppiVar8 + 3);
              pppppppiVar12 = pppppppiVar28;
              iVar6 = (*(code *)ppppiStack_104)(pppppiVar8[2]);
              ppppppiVar32 = appppppiStack_138[0];
              if (iVar6 == 0) goto LAB_00020f7c;
            }
            uStack_f8 = 0;
          }
          else {
            pppppppiVar28 = (int *******)(pppppppiVar26[5] + (int)pppppppiVar30 * 3);
            pppppiVar8 = pppppppiVar22[0x19][(int)pppppppiStack_100];
            iVar6 = (*(code *)ppppiStack_114)(param_3);
            pppppppiVar3 = pppppppiVar30;
            if (iVar6 == 0) {
LAB_000213ac:
              pppppppiVar30 = pppppppiVar28;
              ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f6c];
              goto LAB_000213b0;
            }
            ppppppiVar13 = pppppppiVar28[1];
            pppppppiVar30 = pppppppiVar28;
            ppppppiVar32 = appppppiStack_138[0];
            if ((int)ppppppiVar13 < 1) goto LAB_00020f6c;
            ppppiVar19 = pppppiVar8[2];
            ppppppiVar4 = pppppppiVar28[2];
            ppppppiVar14 = (int ******)0x0;
            pppppppiVar27 = (int *******)0xffffffff;
            pppppppiVar29 = (int *******)(pppppiVar8 + 3);
            pppppppiVar26 = (int *******)0xffffffff;
            do {
              pppppppiVar3 = pppppppiVar29;
              pppppppiVar30 = (int *******)*ppppppiVar4;
              pppppppiVar12 = pppppppiVar30;
              pppppppiVar29 = pppppppiVar3;
              iVar6 = (*(code *)ppppiStack_104)(ppppiVar19);
              pppppppiVar28 = pppppppiVar26;
              if ((iVar6 != 0) && (pppppppiVar28 = pppppppiVar30, pppppppiVar26 != pppppppiVar27)) {
                pppppppiVar3 = &ppppppiStack_f4;
                pppppppiVar12 = pppppppiVar26;
                iVar6 = (*(code *)ppppiStack_104)(uStack_f8);
                ppppppiVar32 = appppppiStack_138[0];
                if ((iVar6 != 0) || (pppppppiVar28 = pppppppiVar26, ppiVar33 == (int **)0x0)) break;
                pppppppiVar12 = (int *******)*ppiVar33;
                pppppppiVar3 = (int *******)((int)pppppppiVar12 + 1);
                *ppiVar33 = (int *)pppppppiVar3;
                if (pppppppiVar3 == (int *******)ppiVar33[1]) {
                  pppppppiStack_108 = pppppppiStack_100;
                  pppppppiVar3 = (int *******)((int)pppppppiVar3 * 0x30);
                  pppppppiStack_10c = pppppppiVar12;
                  piVar9 = (int *)(*(code *)appppppiStack_138[0][-0x1f86])(ppiVar33[2]);
                  if (piVar9 != (int *)0x0) {
                    ppiVar33[2] = piVar9;
                    ppiVar33[1] = (int *)((int)ppiVar33[1] << 1);
                    pppppppiVar12 = pppppppiStack_10c;
                    pppppppiVar28 = pppppppiStack_108;
                    goto LAB_000210a0;
                  }
                }
                else {
                  piVar9 = ppiVar33[2];
                  pppppppiVar28 = pppppppiStack_100;
LAB_000210a0:
                  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f87];
                  pppppppiStack_108 = (int *******)(piVar9 + (int)pppppppiVar12 * 6);
                  *pppppppiStack_108 = (int ******)pppppppiVar28;
                  pppppppiStack_108[1] = (int ******)pppppppiVar30;
                  ppppppiVar32 = (int ******)(*(code *)ppppiVar19)(pppppppiStack_11c);
                  pppppppiStack_108[2] = ppppppiVar32;
                  pppppppiVar25 = pppppppiStack_108;
                  if (ppppppiVar32 != (int ******)0x0) {
                    pppppppiVar12 = pppppppiStack_11c;
                    (*(code *)appppppiStack_138[0][-0x1f6e])(ppppppiVar32,pppppppiVar7);
                    pppppppiVar3 = param_3;
                    pppppppiVar25 = pppppppiStack_108;
                    iVar6 = FUN_0001ba80(pppppppiStack_108 + 3);
                    pppppppiVar28 = pppppppiVar26;
                    ppppppiVar32 = appppppiStack_138[0];
                    if (iVar6 == 0) break;
                  }
                }
                (*(code *)appppppiStack_138[0][-0x1f6c])(ppppppiStack_f4);
                if (iStack_128 != 0) goto LAB_000214d4;
                goto LAB_0002112c;
              }
              ppppppiVar14 = (int ******)((int)ppppppiVar14 + 1);
              ppppppiVar4 = ppppppiVar4 + 1;
              pppppppiVar26 = pppppppiVar28;
              ppppppiVar32 = appppppiStack_138[0];
            } while (ppppppiVar13 != ppppppiVar14);
          }
LAB_00020ecc:
          if ((int)pppppppiVar28 < 0) goto LAB_00020f60;
          pppppppiVar29 = (int *******)pppppppiVar7[1];
          ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];
          if ((int)pppppppiVar29 < (int)pppppppiStack_100) break;
        } while( true );
      }
      pppppppiVar25 = pppppppiStack_100;
      (*(code *)ppppiVar19)(ppppppiStack_f4);
      if (iStack_128 == 0) {
        uVar10 = 0;
        if (ppiVar33 == (int **)0x0) goto LAB_00020f18;
      }
      else {
        (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);
        if (ppiVar33 == (int **)0x0) {
          uVar10 = 0;
          goto LAB_00020f18;
        }
      }
LAB_00020f00:
      FUN_0001ec78(ppiVar33);
LAB_00020f14:
      uVar10 = 0;
      goto LAB_00020f18;
    }
  }
  uVar10 = 0xc;
  puVar38 = puVar39;
LAB_00020f18:
  ppppiVar19 = (int ****)appppppiStack_138[0][-0x1f77];
  if (iStack_e4 == *piStack_12c) {
    return uVar10;
  }
  pcVar15 = FUN_00021550;
  iVar6 = iStack_e4;
  (*(code *)ppppiVar19)();
  *(int ********)(puVar38 + -0x18) = pppppppiVar30;
  *(int ********)(puVar38 + -0x14) = param_3;
  *(int ********)(puVar38 + -0x1c) = pppppppiVar7;
  *(int ********)(puVar38 + -0x10) = pppppppiVar23;
  *(int *****)(puVar38 + -0x28) = ppppiVar19 + 0x8ae0;
  *(int ********)(puVar38 + -0x20) = pppppppiVar22;
  *(code **)(puVar38 + -4) = pcVar15;
  *(int **)(puVar38 + -8) = piVar34;
  *(int ***)(puVar38 + -0xc) = ppiVar33;
  iVar31 = *(int *)(puVar38 + 0x10);
  *(undefined4 *)(puVar38 + -0x30) = 8;
  *(int *)(puVar38 + -0x34) = iVar31;
  *(int ********)(puVar38 + -0x38) = pppppppiVar25;
  uVar10 = MASKED();
  if (uVar10 != 0) {
    return uVar10;
  }
  iVar11 = *(int *)(iVar6 + 0x6c);
  ppppppiVar14 = *pppppppiVar3;
  ppppppiVar13 = pppppppiVar12[1];
  iVar20 = *(int *)(iVar6 + 0x74);
  ppppppiVar32 = ppppppiVar13;
  if (*(int *)(iVar6 + 0x70) <= iVar11) {
    iVar11 = (**(code **)(*(int *)(puVar38 + -0x28) + -0x7e18))
                       (iVar20,*(int *)(iVar6 + 0x70) * 0x28);
    if (iVar11 == 0) {
      (**(code **)(*(int *)(puVar38 + -0x28) + -0x7db0))(*(undefined4 *)(iVar6 + 0x74));
      return 0xc;
    }
    pcVar15 = *(code **)(*(int *)(puVar38 + -0x28) + -0x7e40);
    *(int *)(iVar6 + 0x74) = iVar11;
    (*pcVar15)(iVar11 + *(int *)(iVar6 + 0x6c) * 0x14,0,*(int *)(iVar6 + 0x70) * 0x14);
    ppppppiVar32 = pppppppiVar12[1];
    iVar11 = *(int *)(iVar6 + 0x6c);
    iVar20 = *(int *)(iVar6 + 0x74);
    *(int *)(iVar6 + 0x70) = *(int *)(iVar6 + 0x70) << 1;
  }
  if ((0 < iVar11) && (iVar24 = iVar20 + iVar11 * 0x14 + -0x14, iVar31 == *(int *)(iVar24 + 4))) {
    *(undefined1 *)(iVar24 + 0x10) = 1;
  }
  puVar21 = (undefined4 *)(iVar20 + iVar11 * 0x14);
  *puVar21 = pppppppiVar25;
  puVar21[1] = iVar31;
  puVar21[2] = ppppppiVar14;
  puVar21[3] = ppppppiVar13;
  *(ushort *)((int)puVar21 + 0x12) = -(ushort)(ppppppiVar14 == ppppppiVar13);
  *(int *)(iVar6 + 0x6c) = iVar11 + 1;
  *(undefined1 *)(puVar21 + 4) = 0;
  if (*(int *)(iVar6 + 0x78) < (int)ppppppiVar13 - (int)ppppppiVar14) {
    *(int *)(iVar6 + 0x78) = (int)ppppppiVar13 - (int)ppppppiVar14;
  }
  uVar10 = FUN_00019470(iVar6,(int)ppppppiVar32 + (iVar31 - (int)*pppppppiVar3));
  return uVar10;
LAB_00020f60:
  ppppiVar19 = ((int *****)ppppppiVar32)[-0x1f6c];
  pppppppiVar25 = pppppppiStack_100;
  if (pppppppiVar28 == (int *******)&SUB_fffffffe) {
LAB_000213b0:
    (*(code *)ppppiVar19)(ppppppiStack_f4);
    if (iStack_128 != 0) {
LAB_000214d4:
      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);
    }
    if (ppiVar33 != (int **)0x0) goto LAB_0002112c;
    uVar10 = 0xc;
    goto LAB_00020f18;
  }
LAB_00020f6c:
  pppppppiVar27 = pppppppiVar30;
  if (ppiVar33 == (int **)0x0) {
    (*(code *)((int *****)ppppppiVar32)[-0x1f6c])(ppppppiStack_f4);
    if (iStack_128 == 0) {
      uVar10 = 1;
    }
    else {
      (*(code *)appppppiStack_138[0][-0x1f6c])(pppppppiStack_124);
      uVar10 = 1;
    }
    goto LAB_00020f18;
  }
LAB_00020f7c:
  ppppiVar19 = ppppiStack_120;
  pppppppiVar12 = (int *******)&pppppppiStack_100;
  pppppppiVar3 = (int *******)(ppiVar33 + 2);
  *(int ********)(puVar37 + 0x14) = param_3;
  *(int ********)(puVar37 + 0x10) = pppppppiVar7;
  pppppppiVar28 =
       (int *******)(*(code *)ppppiVar19)(ppiVar33,pppppppiVar3,pppppppiVar12,pppppppiVar23);
  pppppppiVar30 = pppppppiVar27;
  goto LAB_00020db0;
}

