
reg_errcode_t re_string_reconstruct(re_string_t *pstr,Idx idx,int eflags)

{
  byte bVar1;
  re_token_t token;
  bool bVar2;
  undefined *puVar3;
  uint uVar4;
  uchar uVar16;
  reg_errcode_t rVar5;
  size_t sVar6;
  re_node_set *prVar7;
  int *piVar8;
  uint *puVar9;
  int iVar10;
  re_dfa_t **pprVar11;
  re_dfa_t **pprVar12;
  Idx *pIVar13;
  uint uVar14;
  Idx *pIVar15;
  re_node_set *prVar17;
  re_node_set *prVar18;
  wint_t *pwVar19;
  uchar *puVar20;
  re_dfa_t *prVar21;
  Idx IVar22;
  uchar *puVar23;
  Idx *pIVar24;
  Idx *pIVar25;
  re_node_set *prVar26;
  re_node_set *idx_00;
  int iVar27;
  re_node_set *prVar28;
  int iVar29;
  uint uVar30;
  Idx *pIVar31;
  re_node_set *prVar32;
  wint_t wVar33;
  Idx *pIVar34;
  re_node_set *prVar35;
  uint *puVar36;
  Idx *pIVar37;
  int iVar38;
  re_node_set *set;
  re_dfa_t **pprVar39;
  uint *puVar40;
  undefined4 *puVar41;
  re_string_t *prVar42;
  int *piVar43;
  re_node_set *prVar44;
  re_node_set *unaff_s2;
  re_node_set *unaff_s3;
  int iVar45;
  int iVar46;
  re_node_set *unaff_s7;
  byte *pbVar47;
  int iVar48;
  undefined *puVar49;
  code *pcVar50;
  undefined *puVar51;
  re_node_set *unaff_s8;
  code *pcVar52;
  code *pcVar53;
  undefined4 in_stack_fffffe4c;
  int iStack_184;
  int iStack_178;
  int iStack_154;
  byte *pbStack_150;
  undefined4 uStack_14c;
  int iStack_148;
  re_node_set rStack_144;
  uint uStack_138;
  uint uStack_134;
  uint uStack_130;
  uint uStack_12c;
  uint uStack_128;
  re_node_set rStack_124;
  uint uStack_118;
  uint uStack_114;
  uint uStack_110;
  uint uStack_10c;
  uint uStack_108;
  re_dfa_t *prStack_104;
  uint uStack_100;
  uint uStack_fc;
  uint uStack_f8;
  uint uStack_f4;
  uint uStack_f0;
  uint uStack_ec;
  uint uStack_e8;
  re_dfa_t *prStack_e4;
  re_string_t *prStack_e0;
  int iStack_dc;
  re_node_set *prStack_d8;
  re_node_set *prStack_d4;
  int iStack_d0;
  re_node_set *prStack_cc;
  int iStack_c8;
  re_node_set *prStack_c4;
  re_node_set *prStack_c0;
  code *pcStack_bc;
  undefined *puStack_a8;
  re_node_set *prStack_a0;
  undefined4 *puStack_9c;
  undefined1 auStack_98 [12];
  re_node_set *prStack_8c;
  re_string_t *prStack_88;
  re_node_set *prStack_84;
  re_node_set *prStack_80;
  re_node_set *prStack_7c;
  undefined *puStack_78;
  re_node_set *prStack_74;
  int iStack_70;
  re_node_set *prStack_6c;
  re_node_set *prStack_68;
  code *pcStack_64;
  wchar_t wc2;
  mbstate_t cur_state;
  uchar buf [6];
  
  puVar3 = PTR___stack_chk_guard_0003c314;
  prVar17 = *(re_node_set **)PTR___stack_chk_guard_0003c314;
  prVar28 = (re_node_set *)eflags;
  prVar44 = (re_node_set *)(idx - pstr->raw_mbs_idx);
  if (idx < pstr->raw_mbs_idx) {
    if (1 < pstr->mb_cur_max) {
      (pstr->cur_state).__count = 0;
      (pstr->cur_state).__value.__wch = 0;
    }
    prVar28 = (re_node_set *)0x6;
    if ((eflags & 1U) != 0) {
      prVar28 = (re_node_set *)0x4;
    }
    pstr->len = pstr->raw_len;
    pstr->stop = pstr->raw_stop;
    pstr->valid_len = 0;
    pstr->raw_mbs_idx = 0;
    pstr->valid_raw_len = 0;
    pstr->offsets_needed = '\0';
    pstr->tip_context = (uint)prVar28;
    prVar44 = (re_node_set *)idx;
    if (pstr->mbs_allocated == '\0') {
      pstr->mbs = pstr->raw_mbs;
      goto LAB_0001d010;
    }
    if (idx == 0) goto LAB_0001d128;
LAB_0001d018:
    iVar29 = pstr->valid_raw_len;
    unaff_s2 = (re_node_set *)pstr->valid_len;
    if ((int)prVar44 < iVar29) {
      if (pstr->offsets_needed == '\0') {
        uVar4 = re_string_context_at(pstr,(Idx)((int)&prVar44[-1].elems + 3),eflags);
        prVar28 = (re_node_set *)((int)unaff_s2 - (int)prVar44);
        pstr->tip_context = uVar4;
        if (1 < pstr->mb_cur_max) {
          (*(code *)PTR_memmove_0003c324)(pstr->wcs,pstr->wcs + (int)prVar44,(int)prVar28 * 4);
          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);
        }
        uVar16 = pstr->mbs_allocated;
        if (uVar16 != '\0') {
          (*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44);
          uVar16 = pstr->mbs_allocated;
          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);
        }
        prVar32 = (re_node_set *)pstr->mb_cur_max;
        prVar18 = (re_node_set *)(pstr->len - (int)prVar44);
        pstr->valid_len = (Idx)prVar28;
        IVar22 = pstr->stop - (int)prVar44;
        pstr->valid_raw_len = pstr->valid_raw_len - (int)prVar44;
      }
      else {
        unaff_s7 = (re_node_set *)pstr->offsets;
        puVar23 = (uchar *)0x0;
        prVar28 = unaff_s2;
        do {
          unaff_s3 = (re_node_set *)((int)(puVar23 + (int)prVar28) / 2);
          iVar29 = (&unaff_s7->alloc)[(int)unaff_s3];
          prVar18 = unaff_s3;
          if ((iVar29 <= (int)prVar44) &&
             (puVar23 = (uchar *)((int)&unaff_s3->alloc + 1), prVar18 = prVar28,
             (int)prVar44 <= iVar29)) goto LAB_0001d460;
          prVar28 = prVar18;
        } while ((int)puVar23 < (int)prVar18);
        if (iVar29 < (int)prVar44) {
          prVar28 = unaff_s3;
          unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);
        }
        else {
LAB_0001d460:
          prVar28 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);
        }
        uVar4 = re_string_context_at(pstr,(Idx)prVar28,eflags);
        pstr->tip_context = uVar4;
        if ((((int)prVar44 < (int)unaff_s2) && (eflags = (int)prVar44 * 4, prVar44 == unaff_s3)) &&
           ((re_node_set *)(&unaff_s7->alloc)[(int)prVar44] == prVar44)) {
          (*(code *)PTR_memmove_0003c324)
                    (pstr->wcs,pstr->wcs + (int)prVar44,((int)unaff_s2 - (int)prVar44) * 4);
          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);
          (*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44);
          iVar29 = pstr->valid_len - (int)prVar44;
          pstr->valid_len = iVar29;
          pstr->valid_raw_len = pstr->valid_raw_len - (int)prVar44;
          if (0 < iVar29) {
            iVar29 = 0;
            prVar28 = (re_node_set *)((int)prVar44 * -4);
            piVar8 = pstr->offsets + (int)prVar44;
            do {
              iVar29 = iVar29 + 1;
              piVar8[-(int)prVar44] = *piVar8 - (int)prVar44;
              piVar8 = piVar8 + 1;
            } while (iVar29 < pstr->valid_len);
          }
          prVar32 = (re_node_set *)pstr->mb_cur_max;
          uVar16 = pstr->mbs_allocated;
          prVar18 = (re_node_set *)(pstr->len - (int)prVar44);
          IVar22 = pstr->stop - (int)prVar44;
        }
        else {
          pstr->offsets_needed = '\0';
          prVar18 = (re_node_set *)(pstr->raw_len - idx);
          IVar22 = pstr->raw_stop - idx;
          pstr->len = (Idx)((int)&prVar44->alloc + (int)&prVar18->alloc);
          pstr->stop = (Idx)(IVar22 + (int)prVar44);
          if ((0 < (int)unaff_s3) &&
             (prVar44 == *(re_node_set **)((int)unaff_s7 + (int)unaff_s3 * 4 + -4))) {
            pIVar24 = &unaff_s7->alloc + (int)unaff_s3;
            do {
              unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);
              if (unaff_s3 == (re_node_set *)0x0) break;
              pIVar15 = pIVar24 + -2;
              pIVar24 = pIVar24 + -1;
            } while ((re_node_set *)*pIVar15 == prVar44);
          }
          iVar29 = (int)unaff_s3 * 4;
          if ((int)unaff_s3 < (int)unaff_s2) {
            pwVar19 = pstr->wcs + (int)unaff_s3;
            wVar33 = *pwVar19;
            while (wVar33 == 0xffffffff) {
              unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);
              pwVar19 = pwVar19 + 1;
              if (unaff_s3 == unaff_s2) goto LAB_0001d444;
              iVar29 = (int)unaff_s3 * 4;
              wVar33 = *pwVar19;
            }
LAB_0001d4ac:
            unaff_s7 = (re_node_set *)((int)&unaff_s7->alloc + iVar29);
            prVar28 = (re_node_set *)(unaff_s7->alloc - (int)prVar44);
            pstr->valid_len = (Idx)prVar28;
            if (prVar28 != (re_node_set *)0x0) {
              if (0 < (int)prVar28) {
                pwVar19 = pstr->wcs;
                iVar29 = 0;
                do {
                  *pwVar19 = 0xffffffff;
                  iVar29 = iVar29 + 1;
                  pwVar19 = pwVar19 + 1;
                } while (iVar29 < pstr->valid_len);
              }
              (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);
              prVar28 = (re_node_set *)pstr->valid_len;
              prVar18 = (re_node_set *)(pstr->len - (int)prVar44);
              IVar22 = pstr->stop - (int)prVar44;
            }
          }
          else {
            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;
LAB_0001d444:
            prVar28 = (re_node_set *)0x0;
            pstr->valid_len = 0;
          }
          prVar32 = (re_node_set *)pstr->mb_cur_max;
          uVar16 = pstr->mbs_allocated;
          pstr->valid_raw_len = (Idx)prVar28;
        }
      }
LAB_0001d090:
      prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);
      if (uVar16 == '\0') {
LAB_0001d098:
        prVar44 = (re_node_set *)(pstr->mbs + (int)prVar44);
        pstr->mbs = (uchar *)prVar44;
      }
      pstr->raw_mbs_idx = idx;
      pstr->len = (Idx)prVar18;
      pstr->stop = IVar22;
      if (prVar26 == (re_node_set *)0x0) goto LAB_0001d0b4;
LAB_0001d148:
      uVar16 = pstr->mbs_allocated;
    }
    else {
      if (pstr->offsets_needed != '\0') {
        pstr->offsets_needed = '\0';
        pstr->len = (Idx)((pstr->raw_len - idx) + (int)prVar44);
        pstr->stop = (Idx)((pstr->raw_stop - idx) + (int)prVar44);
      }
      prVar32 = (re_node_set *)pstr->mb_cur_max;
      unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;
      prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);
      pstr->valid_len = 0;
      if (prVar26 == (re_node_set *)0x0) {
        if (pstr->is_utf8 == '\0') {
LAB_0001d228:
          puVar23 = (uchar *)((int)&unaff_s8->alloc + iVar29);
          if ((int)puVar23 < idx) {
            unaff_s7 = (re_node_set *)&wc2;
            do {
              cur_state.__count = (pstr->cur_state).__count;
              cur_state.__value = (pstr->cur_state).__value;
              prVar18 = (re_node_set *)(pstr->raw_len - (int)puVar23);
              prVar28 = prVar18;
              sVar6 = rpl_mbrtowc((wchar_t *)unaff_s7,(char *)(puVar23 + (int)pstr->raw_mbs),
                                  (size_t)prVar18,&pstr->cur_state);
              unaff_s3 = (re_node_set *)wc2;
              if (0xfffffffc < sVar6 - 1) {
                if ((sVar6 == 0) || (prVar18 == (re_node_set *)0x0)) {
                  unaff_s3 = (re_node_set *)0x0;
                }
                else {
                  unaff_s3 = (re_node_set *)(uint)puVar23[(int)pstr->raw_mbs];
                }
                sVar6 = 1;
                (pstr->cur_state).__count = cur_state.__count;
                (pstr->cur_state).__value = cur_state.__value;
              }
              puVar23 = puVar23 + sVar6;
            } while ((int)puVar23 < idx);
            unaff_s8 = (re_node_set *)(puVar23 + -idx);
            pstr->valid_len = (Idx)unaff_s8;
            if (unaff_s3 != (re_node_set *)0xffffffff) goto LAB_0001d2a4;
          }
          else {
            unaff_s8 = (re_node_set *)(puVar23 + -idx);
            pstr->valid_len = (Idx)unaff_s8;
          }
          prVar28 = (re_node_set *)eflags;
          uVar4 = re_string_context_at(pstr,(Idx)((int)&unaff_s2[-1].elems + 3),eflags);
          pstr->tip_context = uVar4;
        }
        else {
          prVar18 = (re_node_set *)pstr->raw_mbs;
          unaff_s7 = (re_node_set *)((int)&unaff_s8->alloc + (int)&prVar18->alloc);
          prVar28 = (re_node_set *)((int)unaff_s7 + ((int)prVar44 - (int)prVar32));
          unaff_s3 = (re_node_set *)
                     ((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)&unaff_s7->alloc);
          if (prVar28 <= prVar18) {
            prVar28 = prVar18;
          }
          if (unaff_s3 < prVar28) goto LAB_0001d228;
          bVar1 = *(byte *)&unaff_s3->alloc;
          while ((bVar1 & 0xc0) == 0x80) {
            unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);
            if (unaff_s3 < prVar28) goto LAB_0001d228;
            bVar1 = *(byte *)&unaff_s3->alloc;
          }
          puVar23 = pstr->trans;
          prVar28 = (re_node_set *)((int)unaff_s7 + (pstr->len - (int)unaff_s3));
          prVar18 = unaff_s3;
          if (puVar23 != (uchar *)0x0) {
            prVar26 = (re_node_set *)0x6;
            if ((int)prVar28 < 7) {
              prVar26 = prVar28;
            }
            prVar18 = (re_node_set *)buf;
            if (0 < (int)prVar28) {
              puVar20 = (uchar *)((int)&prVar26->alloc + (int)&unaff_s3->alloc);
              prVar26 = (re_node_set *)((int)&prVar26->alloc + (int)&prVar18->alloc);
              do {
                pbVar47 = puVar20 + -1;
                prVar26 = (re_node_set *)((int)&prVar26[-1].elems + 3);
                puVar20 = puVar20 + -1;
                *(uchar *)&prVar26->alloc = puVar23[*pbVar47];
              } while (prVar18 != prVar26);
            }
          }
          cur_state.__count = 0;
          cur_state.__value.__wch = 0;
          puVar23 = (uchar *)rpl_mbrtowc(&wc2,(char *)prVar18,(size_t)prVar28,&cur_state);
          puVar20 = (uchar *)((int)prVar44 + ((int)unaff_s7 - (int)unaff_s3));
          if ((puVar23 < puVar20) || ((uchar *)0xfffffffd < puVar23)) {
            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;
            iVar29 = pstr->valid_raw_len;
            goto LAB_0001d228;
          }
          unaff_s8 = (re_node_set *)(puVar23 + -(int)puVar20);
          (pstr->cur_state).__count = 0;
          (pstr->cur_state).__value.__wch = 0;
          pstr->valid_len = (Idx)unaff_s8;
          unaff_s3 = (re_node_set *)wc2;
          if (wc2 == -1) {
            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;
            iVar29 = pstr->valid_raw_len;
            goto LAB_0001d228;
          }
LAB_0001d2a4:
          if ((pstr->word_ops_used == '\0') ||
             ((iVar29 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar29 == 0 &&
              (unaff_s3 != (re_node_set *)0x5f)))) {
            uVar4 = 2;
            if (unaff_s3 == (re_node_set *)0xa) {
              if (pstr->newline_anchor == '\0') {
                uVar4 = 0;
              }
            }
            else {
              uVar4 = 0;
            }
          }
          else {
            uVar4 = 1;
          }
          pstr->tip_context = uVar4;
        }
        prVar18 = prVar28;
        if (unaff_s8 == (re_node_set *)0x0) {
LAB_0001d2cc:
          uVar16 = pstr->mbs_allocated;
          prVar28 = prVar18;
        }
        else {
          iVar29 = 0;
          prVar18 = unaff_s8;
          if (0 < (int)unaff_s8) {
            pwVar19 = pstr->wcs;
            do {
              *pwVar19 = 0xffffffff;
              iVar29 = iVar29 + 1;
              prVar18 = (re_node_set *)pstr->valid_len;
              pwVar19 = pwVar19 + 1;
            } while (iVar29 < (int)prVar18);
          }
          if (pstr->mbs_allocated != '\0') {
            (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);
            unaff_s8 = (re_node_set *)pstr->valid_len;
            goto LAB_0001d2cc;
          }
          unaff_s8 = (re_node_set *)pstr->valid_len;
          uVar16 = '\0';
        }
        prVar32 = (re_node_set *)pstr->mb_cur_max;
        pstr->valid_raw_len = (Idx)unaff_s8;
        prVar18 = (re_node_set *)(pstr->len - (int)prVar44);
        IVar22 = pstr->stop - (int)prVar44;
        goto LAB_0001d090;
      }
      uVar4 = (uint)(byte)((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)pstr->raw_mbs)
                          [(int)unaff_s8];
      pstr->valid_raw_len = 0;
      if (pstr->trans != (uchar *)0x0) {
        uVar4 = (uint)pstr->trans[uVar4];
      }
      prVar28 = (re_node_set *)(pstr->word_char[(int)uVar4 >> 5] >> (uVar4 & 0x1f) & 1);
      if (((prVar28 == (re_node_set *)0x0) && (uVar4 == 10)) &&
         (prVar28 = (re_node_set *)0x2, pstr->newline_anchor == '\0')) {
        prVar28 = (re_node_set *)0x0;
      }
      uVar16 = pstr->mbs_allocated;
      pstr->tip_context = (uint)prVar28;
      prVar18 = (re_node_set *)(pstr->len - (int)prVar44);
      IVar22 = pstr->stop - (int)prVar44;
      if (uVar16 == '\0') goto LAB_0001d098;
      pstr->raw_mbs_idx = idx;
      pstr->len = (Idx)prVar18;
      pstr->stop = IVar22;
    }
    if (uVar16 == '\0') {
      pstr->valid_len = (Idx)prVar18;
    }
    else if (pstr->icase == '\0') {
      prVar26 = (re_node_set *)pstr->trans;
      if (prVar26 != (re_node_set *)0x0) {
        prVar28 = (re_node_set *)pstr->bufs_len;
        prVar35 = (re_node_set *)pstr->valid_len;
        if ((int)prVar28 <= (int)prVar18) {
          prVar18 = prVar28;
        }
        if ((int)prVar35 < (int)prVar18) {
          while( true ) {
            prVar28 = (re_node_set *)(pstr->mbs + (int)prVar35);
            idx = (int)&prVar35->alloc + (int)(pstr->raw_mbs + idx);
            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);
            prVar26 = (re_node_set *)
                      ((int)&prVar26->alloc + (uint)*(byte *)&((re_node_set *)idx)->alloc);
            *(uchar *)&prVar28->alloc = *(uchar *)&prVar26->alloc;
            if (prVar18 == prVar35) break;
            idx = pstr->raw_mbs_idx;
            prVar26 = (re_node_set *)pstr->trans;
          }
          pstr->valid_len = (Idx)prVar18;
          pstr->valid_raw_len = (Idx)prVar18;
        }
        else {
          pstr->valid_len = (Idx)prVar35;
          pstr->valid_raw_len = (Idx)prVar35;
        }
      }
    }
    else {
      build_upper_buffer(pstr);
    }
LAB_0001d0dc:
    rVar5 = _REG_NOERROR;
    pstr->cur_idx = 0;
  }
  else {
LAB_0001d010:
    if (prVar44 != (re_node_set *)0x0) goto LAB_0001d018;
LAB_0001d128:
    prVar32 = (re_node_set *)pstr->mb_cur_max;
    prVar18 = (re_node_set *)pstr->len;
    prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);
    pstr->raw_mbs_idx = idx;
    pstr->len = (Idx)prVar18;
    pstr->stop = pstr->stop;
    if (prVar26 != (re_node_set *)0x0) goto LAB_0001d148;
LAB_0001d0b4:
    if (pstr->icase == '\0') {
      build_wcs_buffer(pstr);
      goto LAB_0001d0dc;
    }
    rVar5 = build_wcs_upper_buffer(pstr);
    if (rVar5 == _REG_NOERROR) goto LAB_0001d0dc;
  }
  if (prVar17 == *(re_node_set **)puVar3) {
    return rVar5;
  }
  pcVar52 = sub_epsilon_src_nodes;
  puVar49 = PTR___stack_chk_fail_0003c2f4;
  (*(code *)PTR___stack_chk_fail_0003c2f4)();
  puVar51 = puVar49 + 0x26830;
  puStack_9c = *(undefined4 **)(puVar49 + 0x1ea74);
  auStack_98._0_4_ = 0;
  auStack_98._4_4_ = (re_node_set *)0x0;
  auStack_98._8_4_ = (Idx *)0x0;
  iVar29 = prVar17[2].nelem + (int)prVar26 * 0xc;
  puStack_78 = puVar3;
  prStack_8c = (re_node_set *)*puStack_9c;
  prVar35 = *(re_node_set **)(iVar29 + 4);
  iVar45 = *(int *)(puVar49 + 0x1e948);
  prVar18 = prVar26;
  puStack_a8 = puVar51;
  prStack_a0 = prVar32;
  prStack_88 = pstr;
  prStack_84 = prVar44;
  prStack_80 = unaff_s2;
  prStack_7c = unaff_s3;
  prStack_74 = (re_node_set *)idx;
  iStack_70 = eflags;
  prStack_6c = unaff_s7;
  prStack_68 = unaff_s8;
  pcStack_64 = pcVar52;
  if (0 < (int)prVar35) {
    prVar32 = (re_node_set *)auStack_98;
    prVar42 = (re_string_t *)0x0;
    prVar44 = (re_node_set *)(iVar29 + 8);
    iVar45 = iVar45 + -0x5d30;
    iVar46 = *(int *)(puVar49 + 0x1e948) + -20000;
    do {
      prVar7 = *(re_node_set **)(*(int *)(iVar29 + 8) + (int)prVar42 * 4);
      if ((prVar26 != prVar7) && ((*(byte *)(prVar17->alloc + (int)prVar7 * 8 + 4) & 8) != 0)) {
        iVar38 = (int)prVar7 * 0xc;
        pIVar24 = prVar17[1].elems + (int)prVar7 * 3;
        puVar41 = (undefined4 *)pIVar24[2];
        prVar7 = (re_node_set *)*puVar41;
        prVar18 = prVar44;
        IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7);
        if (pIVar24[1] < 2) {
          puVar51 = puStack_a8;
          if (IVar22 == 0) {
            prVar18 = (re_node_set *)&prVar28->elems;
            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);
            puVar51 = puStack_a8;
            if (IVar22 != 0) goto LAB_0001d960;
          }
        }
        else if ((IVar22 == 0) &&
                (IVar22 = re_node_set_contains
                                    ((re_node_set *)prVar28->nelem,(Idx)&prVar28->elems,prVar7),
                IVar22 != 0)) {
LAB_0001d960:
          iVar27 = prVar17[2].nelem;
LAB_0001d964:
          prVar18 = prStack_a0;
          prVar35 = (re_node_set *)
                    re_node_set_add_intersect(prVar32,prStack_a0,(re_node_set *)(iVar27 + iVar38));
          if (prVar35 != (re_node_set *)0x0) {
            prStack_a0 = prVar35;
            (**(code **)(puStack_a8 + -0x7db0))(auStack_98._8_4_);
            prVar35 = prStack_a0;
            goto LAB_0001db20;
          }
          prVar35 = *(re_node_set **)(iVar29 + 4);
          puVar51 = puStack_a8;
        }
        else {
          prVar7 = (re_node_set *)puVar41[1];
          prVar18 = prVar44;
          puVar51 = puStack_a8;
          if ((0 < (int)prVar7) &&
             (IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7), puVar51 = puStack_a8,
             IVar22 == 0)) {
            prVar18 = (re_node_set *)&prVar28->elems;
            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);
            puVar51 = puStack_a8;
            if (IVar22 != 0) {
              iVar27 = prVar17[2].nelem;
              goto LAB_0001d964;
            }
          }
        }
      }
      prVar42 = (re_string_t *)((int)&prVar42->raw_mbs + 1);
    } while ((int)prVar42 < (int)prVar35);
    pstr = prVar42;
    unaff_s2 = prVar26;
    unaff_s3 = prVar28;
    idx = (Idx)prVar44;
    eflags = iVar46;
    unaff_s7 = prVar32;
    unaff_s8 = prVar17;
    if (0 < (int)prVar35) {
      iVar46 = 0;
      prVar26 = (re_node_set *)&prVar28->nelem;
      prVar17 = (re_node_set *)&prVar28->elems;
      prVar44 = (re_node_set *)(auStack_98 + 8);
      do {
        prVar18 = *(re_node_set **)(*(int *)(iVar29 + 8) + iVar46 * 4);
        prVar7 = prVar44;
        IVar22 = re_node_set_contains((re_node_set *)auStack_98._4_4_,(Idx)prVar44,prVar18);
        prVar32 = prVar17;
        if (IVar22 == 0) {
          set = (re_node_set *)prVar28->nelem;
          idx_00 = prVar17;
          IVar22 = re_node_set_contains(set,(Idx)prVar17,prVar18);
          prVar18 = (re_node_set *)(IVar22 + -1);
          prVar44 = prVar17;
          prVar32 = idx_00;
          if ((-1 < (int)prVar18) && ((int)prVar18 < (int)set)) {
            prVar28->nelem = (Idx)((int)&set[-1].elems + 3);
            re_node_set_remove_at(prVar26,(Idx)idx_00,prVar18);
            prVar35 = *(re_node_set **)(iVar29 + 4);
            prVar44 = idx_00;
          }
        }
        iVar46 = iVar46 + 1;
        prVar18 = prVar44;
        prVar17 = prVar32;
        prVar44 = prVar7;
        puVar51 = puStack_a8;
      } while (iVar46 < (int)prVar35);
    }
  }
  (**(code **)(puVar51 + -0x7db0))(auStack_98._8_4_);
  prVar35 = (re_node_set *)0x0;
  prVar42 = pstr;
  prVar26 = unaff_s2;
  prVar28 = unaff_s3;
  prVar44 = (re_node_set *)idx;
  iVar46 = eflags;
  prVar32 = unaff_s7;
  prVar17 = unaff_s8;
LAB_0001db20:
  if (prStack_8c == (re_node_set *)*puStack_9c) {
    return (reg_errcode_t)prVar35;
  }
  pcVar52 = *(code **)(puStack_a8 + -0x7ddc);
  pcVar53 = build_trtable;
  prVar7 = prStack_8c;
  (*pcVar52)();
  piVar8 = *(int **)(pcVar52 + 0x1e784);
  prStack_e4 = (re_dfa_t *)*piVar8;
  prVar35 = prVar18;
  prStack_e0 = prVar42;
  iStack_dc = iVar29;
  prStack_d8 = prVar26;
  prStack_d4 = prVar28;
  iStack_d0 = iVar45;
  prStack_cc = prVar44;
  iStack_c8 = iVar46;
  prStack_c4 = prVar32;
  prStack_c0 = prVar17;
  pcStack_bc = pcVar53;
  iVar29 = (**(code **)(pcVar52 + 0x1e724))(0x2c00);
  if (iVar29 == 0) goto LAB_0001dffc;
  pIVar24 = prVar18->elems;
  prVar18[3].elems = (Idx *)0x0;
  puVar9 = (uint *)(iVar29 + 0xc00);
  prVar18[4].alloc = 0;
  rStack_144.alloc = 0;
  rStack_144.nelem = 0;
  rStack_144.elems = (Idx *)0x0;
  uStack_138 = 0;
  uStack_134 = 0;
  uStack_130 = 0;
  uStack_12c = 0;
  uStack_128 = 0;
  if (0 < (int)pIVar24) {
    iVar45 = *(int *)(pcVar52 + 0x1e658);
    iStack_184 = 0;
    iVar46 = *(int *)(pcVar52 + 0x1e658);
    prVar28 = (re_node_set *)0x0;
LAB_0001dc74:
    iVar38 = iStack_184 * 4;
    pbVar47 = (byte *)(prVar7->alloc + *(int *)(prVar18[1].alloc + iVar38) * 8);
    bVar1 = pbVar47[4];
    uVar4 = (uint)(*(int *)(pbVar47 + 4) << 8) >> 0x16;
    if (bVar1 == 1) {
      pIVar15 = &rStack_144.alloc + ((int)(uint)*pbVar47 >> 5);
      prVar35 = (re_node_set *)(*pIVar15 | 1 << (*pbVar47 & 0x1f));
      *pIVar15 = (Idx)prVar35;
LAB_0001e060:
      IVar22 = rStack_144.alloc;
      if (uVar4 == 0) goto LAB_0001e15c;
      if ((uVar4 & 0x20) == 0) {
        if ((uVar4 & 0x80) != 0) goto LAB_0001e428;
LAB_0001e07c:
        if ((uVar4 & 4) != 0) {
          if (bVar1 == 1) {
            if ((*(uint *)(pbVar47 + 4) & 0x200) == 0) goto LAB_0001e428;
            pIVar15 = prVar7[7].elems;
          }
          else {
            pIVar15 = prVar7[7].elems;
          }
          if ((int)pIVar15 < 2) {
            prVar17 = prVar7 + 8;
            uVar30 = 0;
            prVar44 = &rStack_144;
            do {
              pIVar13 = &prVar44->nelem;
              pIVar15 = &prVar17->alloc;
              prVar17 = (re_node_set *)&prVar17->nelem;
              prVar35 = (re_node_set *)(prVar44->alloc & *pIVar15);
              prVar44->alloc = (Idx)prVar35;
              uVar30 = uVar30 | (uint)prVar35;
              prVar44 = (re_node_set *)pIVar13;
            } while (&rStack_124 != (re_node_set *)pIVar13);
          }
          else {
            puVar40 = (uint *)prVar7[5].alloc;
            prVar17 = prVar7 + 8;
            uVar30 = 0;
            prVar44 = &rStack_144;
            do {
              prVar35 = (re_node_set *)&prVar44->nelem;
              uVar14 = *puVar40;
              pIVar15 = &prVar17->alloc;
              puVar40 = puVar40 + 1;
              prVar17 = (re_node_set *)&prVar17->nelem;
              uVar14 = (~uVar14 | *pIVar15) & prVar44->alloc;
              prVar44->alloc = uVar14;
              uVar30 = uVar30 | uVar14;
              prVar44 = prVar35;
            } while (&rStack_124 != prVar35);
          }
          if (uVar30 == 0) goto LAB_0001dcc8;
        }
        if ((uVar4 & 8) == 0) {
LAB_0001e15c:
          prVar44 = (re_node_set *)0x0;
          if (0 < (int)prVar28) {
            prVar44 = (re_node_set *)0x0;
            puVar40 = puVar9;
            do {
              prVar35 = (re_node_set *)((int)prVar44 * 0x20);
              if ((bVar1 != 1) ||
                 (((puVar9 + ((int)(uint)*pbVar47 >> 5))[(int)prVar44 * 8] >> (*pbVar47 & 0x1f) & 1)
                  != 0)) {
                uVar4 = 0;
                prVar17 = &rStack_144;
                prVar26 = &rStack_124;
                puVar36 = puVar40;
                do {
                  pIVar24 = &prVar17->nelem;
                  uVar30 = *puVar36;
                  puVar36 = puVar36 + 1;
                  uVar30 = prVar17->alloc & uVar30;
                  prVar26->alloc = uVar30;
                  uVar4 = uVar4 | uVar30;
                  prVar17 = (re_node_set *)pIVar24;
                  prVar26 = (re_node_set *)&prVar26->nelem;
                } while (&rStack_124 != (re_node_set *)pIVar24);
                prVar35 = &rStack_144;
                if (uVar4 != 0) {
                  uVar30 = 0;
                  uVar4 = 0;
                  prVar17 = &rStack_144;
                  puVar36 = puVar40;
                  pprVar39 = &prStack_104;
                  do {
                    uVar14 = *puVar36;
                    puVar36 = puVar36 + 1;
                    prVar21 = (re_dfa_t *)(~prVar17->alloc & uVar14);
                    uVar14 = ~uVar14 & prVar17->alloc;
                    *pprVar39 = prVar21;
                    prVar17->alloc = uVar14;
                    uVar4 = uVar4 | (uint)prVar21;
                    uVar30 = uVar30 | uVar14;
                    prVar17 = (re_node_set *)&prVar17->nelem;
                    pprVar39 = pprVar39 + 1;
                  } while (puVar40 + 8 != puVar36);
                  prVar17 = (re_node_set *)(iVar29 + (int)prVar44 * 0xc);
                  if (uVar4 != 0) {
                    iStack_178 = (int)prVar28 * 2;
                    puVar36 = puVar9 + (int)prVar28 * 8;
                    *puVar36 = (uint)prStack_104;
                    puVar36[1] = uStack_100;
                    puVar36[2] = uStack_fc;
                    puVar36[3] = uStack_f8;
                    puVar36[4] = uStack_f4;
                    puVar36[5] = uStack_f0;
                    puVar36[6] = uStack_ec;
                    puVar36[7] = uStack_e8;
                    puVar40[1] = rStack_124.nelem;
                    puVar40[2] = (uint)rStack_124.elems;
                    *puVar40 = rStack_124.alloc;
                    puVar40[3] = uStack_118;
                    puVar40[4] = uStack_114;
                    puVar40[5] = uStack_110;
                    puVar40[6] = uStack_10c;
                    puVar40[7] = uStack_108;
                    prVar35 = prVar17;
                    iVar27 = (*(code *)(iVar46 + -0x4580))(iVar29 + (int)prVar28 * 0xc);
                    if (iVar27 != 0) goto LAB_0001e458;
                    prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);
                  }
                  prVar35 = *(re_node_set **)(prVar18[1].alloc + iVar38);
                  iVar27 = (*(code *)(iVar45 + -0x7b38))(prVar17);
                  if (iVar27 == 0) {
                    iStack_178 = (int)prVar28 << 1;
                    goto LAB_0001e458;
                  }
                  if (uVar30 == 0) break;
                }
              }
              puVar40 = puVar40 + 8;
              prVar44 = (re_node_set *)((int)&prVar44->alloc + 1);
            } while ((int)prVar44 < (int)prVar28);
          }
          iStack_178 = (int)prVar28 * 2;
          if (prVar28 == prVar44) {
            iVar27 = prVar18[1].alloc;
            pcVar53 = *(code **)(pcVar52 + 0x1e724);
            puVar40 = puVar9 + (int)prVar28 * 8;
            *puVar40 = rStack_144.alloc;
            prVar35 = (re_node_set *)(iVar27 + iVar38);
            puVar40[1] = rStack_144.nelem;
            puVar41 = (undefined4 *)(iVar29 + (int)prVar28 * 0xc);
            puVar40[2] = (uint)rStack_144.elems;
            puVar40[3] = uStack_138;
            puVar40[4] = uStack_134;
            puVar40[5] = uStack_130;
            puVar40[6] = uStack_12c;
            puVar40[7] = uStack_128;
            IVar22 = prVar35->alloc;
            *puVar41 = 1;
            puVar41[1] = 1;
            pIVar15 = (Idx *)(*pcVar53)(4);
            puVar41[2] = pIVar15;
            if (pIVar15 != (Idx *)0x0) {
              pIVar24 = prVar18->elems;
              prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);
              *pIVar15 = IVar22;
              rStack_144.alloc = 0;
              rStack_144.nelem = 0;
              rStack_144.elems = (Idx *)0x0;
              uStack_138 = 0;
              uStack_134 = 0;
              uStack_130 = 0;
              uStack_12c = 0;
              uStack_128 = 0;
              goto LAB_0001dcc8;
            }
            puVar41[1] = 0;
            *puVar41 = 0;
            if (prVar28 == (re_node_set *)0x0) {
              (**(code **)(pcVar52 + 0x1e790))(iVar29);
            }
            else {
LAB_0001e458:
              iVar45 = iVar29;
              do {
                iVar46 = iVar45 + 0xc;
                (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));
                iVar45 = iVar46;
              } while ((int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29 != iVar46);
              (**(code **)(pcVar52 + 0x1e790))(iVar29);
            }
            goto LAB_0001dffc;
          }
          pIVar24 = prVar18->elems;
          goto LAB_0001dcc8;
        }
        if ((bVar1 != 1) || ((*(uint *)(pbVar47 + 4) & 0x200) == 0)) {
          prVar44 = prVar7 + 8;
          if ((int)prVar7[7].elems < 2) {
            prVar35 = (re_node_set *)0x0;
            prVar17 = &rStack_144;
            do {
              pIVar13 = &prVar17->nelem;
              pIVar15 = &prVar44->alloc;
              prVar44 = (re_node_set *)&prVar44->nelem;
              uVar4 = ~*pIVar15 & prVar17->alloc;
              prVar17->alloc = uVar4;
              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);
              prVar17 = (re_node_set *)pIVar13;
            } while ((re_node_set *)pIVar13 != &rStack_124);
          }
          else {
            puVar40 = (uint *)prVar7[5].alloc;
            prVar35 = (re_node_set *)0x0;
            prVar17 = &rStack_144;
            do {
              pIVar13 = &prVar17->nelem;
              uVar4 = *puVar40;
              pIVar15 = &prVar44->alloc;
              puVar40 = puVar40 + 1;
              prVar44 = (re_node_set *)&prVar44->nelem;
              uVar4 = ~(*pIVar15 & uVar4) & prVar17->alloc;
              prVar17->alloc = uVar4;
              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);
              prVar17 = (re_node_set *)pIVar13;
            } while (&rStack_124 != (re_node_set *)pIVar13);
          }
          if (prVar35 == (re_node_set *)0x0) goto LAB_0001dcc8;
          goto LAB_0001e15c;
        }
        rStack_144.alloc = 0;
      }
      else {
        rStack_144.nelem = 0;
        rStack_144.alloc = 0;
        rStack_144.elems = (Idx *)0x0;
        uStack_138 = 0;
        uStack_134 = 0;
        uStack_130 = 0;
        uStack_12c = 0;
        uStack_128 = 0;
        if ((IVar22 & 0x400U) == 0) goto LAB_0001dcc8;
        rStack_144.alloc = 0x400;
        if ((uVar4 & 0x80) == 0) goto LAB_0001e07c;
LAB_0001e428:
        rStack_144.alloc = 0;
      }
      rStack_144.alloc = 0;
      rStack_144.nelem = 0;
      rStack_144.elems = (Idx *)0x0;
      uStack_138 = 0;
      uStack_134 = 0;
      uStack_130 = 0;
      uStack_12c = 0;
      uStack_128 = 0;
    }
    else {
      if (bVar1 == 3) {
        puVar40 = *(uint **)pbVar47;
        prVar44 = &rStack_144;
        do {
          pIVar15 = &prVar44->nelem;
          uVar30 = *puVar40;
          puVar40 = puVar40 + 1;
          prVar35 = (re_node_set *)(prVar44->alloc | uVar30);
          prVar44->alloc = (Idx)prVar35;
          prVar44 = (re_node_set *)pIVar15;
        } while (&rStack_124 != (re_node_set *)pIVar15);
        goto LAB_0001e060;
      }
      if (bVar1 == 5) {
        if ((int)prVar7[7].elems < 2) {
          rStack_144.alloc = -1;
          rStack_144.nelem = 0xffffffff;
          rStack_144.elems = (Idx *)0xffffffff;
          uStack_138 = 0xffffffff;
          uStack_134 = 0xffffffff;
          uStack_130 = 0xffffffff;
          uStack_12c = 0xffffffff;
          uStack_128 = 0xffffffff;
        }
        else {
          puVar40 = (uint *)prVar7[5].alloc;
          prVar44 = &rStack_144;
          do {
            pIVar15 = &prVar44->nelem;
            uVar30 = *puVar40;
            puVar40 = puVar40 + 1;
            prVar44->alloc = prVar44->alloc | uVar30;
            prVar44 = (re_node_set *)pIVar15;
          } while (&rStack_124 != (re_node_set *)pIVar15);
        }
        pIVar15 = prVar7[10].elems;
joined_r0x0001e3b8:
        if (((uint)pIVar15 & 0x40) == 0) {
          rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffbff);
        }
        prVar35 = (re_node_set *)rStack_144.alloc;
        if (((uint)pIVar15 & 0x80) != 0) {
          prVar35 = (re_node_set *)&SUB_fffffffe;
          rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffffe);
        }
        goto LAB_0001e060;
      }
      prVar35 = (re_node_set *)0xffffffff;
      if (bVar1 == 7) {
        pIVar15 = prVar7[10].elems;
        rStack_144.alloc = -1;
        rStack_144.nelem = 0xffffffff;
        rStack_144.elems = (Idx *)0xffffffff;
        uStack_138 = 0xffffffff;
        goto joined_r0x0001e3b8;
      }
    }
LAB_0001dcc8:
    iStack_184 = iStack_184 + 1;
    if ((int)pIVar24 <= iStack_184) goto code_r0x0001dcdc;
    goto LAB_0001dc74;
  }
  (**(code **)(pcVar52 + 0x1e790))(iVar29);
  goto LAB_0001e824;
code_r0x0001dcdc:
  if (0 < (int)prVar28) {
    pbVar47 = (byte *)((int)&prVar28->alloc + 1);
    uStack_14c = 0;
    pbStack_150 = pbVar47;
    iVar45 = (**(code **)(pcVar52 + 0x1e724))((int)pbVar47 * 4);
    iStack_148 = iVar45;
    if ((iVar45 == 0) || (iStack_154 = 0, 0x155551aa < (int)prVar28)) {
      iStack_178 = (int)prVar28 << 1;
    }
    else {
      iStack_178 = (int)prVar28 * 2;
      pIVar24 = (Idx *)(**(code **)(pcVar52 + 0x1e724))((int)prVar28 * 0xc);
      if (pIVar24 != (Idx *)0x0) {
        iVar45 = (int)pbVar47 * 4 + -4;
        pprVar39 = &prStack_104;
        iVar38 = 0;
        pIVar15 = pIVar24 + (int)&prVar28->alloc;
        prStack_104 = (re_dfa_t *)0x0;
        piVar43 = (int *)(iVar29 + 4);
        uStack_100 = 0;
        uStack_fc = 0;
        iVar46 = *(int *)(pcVar52 + 0x1e658);
        uStack_f8 = 0;
        bVar2 = false;
        uStack_f4 = 0;
        uStack_f0 = 0;
        uStack_ec = 0;
        uStack_e8 = 0;
        pcVar53 = (code *)(*(int *)(pcVar52 + 0x1e658) + -0x42b4);
        do {
          iVar27 = *piVar43;
          iVar48 = 0;
          uStack_14c = 0;
          if (0 < iVar27) {
            do {
              iVar10 = *(int *)(prVar7[1].alloc + *(int *)(piVar43[1] + iVar48 * 4) * 4);
              if (iVar10 != -1) {
                prVar35 = (re_node_set *)(prVar7[2].alloc + iVar10 * 0xc);
                iStack_154 = (*(code *)(iVar46 + -0x55b4))(&pbStack_150);
                if (iStack_154 != 0) goto LAB_0001e660;
                iVar27 = *piVar43;
              }
              iVar48 = iVar48 + 1;
            } while (iVar48 < iVar27);
          }
          prVar35 = prVar7;
          iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,0);
          *(int *)((int)pIVar24 + iVar38) = iVar27;
          if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))
          goto LAB_0001e664;
          if ((*(byte *)(iVar27 + 0x34) & 1) == 0) {
            *(int *)((int)pIVar15 + iVar38) = iVar27;
            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;
          }
          else {
            prVar35 = prVar7;
            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,1);
            *(int *)((int)pIVar15 + iVar38) = iVar27;
            if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))
            goto LAB_0001e664;
            if ((iVar27 != *(int *)((int)pIVar24 + iVar38)) && (1 < (int)prVar7[7].elems)) {
              bVar2 = true;
            }
            prVar35 = prVar7;
            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,2);
            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;
            if ((iVar27 == 0) && (iStack_154 != 0)) goto LAB_0001e660;
          }
          iVar27 = iVar38 * 8 + iVar29;
          pprVar11 = pprVar39;
          do {
            pprVar12 = pprVar11 + 1;
            puVar40 = (uint *)(iVar27 + 0xc00);
            iVar27 = iVar27 + 4;
            *pprVar11 = (re_dfa_t *)((uint)*pprVar11 | *puVar40);
            pprVar11 = pprVar12;
          } while (&prStack_e4 != pprVar12);
          iVar38 = iVar38 + 4;
          piVar43 = piVar43 + 3;
        } while (iVar45 != iVar38);
        if (bVar2) {
          prVar35 = (re_node_set *)0x200;
          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);
          prVar18[4].alloc = (Idx)pIVar13;
          if (pIVar13 == (Idx *)0x0) goto LAB_0001e660;
          iVar45 = iVar29;
          pIVar37 = pIVar13;
          do {
            prVar21 = *pprVar39;
            if (prVar21 != (re_dfa_t *)0x0) {
              prVar35 = (re_node_set *)0x1;
              pIVar34 = pIVar37;
              do {
                if (((uint)prVar21 & 1) != 0) {
                  iVar38 = 0;
                  pIVar25 = pIVar15;
                  pIVar31 = pIVar24;
                  iVar46 = iVar45;
                  if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {
                    do {
                      puVar40 = (uint *)(iVar46 + 0xc20);
                      iVar38 = iVar38 + 1;
                      iVar46 = iVar46 + 0x20;
                    } while (((uint)prVar35 & *puVar40) == 0);
                    pIVar25 = pIVar15 + iVar38;
                    pIVar31 = pIVar24 + iVar38;
                  }
                  *pIVar34 = *pIVar31;
                  pIVar34[0x100] = *pIVar25;
                }
                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1);
                prVar35 = (re_node_set *)((int)prVar35 << 1);
                pIVar34 = pIVar34 + 1;
              } while (prVar21 != (re_dfa_t *)0x0);
            }
            pIVar37 = pIVar37 + 0x20;
            pprVar39 = pprVar39 + 1;
            iVar45 = iVar45 + 4;
          } while (pIVar13 + 0x100 != pIVar37);
        }
        else {
          prVar35 = (re_node_set *)0x100;
          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);
          prVar18[3].elems = pIVar13;
          if (pIVar13 == (Idx *)0x0) {
LAB_0001e660:
            pcVar50 = *(code **)(pcVar52 + 0x1e790);
LAB_0001e664:
            (*pcVar50)(pIVar24);
            iVar45 = iStack_148;
            goto LAB_0001e674;
          }
          prVar7 = prVar7 + 8;
          iVar46 = 0;
          iVar45 = iVar29;
          do {
            prVar35 = (re_node_set *)0x1;
            iVar38 = iVar46;
            for (prVar21 = *pprVar39; prVar21 != (re_dfa_t *)0x0;
                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1)) {
              if (((uint)prVar21 & 1) != 0) {
                iVar48 = 0;
                iVar27 = iVar45;
                if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {
                  do {
                    puVar40 = (uint *)(iVar27 + 0xc20);
                    iVar48 = iVar48 + 1;
                    iVar27 = iVar27 + 0x20;
                  } while (((uint)prVar35 & *puVar40) == 0);
                  iVar48 = iVar48 * 4;
                }
                if (((uint)prVar35 & prVar7->alloc) == 0) {
                  pIVar13[iVar38] = *(Idx *)((int)pIVar24 + iVar48);
                }
                else {
                  pIVar13[iVar38] = *(Idx *)((int)pIVar15 + iVar48);
                }
              }
              prVar35 = (re_node_set *)((int)prVar35 << 1);
              iVar38 = iVar38 + 1;
            }
            iVar46 = iVar46 + 0x20;
            pprVar39 = pprVar39 + 1;
            prVar7 = (re_node_set *)&prVar7->nelem;
            iVar45 = iVar45 + 4;
          } while (iVar46 != 0x100);
        }
        pcVar53 = *(code **)(pcVar52 + 0x1e790);
        if ((int)prStack_104 << 0x15 < 0) {
          prVar35 = (re_node_set *)0x0;
          do {
            if ((*puVar9 & 0x400) != 0) {
              IVar22 = pIVar15[(int)(pbVar47 + (int)((int)&prVar35[-1].elems + 3))];
              pIVar13[10] = IVar22;
              if (bVar2) {
                pIVar13[0x10a] = IVar22;
              }
              break;
            }
            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);
            puVar9 = puVar9 + 8;
          } while (prVar35 != prVar28);
          pcVar53 = *(code **)(pcVar52 + 0x1e790);
        }
        (*pcVar53)(pIVar24);
        (**(code **)(pcVar52 + 0x1e790))(iStack_148);
        iVar45 = iVar29;
        do {
          iVar46 = iVar45 + 0xc;
          (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));
          iVar45 = iVar46;
        } while (iVar29 + (int)prVar28 * 0xc != iVar46);
        (**(code **)(pcVar52 + 0x1e790))(iVar29);
        rVar5 = _REG_NOMATCH;
        goto LAB_0001e000;
      }
    }
LAB_0001e674:
    (**(code **)(pcVar52 + 0x1e790))(iVar45);
    iVar45 = iVar29;
    do {
      iVar46 = iVar45 + 0xc;
      (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));
      iVar45 = iVar46;
    } while (iVar46 != (int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29);
    (**(code **)(pcVar52 + 0x1e790))(iVar29);
LAB_0001dffc:
    rVar5 = _REG_NOERROR;
    goto LAB_0001e000;
  }
  (**(code **)(pcVar52 + 0x1e790))(iVar29);
  if (prVar28 != (re_node_set *)0x0) {
    rVar5 = _REG_NOERROR;
    goto LAB_0001e000;
  }
LAB_0001e824:
  prVar35 = (re_node_set *)0x100;
  pIVar24 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);
  prVar18[3].elems = pIVar24;
  rVar5 = (reg_errcode_t)(pIVar24 != (Idx *)0x0);
LAB_0001e000:
  if (prStack_e4 == (re_dfa_t *)*piVar8) {
    return rVar5;
  }
  pcVar52 = *(code **)(pcVar52 + 0x1e764);
  prVar21 = prStack_e4;
  (*pcVar52)();
  if (*(uchar *)&prVar35[2].alloc == '\x10') {
    IVar22 = ((Idx *)prVar35->nelem)[7];
    prVar35[1].alloc = ((Idx *)prVar35->nelem)[3];
    prVar35[2].nelem = IVar22;
    return _REG_NOERROR;
  }
  prVar35[1].alloc = (Idx)prVar35;
  token.opr.sbcset = (re_bitset_ptr_t)(pcVar52 + 0x25764);
  token._4_4_ = in_stack_fffffe4c;
  IVar22 = re_dfa_add_node(prVar21,token);
  prVar35[2].nelem = IVar22;
  if (IVar22 == -1) {
    rVar5 = _REG_ESPACE;
  }
  else {
    if (*(uchar *)&prVar35[2].alloc == '\f') {
      *(uint *)&prVar21->nodes[IVar22].field_0x4 =
           *(uint *)&prVar21->nodes[IVar22].field_0x4 & 0xff003fff |
           ((uint)prVar35[1].elems & 0x3ff) << 0xe;
      return _REG_NOERROR;
    }
    rVar5 = _REG_NOERROR;
  }
  return rVar5;
}



/* WARNING: Type propagation algorithm not settling */

uint ******* FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)

{
  byte *pbVar1;
  byte bVar2;
  bool bVar3;
  undefined *puVar4;
  char cVar15;
  int iVar5;
  int *piVar6;
  uint *puVar7;
  byte *pbVar8;
  undefined4 *puVar9;
  code *pcVar10;
  int **ppiVar11;
  int **ppiVar12;
  uint ******ppppppuVar13;
  uint *puVar14;
  uint *******pppppppuVar16;
  undefined4 *puVar17;
  uint *******pppppppuVar18;
  uint *******pppppppuVar19;
  uint ******ppppppuVar20;
  undefined4 *puVar21;
  uint *******pppppppuVar22;
  int iVar23;
  uint *******pppppppuVar24;
  int iVar25;
  uint uVar26;
  undefined4 *puVar27;
  uint *******pppppppuVar28;
  uint uVar29;
  uint ****ppppuVar30;
  uint *****pppppuVar31;
  uint ******ppppppuVar32;
  uint *puVar33;
  uint uVar34;
  int iVar35;
  uint ******ppppppuVar36;
  int **ppiVar37;
  uint *****pppppuVar38;
  int *piVar39;
  uint *******pppppppuVar40;
  uint *******unaff_s2;
  uint *******unaff_s3;
  int iVar41;
  uint *******unaff_s7;
  int iVar42;
  undefined *puVar43;
  code *pcVar44;
  undefined *puVar45;
  uint *******unaff_s8;
  code *pcVar46;
  undefined4 uVar47;
  int iStack_184;
  int iStack_178;
  int iStack_154;
  byte *pbStack_150;
  undefined4 uStack_14c;
  int iStack_148;
  uint *******pppppppuStack_144;
  uint uStack_140;
  uint uStack_13c;
  uint uStack_138;
  uint uStack_134;
  uint uStack_130;
  uint uStack_12c;
  uint uStack_128;
  uint ******ppppppuStack_124;
  uint uStack_120;
  uint uStack_11c;
  uint uStack_118;
  uint uStack_114;
  uint uStack_110;
  uint uStack_10c;
  uint uStack_108;
  int *piStack_104;
  uint uStack_100;
  uint uStack_fc;
  uint uStack_f8;
  uint uStack_f4;
  uint uStack_f0;
  uint uStack_ec;
  uint uStack_e8;
  int *piStack_e4;
  int *piStack_e0;
  uint ******ppppppuStack_dc;
  uint *******pppppppuStack_d8;
  uint *******pppppppuStack_d4;
  int iStack_d0;
  uint *******pppppppuStack_cc;
  uint *******pppppppuStack_c8;
  uint *******pppppppuStack_c4;
  uint *******pppppppuStack_c0;
  undefined4 uStack_bc;
  undefined *puStack_a8;
  uint *******pppppppuStack_a0;
  undefined4 *puStack_9c;
  uint ******ppppppuStack_98;
  undefined4 uStack_94;
  uint ******ppppppuStack_90;
  uint *******pppppppuStack_8c;
  int *piStack_88;
  uint *******pppppppuStack_84;
  uint *******pppppppuStack_80;
  uint *******pppppppuStack_7c;
  undefined *puStack_78;
  uint *******pppppppuStack_74;
  uint *******pppppppuStack_70;
  uint *******pppppppuStack_6c;
  uint *******pppppppuStack_68;
  code *pcStack_64;
  uint *******local_40;
  int local_3c;
  int local_38;
  uint ******appppppuStack_34 [2];
  uint *******local_2c;
  
  puVar4 = PTR___stack_chk_guard_0003c314;
  local_2c = *(uint ********)PTR___stack_chk_guard_0003c314;
  pppppppuVar24 = param_3;
  pppppppuVar40 = (uint *******)((int)param_2 - param_1[6]);
  if ((int)param_2 < param_1[6]) {
    if (1 < param_1[0x14]) {
      param_1[4] = 0;
      param_1[5] = 0;
    }
    pppppppuVar24 = (uint *******)0x6;
    if (((uint)param_3 & 1) != 0) {
      pppppppuVar24 = (uint *******)0x4;
    }
    param_1[0xc] = param_1[0xb];
    param_1[0xe] = param_1[0xd];
    param_1[7] = 0;
    param_1[6] = 0;
    param_1[8] = 0;
    *(undefined1 *)(param_1 + 0x13) = 0;
    param_1[0xf] = (int)pppppppuVar24;
    pppppppuVar40 = param_2;
    if (*(char *)((int)param_1 + 0x4b) == '\0') {
      param_1[1] = *param_1;
      goto LAB_0001d010;
    }
    if (param_2 == (uint *******)0x0) goto LAB_0001d128;
LAB_0001d018:
    iVar25 = param_1[8];
    unaff_s2 = (uint *******)param_1[7];
    if ((int)pppppppuVar40 < iVar25) {
      if (*(char *)(param_1 + 0x13) == '\0') {
        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);
        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);
        param_1[0xf] = iVar25;
        if (1 < param_1[0x14]) {
          (*(code *)PTR_memmove_0003c324)
                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);
          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);
        }
        cVar15 = *(char *)((int)param_1 + 0x4b);
        if (cVar15 != '\0') {
          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));
          cVar15 = *(char *)((int)param_1 + 0x4b);
          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);
        }
        pppppppuVar28 = (uint *******)param_1[0x14];
        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);
        param_1[7] = (int)pppppppuVar24;
        iVar25 = param_1[0xe] - (int)pppppppuVar40;
        param_1[8] = param_1[8] - (int)pppppppuVar40;
      }
      else {
        unaff_s7 = (uint *******)param_1[3];
        pbVar8 = (byte *)0x0;
        pppppppuVar24 = unaff_s2;
        do {
          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);
          ppppppuVar20 = unaff_s7[(int)unaff_s3];
          pppppppuVar16 = unaff_s3;
          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&
             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,
             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;
          pppppppuVar24 = pppppppuVar16;
        } while ((int)pbVar8 < (int)pppppppuVar16);
        if ((int)ppppppuVar20 < (int)pppppppuVar40) {
          pppppppuVar24 = unaff_s3;
          unaff_s3 = (uint *******)((int)unaff_s3 + 1);
        }
        else {
LAB_0001d460:
          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);
        }
        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);
        param_1[0xf] = iVar25;
        if ((((int)pppppppuVar40 < (int)unaff_s2) &&
            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&
           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {
          (*(code *)PTR_memmove_0003c324)
                    (param_1[2],(byte *)(param_1[2] + (int)param_3),
                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);
          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);
          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));
          iVar25 = param_1[7];
          param_1[7] = iVar25 - (int)pppppppuVar40;
          param_1[8] = param_1[8] - (int)pppppppuVar40;
          if (0 < iVar25 - (int)pppppppuVar40) {
            iVar25 = 0;
            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);
            pbVar8 = (byte *)(param_1[3] + (int)param_3);
            do {
              iVar25 = iVar25 + 1;
              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;
              pbVar8 = pbVar8 + 4;
            } while (iVar25 < param_1[7]);
          }
          pppppppuVar28 = (uint *******)param_1[0x14];
          cVar15 = *(char *)((int)param_1 + 0x4b);
          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);
          iVar25 = param_1[0xe] - (int)pppppppuVar40;
        }
        else {
          *(undefined1 *)(param_1 + 0x13) = 0;
          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);
          iVar25 = param_1[0xd] - (int)param_2;
          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);
          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);
          if ((0 < (int)unaff_s3) &&
             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {
            pppppppuVar24 = unaff_s7 + (int)unaff_s3;
            do {
              unaff_s3 = (uint *******)((int)unaff_s3 + -1);
              if (unaff_s3 == (uint *******)0x0) break;
              pppppppuVar22 = pppppppuVar24 + -2;
              pppppppuVar24 = pppppppuVar24 + -1;
            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);
          }
          iVar5 = (int)unaff_s3 * 4;
          if ((int)unaff_s3 < (int)unaff_s2) {
            piVar6 = (int *)(param_1[2] + iVar5);
            iVar35 = *piVar6;
            while (iVar35 == -1) {
              unaff_s3 = (uint *******)((int)unaff_s3 + 1);
              piVar6 = piVar6 + 1;
              if (unaff_s3 == unaff_s2) goto LAB_0001d444;
              iVar5 = (int)unaff_s3 * 4;
              iVar35 = *piVar6;
            }
LAB_0001d4ac:
            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);
            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);
            param_1[7] = (int)pppppppuVar24;
            if (pppppppuVar24 != (uint *******)0x0) {
              if (0 < (int)pppppppuVar24) {
                puVar9 = (undefined4 *)param_1[2];
                iVar25 = 0;
                do {
                  *puVar9 = 0xffffffff;
                  iVar25 = iVar25 + 1;
                  puVar9 = puVar9 + 1;
                } while (iVar25 < param_1[7]);
              }
              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);
              pppppppuVar24 = (uint *******)param_1[7];
              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);
              iVar25 = param_1[0xe] - (int)pppppppuVar40;
            }
          }
          else {
            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;
LAB_0001d444:
            pppppppuVar24 = (uint *******)0x0;
            param_1[7] = 0;
          }
          pppppppuVar28 = (uint *******)param_1[0x14];
          cVar15 = *(char *)((int)param_1 + 0x4b);
          param_1[8] = (int)pppppppuVar24;
        }
      }
LAB_0001d090:
      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);
      if (cVar15 == '\0') {
LAB_0001d098:
        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);
        param_1[1] = (int)pppppppuVar40;
      }
      param_1[6] = (int)param_2;
      param_1[0xc] = (int)pppppppuVar16;
      param_1[0xe] = iVar25;
      if (pppppppuVar22 == (uint *******)0x0) goto LAB_0001d0b4;
LAB_0001d148:
      cVar15 = *(char *)((int)param_1 + 0x4b);
    }
    else {
      if (*(char *)(param_1 + 0x13) != '\0') {
        *(undefined1 *)(param_1 + 0x13) = 0;
        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);
        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);
      }
      pppppppuVar28 = (uint *******)param_1[0x14];
      unaff_s8 = (uint *******)param_1[6];
      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);
      param_1[7] = 0;
      if (pppppppuVar22 == (uint *******)0x0) {
        if (*(char *)((int)param_1 + 0x49) == '\0') {
LAB_0001d228:
          pbVar8 = (byte *)((int)unaff_s8 + iVar25);
          if ((int)pbVar8 < (int)param_2) {
            unaff_s7 = (uint *******)&local_40;
            do {
              local_3c = param_1[4];
              local_38 = param_1[5];
              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);
              pppppppuVar24 = pppppppuVar16;
              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);
              unaff_s3 = local_40;
              if (0xfffffffc < iVar25 - 1U) {
                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {
                  unaff_s3 = (uint *******)0x0;
                }
                else {
                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];
                }
                iVar25 = 1;
                param_1[4] = local_3c;
                param_1[5] = local_38;
              }
              pbVar8 = pbVar8 + iVar25;
            } while ((int)pbVar8 < (int)param_2);
            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);
            param_1[7] = (int)unaff_s8;
            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;
          }
          else {
            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);
            param_1[7] = (int)unaff_s8;
          }
          pppppppuVar24 = param_3;
          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));
          param_1[0xf] = iVar25;
        }
        else {
          pppppppuVar16 = (uint *******)*param_1;
          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);
          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));
          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));
          if (pppppppuVar24 <= pppppppuVar16) {
            pppppppuVar24 = pppppppuVar16;
          }
          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;
          bVar2 = *(byte *)unaff_s3;
          while ((bVar2 & 0xc0) == 0x80) {
            unaff_s3 = (uint *******)((int)unaff_s3 + -1);
            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;
            bVar2 = *(byte *)unaff_s3;
          }
          iVar25 = param_1[0x10];
          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));
          pppppppuVar16 = unaff_s3;
          if (iVar25 != 0) {
            pppppppuVar22 = (uint *******)0x6;
            if ((int)pppppppuVar24 < 7) {
              pppppppuVar22 = pppppppuVar24;
            }
            pppppppuVar16 = appppppuStack_34;
            if (0 < (int)pppppppuVar24) {
              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);
              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);
              do {
                pbVar1 = pbVar8 + -1;
                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);
                pbVar8 = pbVar8 + -1;
                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);
              } while (pppppppuVar16 != pppppppuVar22);
            }
          }
          local_3c = 0;
          local_38 = 0;
          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);
          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;
          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {
            unaff_s8 = (uint *******)param_1[6];
            iVar25 = param_1[8];
            goto LAB_0001d228;
          }
          unaff_s8 = (uint *******)(uVar34 - uVar26);
          param_1[4] = 0;
          param_1[5] = 0;
          param_1[7] = (int)unaff_s8;
          unaff_s3 = local_40;
          if (local_40 == (uint *******)0xffffffff) {
            unaff_s8 = (uint *******)param_1[6];
            iVar25 = param_1[8];
            goto LAB_0001d228;
          }
LAB_0001d2a4:
          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||
             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&
              (unaff_s3 != (uint *******)0x5f)))) {
            iVar25 = 2;
            if (unaff_s3 == (uint *******)0xa) {
              if (*(char *)((int)param_1 + 0x4d) == '\0') {
                iVar25 = 0;
              }
            }
            else {
              iVar25 = 0;
            }
          }
          else {
            iVar25 = 1;
          }
          param_1[0xf] = iVar25;
        }
        pppppppuVar16 = pppppppuVar24;
        if (unaff_s8 == (uint *******)0x0) {
LAB_0001d2cc:
          cVar15 = *(char *)((int)param_1 + 0x4b);
          pppppppuVar24 = pppppppuVar16;
        }
        else {
          iVar25 = 0;
          pppppppuVar16 = unaff_s8;
          if (0 < (int)unaff_s8) {
            puVar9 = (undefined4 *)param_1[2];
            do {
              *puVar9 = 0xffffffff;
              iVar25 = iVar25 + 1;
              pppppppuVar16 = (uint *******)param_1[7];
              puVar9 = puVar9 + 1;
            } while (iVar25 < (int)pppppppuVar16);
          }
          if (*(char *)((int)param_1 + 0x4b) != '\0') {
            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);
            unaff_s8 = (uint *******)param_1[7];
            goto LAB_0001d2cc;
          }
          unaff_s8 = (uint *******)param_1[7];
          cVar15 = '\0';
        }
        pppppppuVar28 = (uint *******)param_1[0x14];
        param_1[8] = (int)unaff_s8;
        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);
        iVar25 = param_1[0xe] - (int)pppppppuVar40;
        goto LAB_0001d090;
      }
      uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];
      param_1[8] = 0;
      if (param_1[0x10] != 0) {
        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);
      }
      pppppppuVar24 =
           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);
      if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&
         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {
        pppppppuVar24 = (uint *******)0x0;
      }
      cVar15 = *(char *)((int)param_1 + 0x4b);
      param_1[0xf] = (int)pppppppuVar24;
      pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);
      iVar25 = param_1[0xe] - (int)pppppppuVar40;
      if (cVar15 == '\0') goto LAB_0001d098;
      param_1[6] = (int)param_2;
      param_1[0xc] = (int)pppppppuVar16;
      param_1[0xe] = iVar25;
    }
    if (cVar15 == '\0') {
      param_1[7] = (int)pppppppuVar16;
    }
    else if (*(char *)(param_1 + 0x12) == '\0') {
      pppppppuVar22 = (uint *******)param_1[0x10];
      if (pppppppuVar22 != (uint *******)0x0) {
        pppppppuVar24 = (uint *******)param_1[9];
        pppppppuVar18 = (uint *******)param_1[7];
        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {
          pppppppuVar16 = pppppppuVar24;
        }
        if ((int)pppppppuVar18 < (int)pppppppuVar16) {
          while( true ) {
            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);
            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);
            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);
            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);
            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;
            if (pppppppuVar16 == pppppppuVar18) break;
            param_2 = (uint *******)param_1[6];
            pppppppuVar22 = (uint *******)param_1[0x10];
          }
          param_1[7] = (int)pppppppuVar16;
          param_1[8] = (int)pppppppuVar16;
        }
        else {
          param_1[7] = (int)pppppppuVar18;
          param_1[8] = (int)pppppppuVar18;
        }
      }
    }
    else {
      FUN_000187d0(param_1);
    }
LAB_0001d0dc:
    pppppppuVar16 = (uint *******)0x0;
    param_1[10] = 0;
  }
  else {
LAB_0001d010:
    if (pppppppuVar40 != (uint *******)0x0) goto LAB_0001d018;
LAB_0001d128:
    pppppppuVar28 = (uint *******)param_1[0x14];
    pppppppuVar16 = (uint *******)param_1[0xc];
    pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);
    param_1[6] = (int)param_2;
    param_1[0xc] = (int)pppppppuVar16;
    param_1[0xe] = param_1[0xe];
    if (pppppppuVar22 != (uint *******)0x0) goto LAB_0001d148;
LAB_0001d0b4:
    if (*(char *)(param_1 + 0x12) == '\0') {
      FUN_000188b4(param_1);
      goto LAB_0001d0dc;
    }
    pppppppuVar16 = (uint *******)FUN_00018b3c();
    if (pppppppuVar16 == (uint *******)0x0) goto LAB_0001d0dc;
  }
  if (local_2c == *(uint ********)puVar4) {
    return pppppppuVar16;
  }
  pcVar46 = FUN_0001d8a0;
  pppppppuVar16 = local_2c;
  puVar43 = PTR___stack_chk_fail_0003c2f4;
  (*(code *)PTR___stack_chk_fail_0003c2f4)();
  puVar45 = puVar43 + 0x26830;
  puStack_9c = *(undefined4 **)(puVar43 + 0x1ea74);
  ppppppuStack_98 = (uint ******)0x0;
  uStack_94 = 0;
  ppppppuStack_90 = (uint ******)0x0;
  ppppppuVar20 = pppppppuVar16[7] + (int)pppppppuVar22 * 3;
  puStack_78 = puVar4;
  pppppppuStack_8c = (uint *******)*puStack_9c;
  pppppuVar31 = ppppppuVar20[1];
  iVar25 = *(int *)(puVar43 + 0x1e948);
  pppppppuVar18 = pppppppuVar22;
  puStack_a8 = puVar45;
  pppppppuStack_a0 = pppppppuVar28;
  piStack_88 = param_1;
  pppppppuStack_84 = pppppppuVar40;
  pppppppuStack_80 = unaff_s2;
  pppppppuStack_7c = unaff_s3;
  pppppppuStack_74 = param_2;
  pppppppuStack_70 = param_3;
  pppppppuStack_6c = unaff_s7;
  pppppppuStack_68 = unaff_s8;
  pcStack_64 = pcVar46;
  if (0 < (int)pppppuVar31) {
    pppppppuVar40 = &ppppppuStack_98;
    param_1 = (int *)0x0;
    param_2 = (uint *******)(ppppppuVar20 + 2);
    iVar25 = iVar25 + -0x5d30;
    param_3 = (uint *******)(*(int *)(puVar43 + 0x1e948) + -20000);
    do {
      pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1];
      if ((pppppppuVar22 != pppppppuVar28) &&
         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)) {
        iVar35 = (int)pppppppuVar28 * 0xc;
        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;
        pppppuVar38 = ppppppuVar36[2];
        pppppppuVar18 = param_2;
        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);
        if ((int)ppppppuVar36[1] < 2) {
          puVar45 = puStack_a8;
          if (iVar5 == 0) {
            pppppppuVar18 = pppppppuVar24 + 2;
            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);
            puVar45 = puStack_a8;
            if (iVar5 != 0) goto LAB_0001d960;
          }
        }
        else if ((iVar5 == 0) &&
                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {
LAB_0001d960:
          ppppppuVar36 = pppppppuVar16[7];
LAB_0001d964:
          pppppppuVar18 = pppppppuStack_a0;
          pppppppuVar28 =
               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)
          ;
          if (pppppppuVar28 != (uint *******)0x0) {
            pppppppuStack_a0 = pppppppuVar28;
            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);
            pppppppuVar28 = pppppppuStack_a0;
            goto LAB_0001db20;
          }
          pppppuVar31 = ppppppuVar20[1];
          puVar45 = puStack_a8;
        }
        else {
          pppppppuVar18 = param_2;
          puVar45 = puStack_a8;
          if ((0 < (int)pppppuVar38[1]) &&
             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,
             iVar5 == 0)) {
            pppppppuVar18 = pppppppuVar24 + 2;
            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);
            puVar45 = puStack_a8;
            if (iVar5 != 0) {
              ppppppuVar36 = pppppppuVar16[7];
              goto LAB_0001d964;
            }
          }
        }
      }
      param_1 = (int *)((int)param_1 + 1);
    } while ((int)param_1 < (int)pppppuVar31);
    unaff_s2 = pppppppuVar22;
    unaff_s3 = pppppppuVar24;
    unaff_s7 = pppppppuVar40;
    unaff_s8 = pppppppuVar16;
    if (0 < (int)pppppuVar31) {
      iVar5 = 0;
      pppppppuVar22 = pppppppuVar24 + 1;
      pppppppuVar16 = pppppppuVar24 + 2;
      pppppppuVar40 = &ppppppuStack_90;
      do {
        pppppppuVar19 = pppppppuVar40;
        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);
        pppppppuVar28 = pppppppuVar16;
        if (iVar35 == 0) {
          ppppppuVar36 = pppppppuVar24[1];
          pppppppuVar18 = pppppppuVar16;
          iVar35 = FUN_0001a2d0(ppppppuVar36);
          pppppppuVar40 = pppppppuVar16;
          pppppppuVar28 = pppppppuVar18;
          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {
            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);
            FUN_0001a534(pppppppuVar22);
            pppppuVar31 = ppppppuVar20[1];
            pppppppuVar40 = pppppppuVar18;
          }
        }
        iVar5 = iVar5 + 1;
        pppppppuVar18 = pppppppuVar40;
        pppppppuVar16 = pppppppuVar28;
        pppppppuVar40 = pppppppuVar19;
        puVar45 = puStack_a8;
      } while (iVar5 < (int)pppppuVar31);
    }
  }
  (**(code **)(puVar45 + -0x7db0))(ppppppuStack_90);
  pppppppuVar28 = (uint *******)0x0;
  pppppppuVar22 = unaff_s2;
  pppppppuVar24 = unaff_s3;
  pppppppuVar40 = unaff_s7;
  pppppppuVar16 = unaff_s8;
LAB_0001db20:
  if (pppppppuStack_8c == (uint *******)*puStack_9c) {
    return pppppppuVar28;
  }
  pcVar46 = *(code **)(puStack_a8 + -0x7ddc);
  uVar47 = 0x1db90;
  pppppppuVar19 = pppppppuStack_8c;
  (*pcVar46)();
  piVar6 = *(int **)(pcVar46 + 0x1e784);
  piStack_e4 = (int *)*piVar6;
  pppppppuVar28 = pppppppuVar18;
  piStack_e0 = param_1;
  ppppppuStack_dc = ppppppuVar20;
  pppppppuStack_d8 = pppppppuVar22;
  pppppppuStack_d4 = pppppppuVar24;
  iStack_d0 = iVar25;
  pppppppuStack_cc = param_2;
  pppppppuStack_c8 = param_3;
  pppppppuStack_c4 = pppppppuVar40;
  pppppppuStack_c0 = pppppppuVar16;
  uStack_bc = uVar47;
  iVar25 = (**(code **)(pcVar46 + 0x1e724))(0x2c00);
  if (iVar25 == 0) goto LAB_0001dffc;
  ppppppuVar20 = pppppppuVar18[2];
  pppppppuVar18[0xb] = (uint ******)0x0;
  puVar7 = (uint *)(iVar25 + 0xc00);
  pppppppuVar18[0xc] = (uint ******)0x0;
  pppppppuStack_144 = (uint *******)0x0;
  uStack_140 = 0;
  uStack_13c = 0;
  uStack_138 = 0;
  uStack_134 = 0;
  uStack_130 = 0;
  uStack_12c = 0;
  uStack_128 = 0;
  if (0 < (int)ppppppuVar20) {
    iVar5 = *(int *)(pcVar46 + 0x1e658);
    iStack_184 = 0;
    iVar35 = *(int *)(pcVar46 + 0x1e658);
    pppppppuVar24 = (uint *******)0x0;
LAB_0001dc74:
    ppppppuVar36 = *pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2;
    bVar2 = *(byte *)(ppppppuVar36 + 1);
    uVar34 = (uint)((int)ppppppuVar36[1] << 8) >> 0x16;
    if (bVar2 == 1) {
      pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5));
      pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f));
      *pppppppuVar40 = (uint ******)pppppppuVar28;
LAB_0001e060:
      pppppppuVar40 = pppppppuStack_144;
      if (uVar34 == 0) goto LAB_0001e15c;
      if ((uVar34 & 0x20) == 0) {
        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;
LAB_0001e07c:
        if ((uVar34 & 4) != 0) {
          if (bVar2 == 1) {
            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;
            ppppppuVar13 = pppppppuVar19[0x17];
          }
          else {
            ppppppuVar13 = pppppppuVar19[0x17];
          }
          if ((int)ppppppuVar13 < 2) {
            pppppppuVar16 = pppppppuVar19 + 0x18;
            uVar26 = 0;
            pppppppuVar40 = (uint *******)&pppppppuStack_144;
            do {
              pppppppuVar22 = pppppppuVar40 + 1;
              ppppppuVar13 = *pppppppuVar16;
              pppppppuVar16 = pppppppuVar16 + 1;
              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);
              *pppppppuVar40 = (uint ******)pppppppuVar28;
              uVar26 = uVar26 | (uint)pppppppuVar28;
              pppppppuVar40 = pppppppuVar22;
            } while (&ppppppuStack_124 != pppppppuVar22);
          }
          else {
            ppppppuVar13 = pppppppuVar19[0xf];
            pppppppuVar16 = pppppppuVar19 + 0x18;
            uVar26 = 0;
            pppppppuVar40 = (uint *******)&pppppppuStack_144;
            do {
              pppppppuVar28 = pppppppuVar40 + 1;
              pppppuVar31 = *ppppppuVar13;
              ppppppuVar32 = *pppppppuVar16;
              ppppppuVar13 = ppppppuVar13 + 1;
              pppppppuVar16 = pppppppuVar16 + 1;
              ppppppuVar32 = (uint ******)
                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);
              *pppppppuVar40 = ppppppuVar32;
              uVar26 = uVar26 | (uint)ppppppuVar32;
              pppppppuVar40 = pppppppuVar28;
            } while (&ppppppuStack_124 != pppppppuVar28);
          }
          if (uVar26 == 0) goto LAB_0001dcc8;
        }
        if ((uVar34 & 8) == 0) {
LAB_0001e15c:
          pppppppuVar40 = (uint *******)0x0;
          if (0 < (int)pppppppuVar24) {
            pppppppuVar40 = (uint *******)0x0;
            puVar14 = puVar7;
            do {
              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);
              if ((bVar2 != 1) ||
                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>
                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {
                uVar34 = 0;
                pppppppuVar16 = (uint *******)&pppppppuStack_144;
                pppppppuVar22 = &ppppppuStack_124;
                puVar33 = puVar14;
                do {
                  pppppppuVar28 = pppppppuVar16 + 1;
                  uVar26 = *puVar33;
                  ppppppuVar20 = *pppppppuVar16;
                  puVar33 = puVar33 + 1;
                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);
                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;
                  pppppppuVar16 = pppppppuVar28;
                  pppppppuVar22 = pppppppuVar22 + 1;
                } while (&ppppppuStack_124 != pppppppuVar28);
                pppppppuVar28 = (uint *******)&pppppppuStack_144;
                if (uVar34 != 0) {
                  uVar26 = 0;
                  uVar34 = 0;
                  pppppppuVar16 = (uint *******)&pppppppuStack_144;
                  puVar33 = puVar14;
                  ppiVar37 = &piStack_104;
                  do {
                    uVar29 = *puVar33;
                    puVar33 = puVar33 + 1;
                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);
                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);
                    *ppiVar37 = piVar39;
                    *pppppppuVar16 = ppppppuVar20;
                    uVar34 = uVar34 | (uint)piVar39;
                    uVar26 = uVar26 | (uint)ppppppuVar20;
                    pppppppuVar16 = pppppppuVar16 + 1;
                    ppiVar37 = ppiVar37 + 1;
                  } while (puVar14 + 8 != puVar33);
                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);
                  if (uVar34 != 0) {
                    iStack_178 = (int)pppppppuVar24 * 2;
                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;
                    *puVar33 = (uint)piStack_104;
                    puVar33[1] = uStack_100;
                    puVar33[2] = uStack_fc;
                    puVar33[3] = uStack_f8;
                    puVar33[4] = uStack_f4;
                    puVar33[5] = uStack_f0;
                    puVar33[6] = uStack_ec;
                    puVar33[7] = uStack_e8;
                    puVar14[1] = uStack_120;
                    puVar14[2] = uStack_11c;
                    *puVar14 = (uint)ppppppuStack_124;
                    puVar14[3] = uStack_118;
                    puVar14[4] = uStack_114;
                    puVar14[5] = uStack_110;
                    puVar14[6] = uStack_10c;
                    puVar14[7] = uStack_108;
                    pppppppuVar28 = pppppppuVar16;
                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);
                    if (iVar41 != 0) goto LAB_0001e458;
                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);
                  }
                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];
                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);
                  if (iVar41 == 0) {
                    iStack_178 = (int)pppppppuVar24 << 1;
                    goto LAB_0001e458;
                  }
                  if (uVar26 == 0) break;
                }
              }
              puVar14 = puVar14 + 8;
              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);
            } while ((int)pppppppuVar40 < (int)pppppppuVar24);
          }
          iStack_178 = (int)pppppppuVar24 * 2;
          if (pppppppuVar24 == pppppppuVar40) {
            ppppppuVar20 = pppppppuVar18[3];
            pcVar10 = *(code **)(pcVar46 + 0x1e724);
            puVar14 = puVar7 + (int)pppppppuVar24 * 8;
            *puVar14 = (uint)pppppppuStack_144;
            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);
            puVar14[1] = uStack_140;
            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);
            puVar14[2] = uStack_13c;
            puVar14[3] = uStack_138;
            puVar14[4] = uStack_134;
            puVar14[5] = uStack_130;
            puVar14[6] = uStack_12c;
            puVar14[7] = uStack_128;
            ppppppuVar36 = *pppppppuVar28;
            *puVar9 = 1;
            puVar9[1] = 1;
            puVar14 = (uint *)(*pcVar10)(4);
            puVar9[2] = puVar14;
            if (puVar14 != (uint *)0x0) {
              ppppppuVar20 = pppppppuVar18[2];
              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);
              *puVar14 = (uint)ppppppuVar36;
              pppppppuStack_144 = (uint *******)0x0;
              uStack_140 = 0;
              uStack_13c = 0;
              uStack_138 = 0;
              uStack_134 = 0;
              uStack_130 = 0;
              uStack_12c = 0;
              uStack_128 = 0;
              goto LAB_0001dcc8;
            }
            puVar9[1] = 0;
            *puVar9 = 0;
            if (pppppppuVar24 == (uint *******)0x0) {
              (**(code **)(pcVar46 + 0x1e790))(iVar25);
            }
            else {
LAB_0001e458:
              iVar5 = iVar25;
              do {
                iVar35 = iVar5 + 0xc;
                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));
                iVar5 = iVar35;
              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);
              (**(code **)(pcVar46 + 0x1e790))(iVar25);
            }
            goto LAB_0001dffc;
          }
          ppppppuVar20 = pppppppuVar18[2];
          goto LAB_0001dcc8;
        }
        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {
          pppppppuVar40 = pppppppuVar19 + 0x18;
          if ((int)pppppppuVar19[0x17] < 2) {
            pppppppuVar28 = (uint *******)0x0;
            pppppppuVar16 = (uint *******)&pppppppuStack_144;
            do {
              pppppppuVar22 = pppppppuVar16 + 1;
              ppppppuVar13 = *pppppppuVar40;
              ppppppuVar32 = *pppppppuVar16;
              pppppppuVar40 = pppppppuVar40 + 1;
              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);
              pppppppuVar28 =
                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);
              pppppppuVar16 = pppppppuVar22;
            } while (pppppppuVar22 != &ppppppuStack_124);
          }
          else {
            ppppppuVar13 = pppppppuVar19[0xf];
            pppppppuVar28 = (uint *******)0x0;
            pppppppuVar16 = (uint *******)&pppppppuStack_144;
            do {
              pppppppuVar22 = pppppppuVar16 + 1;
              pppppuVar31 = *ppppppuVar13;
              ppppppuVar32 = *pppppppuVar40;
              ppppppuVar13 = ppppppuVar13 + 1;
              pppppppuVar40 = pppppppuVar40 + 1;
              ppppppuVar32 = (uint ******)
                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);
              *pppppppuVar16 = ppppppuVar32;
              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);
              pppppppuVar16 = pppppppuVar22;
            } while (&ppppppuStack_124 != pppppppuVar22);
          }
          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;
          goto LAB_0001e15c;
        }
        pppppppuStack_144 = (uint *******)0x0;
      }
      else {
        uStack_140 = 0;
        pppppppuStack_144 = (uint *******)0x0;
        uStack_13c = 0;
        uStack_138 = 0;
        uStack_134 = 0;
        uStack_130 = 0;
        uStack_12c = 0;
        uStack_128 = 0;
        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;
        pppppppuStack_144 = (uint *******)0x400;
        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;
LAB_0001e428:
        pppppppuStack_144 = (uint *******)0x0;
      }
      pppppppuStack_144 = (uint *******)0x0;
      uStack_140 = 0;
      uStack_13c = 0;
      uStack_138 = 0;
      uStack_134 = 0;
      uStack_130 = 0;
      uStack_12c = 0;
      uStack_128 = 0;
    }
    else {
      if (bVar2 == 3) {
        pppppuVar31 = *ppppppuVar36;
        pppppppuVar40 = (uint *******)&pppppppuStack_144;
        do {
          pppppppuVar16 = pppppppuVar40 + 1;
          ppppuVar30 = *pppppuVar31;
          pppppuVar31 = pppppuVar31 + 1;
          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);
          *pppppppuVar40 = (uint ******)pppppppuVar28;
          pppppppuVar40 = pppppppuVar16;
        } while (&ppppppuStack_124 != pppppppuVar16);
        goto LAB_0001e060;
      }
      if (bVar2 == 5) {
        if ((int)pppppppuVar19[0x17] < 2) {
          pppppppuStack_144 = (uint *******)0xffffffff;
          uStack_140 = 0xffffffff;
          uStack_13c = 0xffffffff;
          uStack_138 = 0xffffffff;
          uStack_134 = 0xffffffff;
          uStack_130 = 0xffffffff;
          uStack_12c = 0xffffffff;
          uStack_128 = 0xffffffff;
        }
        else {
          ppppppuVar13 = pppppppuVar19[0xf];
          pppppppuVar40 = (uint *******)&pppppppuStack_144;
          do {
            pppppppuVar16 = pppppppuVar40 + 1;
            pppppuVar31 = *ppppppuVar13;
            ppppppuVar13 = ppppppuVar13 + 1;
            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);
            pppppppuVar40 = pppppppuVar16;
          } while (&ppppppuStack_124 != pppppppuVar16);
        }
        ppppppuVar13 = pppppppuVar19[0x20];
joined_r0x0001e3b8:
        if (((uint)ppppppuVar13 & 0x40) == 0) {
          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);
        }
        pppppppuVar28 = pppppppuStack_144;
        if (((uint)ppppppuVar13 & 0x80) != 0) {
          pppppppuVar28 = (uint *******)&SUB_fffffffe;
          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);
        }
        goto LAB_0001e060;
      }
      pppppppuVar28 = (uint *******)0xffffffff;
      if (bVar2 == 7) {
        ppppppuVar13 = pppppppuVar19[0x20];
        pppppppuStack_144 = (uint *******)0xffffffff;
        uStack_140 = 0xffffffff;
        uStack_13c = 0xffffffff;
        uStack_138 = 0xffffffff;
        goto joined_r0x0001e3b8;
      }
    }
LAB_0001dcc8:
    iStack_184 = iStack_184 + 1;
    if ((int)ppppppuVar20 <= iStack_184) goto code_r0x0001dcdc;
    goto LAB_0001dc74;
  }
  (**(code **)(pcVar46 + 0x1e790))(iVar25);
  goto LAB_0001e824;
code_r0x0001dcdc:
  if (0 < (int)pppppppuVar24) {
    pbVar8 = (byte *)((int)pppppppuVar24 + 1);
    uStack_14c = 0;
    pbStack_150 = pbVar8;
    iVar5 = (**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4);
    iStack_148 = iVar5;
    if ((iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)) {
      iStack_178 = (int)pppppppuVar24 << 1;
    }
    else {
      iStack_178 = (int)pppppppuVar24 * 2;
      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);
      if (puVar9 != (undefined4 *)0x0) {
        iVar5 = (int)pbVar8 * 4 + -4;
        ppiVar37 = &piStack_104;
        iVar41 = 0;
        puVar17 = puVar9 + (int)pppppppuVar24;
        piStack_104 = (int *)0x0;
        piVar39 = (int *)(iVar25 + 4);
        uStack_100 = 0;
        uStack_fc = 0;
        iVar35 = *(int *)(pcVar46 + 0x1e658);
        uStack_f8 = 0;
        bVar3 = false;
        uStack_f4 = 0;
        uStack_f0 = 0;
        uStack_ec = 0;
        uStack_e8 = 0;
        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);
        do {
          iVar23 = *piVar39;
          iVar42 = 0;
          uStack_14c = 0;
          if (0 < iVar23) {
            do {
              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {
                pppppppuVar28 =
                     (uint *******)
                     (pppppppuVar19[6] +
                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);
                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);
                if (iStack_154 != 0) goto LAB_0001e660;
                iVar23 = *piVar39;
              }
              iVar42 = iVar42 + 1;
            } while (iVar42 < iVar23);
          }
          pppppppuVar28 = pppppppuVar19;
          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);
          *(int *)((int)puVar9 + iVar41) = iVar23;
          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))
          goto LAB_0001e664;
          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {
            *(int *)((int)puVar17 + iVar41) = iVar23;
            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;
          }
          else {
            pppppppuVar28 = pppppppuVar19;
            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);
            *(int *)((int)puVar17 + iVar41) = iVar23;
            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))
            goto LAB_0001e664;
            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {
              bVar3 = true;
            }
            pppppppuVar28 = pppppppuVar19;
            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);
            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;
            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;
          }
          iVar23 = iVar41 * 8 + iVar25;
          ppiVar11 = ppiVar37;
          do {
            ppiVar12 = ppiVar11 + 1;
            puVar14 = (uint *)(iVar23 + 0xc00);
            iVar23 = iVar23 + 4;
            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);
            ppiVar11 = ppiVar12;
          } while (&piStack_e4 != ppiVar12);
          iVar41 = iVar41 + 4;
          piVar39 = piVar39 + 3;
        } while (iVar5 != iVar41);
        if (bVar3) {
          pppppppuVar28 = (uint *******)0x200;
          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);
          pppppppuVar18[0xc] = ppppppuVar20;
          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;
          iVar5 = iVar25;
          ppppppuVar36 = ppppppuVar20;
          do {
            piVar39 = *ppiVar37;
            if (piVar39 != (int *)0x0) {
              pppppppuVar28 = (uint *******)0x1;
              ppppppuVar13 = ppppppuVar36;
              do {
                if (((uint)piVar39 & 1) != 0) {
                  iVar41 = 0;
                  puVar21 = puVar17;
                  puVar27 = puVar9;
                  iVar35 = iVar5;
                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {
                    do {
                      puVar14 = (uint *)(iVar35 + 0xc20);
                      iVar41 = iVar41 + 1;
                      iVar35 = iVar35 + 0x20;
                    } while (((uint)pppppppuVar28 & *puVar14) == 0);
                    puVar21 = puVar17 + iVar41;
                    puVar27 = puVar9 + iVar41;
                  }
                  *ppppppuVar13 = (uint *****)*puVar27;
                  ppppppuVar13[0x100] = (uint *****)*puVar21;
                }
                piVar39 = (int *)((uint)piVar39 >> 1);
                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);
                ppppppuVar13 = ppppppuVar13 + 1;
              } while (piVar39 != (int *)0x0);
            }
            ppppppuVar36 = ppppppuVar36 + 0x20;
            ppiVar37 = ppiVar37 + 1;
            iVar5 = iVar5 + 4;
          } while (ppppppuVar20 + 0x100 != ppppppuVar36);
        }
        else {
          pppppppuVar28 = (uint *******)0x100;
          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);
          pppppppuVar18[0xb] = ppppppuVar20;
          if (ppppppuVar20 == (uint ******)0x0) {
LAB_0001e660:
            pcVar44 = *(code **)(pcVar46 + 0x1e790);
LAB_0001e664:
            (*pcVar44)(puVar9);
            iVar5 = iStack_148;
            goto LAB_0001e674;
          }
          pppppppuVar19 = pppppppuVar19 + 0x18;
          iVar35 = 0;
          iVar5 = iVar25;
          do {
            pppppppuVar28 = (uint *******)0x1;
            iVar41 = iVar35;
            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))
            {
              if (((uint)piVar39 & 1) != 0) {
                iVar42 = 0;
                iVar23 = iVar5;
                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {
                  do {
                    puVar14 = (uint *)(iVar23 + 0xc20);
                    iVar42 = iVar42 + 1;
                    iVar23 = iVar23 + 0x20;
                  } while (((uint)pppppppuVar28 & *puVar14) == 0);
                  iVar42 = iVar42 * 4;
                }
                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {
                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);
                }
                else {
                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);
                }
              }
              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);
              iVar41 = iVar41 + 1;
            }
            iVar35 = iVar35 + 0x20;
            ppiVar37 = ppiVar37 + 1;
            pppppppuVar19 = pppppppuVar19 + 1;
            iVar5 = iVar5 + 4;
          } while (iVar35 != 0x100);
        }
        pcVar10 = *(code **)(pcVar46 + 0x1e790);
        if ((int)piStack_104 << 0x15 < 0) {
          pppppppuVar28 = (uint *******)0x0;
          do {
            if ((*puVar7 & 0x400) != 0) {
              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];
              ppppppuVar20[10] = pppppuVar31;
              if (bVar3) {
                ppppppuVar20[0x10a] = pppppuVar31;
              }
              break;
            }
            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);
            puVar7 = puVar7 + 8;
          } while (pppppppuVar28 != pppppppuVar24);
          pcVar10 = *(code **)(pcVar46 + 0x1e790);
        }
        (*pcVar10)(puVar9);
        (**(code **)(pcVar46 + 0x1e790))(iStack_148);
        iVar5 = iVar25;
        do {
          iVar35 = iVar5 + 0xc;
          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));
          iVar5 = iVar35;
        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);
        (**(code **)(pcVar46 + 0x1e790))(iVar25);
        pppppppuVar24 = (uint *******)0x1;
        goto LAB_0001e000;
      }
    }
LAB_0001e674:
    (**(code **)(pcVar46 + 0x1e790))(iVar5);
    iVar5 = iVar25;
    do {
      iVar35 = iVar5 + 0xc;
      (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));
      iVar5 = iVar35;
    } while (iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25);
    (**(code **)(pcVar46 + 0x1e790))(iVar25);
LAB_0001dffc:
    pppppppuVar24 = (uint *******)0x0;
    goto LAB_0001e000;
  }
  (**(code **)(pcVar46 + 0x1e790))(iVar25);
  if (pppppppuVar24 != (uint *******)0x0) {
    pppppppuVar24 = (uint *******)0x0;
    goto LAB_0001e000;
  }
LAB_0001e824:
  pppppppuVar28 = (uint *******)0x100;
  ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);
  pppppppuVar18[0xb] = ppppppuVar20;
  pppppppuVar24 = (uint *******)(uint)(ppppppuVar20 != (uint ******)0x0);
LAB_0001e000:
  if (piStack_e4 == (int *)*piVar6) {
    return pppppppuVar24;
  }
  piVar6 = piStack_e4;
  (**(code **)(pcVar46 + 0x1e764))();
  if (*(byte *)(pppppppuVar28 + 6) == 0x10) {
    ppppppuVar20 = (uint ******)pppppppuVar28[1][7];
    pppppppuVar28[3] = (uint ******)pppppppuVar28[1][3];
    pppppppuVar28[7] = ppppppuVar20;
    return (uint *******)0x0;
  }
  pppppppuVar28[3] = (uint ******)pppppppuVar28;
  ppppppuVar20 = (uint ******)FUN_00019660();
  pppppppuVar28[7] = ppppppuVar20;
  if (ppppppuVar20 == (uint ******)0xffffffff) {
    pppppppuVar24 = (uint *******)0xc;
  }
  else {
    if (*(byte *)(pppppppuVar28 + 6) == 0xc) {
      iVar25 = *piVar6 + (int)ppppppuVar20 * 8;
      *(uint *)(iVar25 + 4) =
           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;
      return (uint *******)0x0;
    }
    pppppppuVar24 = (uint *******)0x0;
  }
  return pppppppuVar24;
}


lui gp,0x2
addiu gp,gp,0x7184
addu gp,gp,t9
addiu sp,sp,-0x60
sw s4,0x48(sp)
sw s1,0x3c(sp)
lw s4,-0x7dbc(gp)
lw s1,0x18(a0)
sw gp,0x10(sp)
sw s6,0x50(sp)
or s6,a2,zero
sw s5,0x4c(sp)
slt v0,a1,s1
sw s0,0x38(sp)
or s5,a1,zero
sw ra,0x5c(sp)
or s0,a0,zero
sw s8,0x58(sp)
subu s1,a1,s1
sw s7,0x54(sp)
sw s3,0x44(sp)
sw s2,0x40(sp)
lw v1,0x0(s4)
sw v1,0x34(sp)
beq v0,zero,0x0001d010
_nop
lw v0,0x50(a0)
slti v0,v0,0x2
bne v0,zero,0x0001cfcc
_li a3,0x4
sw zero,0x10(a0)
sw zero,0x14(a0)
lw a1,0x2c(s0)
li a2,0x6
lw a0,0x34(s0)
andi v1,s6,0x1
lbu v0,0x4b(s0)
movn a2,a3,v1
sw a1,0x30(s0)
sw a0,0x38(s0)
sw zero,0x1c(s0)
sw zero,0x18(s0)
sw zero,0x20(s0)
sb zero,0x4c(s0)
bne v0,zero,0x0001d11c
_sw a2,0x3c(s0)
lw v0,0x0(s0)
or s1,s5,zero
sw v0,0x4(s0)
beq s1,zero,0x0001d128
_nop
lw a2,0x20(s0)
lbu v0,0x4c(s0)
slt v1,s1,a2
beq v1,zero,0x0001d19c
_lw s2,0x1c(s0)
bne v0,zero,0x0001d2ec
_lw t9,-0x7ee8(gp)
addiu a1,s1,-0x1
or a2,s6,zero
addiu t9,t9,-0x34b0
bal 0x0001cb50
_or a0,s0,zero
subu a2,s2,s1
lw v1,0x50(s0)
lw gp,0x10(sp)
slti v1,v1,0x2
beq v1,zero,0x0001d15c
_sw v0,0x3c(s0)
lbu v0,0x4b(s0)
bne v0,zero,0x0001d344
_lw t9,-0x7dac(gp)
lw a1,0x20(s0)
lw v1,0x30(s0)
lw a0,0x38(s0)
subu a1,a1,s1
lw a3,0x50(s0)
subu v1,v1,s1
sw a2,0x1c(s0)
subu a0,a0,s1
sw a1,0x20(s0)
bne v0,zero,0x0001d0a4
_slti a1,a3,0x2
lw v0,0x4(s0)
addu s1,v0,s1
sw s1,0x4(s0)
sw s5,0x18(s0)
sw v1,0x30(s0)
bne a1,zero,0x0001d148
_sw a0,0x38(s0)
lbu v0,0x48(s0)
beq v0,zero,0x0001d184
_or a0,s0,zero
lw t9,-0x7ee8(gp)
addiu t9,t9,-0x74c4
bal 0x00018b3c
_nop
bne v0,zero,0x0001d0e0
_lw gp,0x10(sp)
or v0,zero,zero
sw zero,0x28(s0)
lw a0,0x34(sp)
lw v1,0x0(s4)
bne a0,v1,0x0001d894
_lw ra,0x5c(sp)
lw s8,0x58(sp)
lw s7,0x54(sp)
lw s6,0x50(sp)
lw s5,0x4c(sp)
lw s4,0x48(sp)
lw s3,0x44(sp)
lw s2,0x40(sp)
lw s1,0x3c(sp)
lw s0,0x38(sp)
jr ra
_addiu sp,sp,0x60
or s1,s5,zero
bne s1,zero,0x0001d018
_nop
lw a3,0x50(s0)
lw v1,0x30(s0)
lw a0,0x38(s0)
slti a1,a3,0x2
sw s5,0x18(s0)
sw v1,0x30(s0)
beq a1,zero,0x0001d0b4
_sw a0,0x38(s0)
lbu v0,0x4b(s0)
bne v0,zero,0x0001d518
_nop
b 0x0001d0d8
_sw v1,0x1c(s0)
lw a0,0x8(s0)
sll a1,s1,0x2
lw t9,-0x7dac(gp)
sll a2,a2,0x2
jalr t9
_addu a1,a0,a1
lw a2,0x1c(s0)
lw gp,0x10(sp)
b 0x0001d060
_subu a2,a2,s1
lw t9,-0x7ee8(gp)
addiu t9,t9,-0x774c
bal 0x000188b4
_nop
b 0x0001d0d8
_lw gp,0x10(sp)
bne v0,zero,0x0001d7a4
_nop
lw a3,0x50(s0)
lw s8,0x18(s0)
slti a1,a3,0x2
bne a1,zero,0x0001d594
_sw zero,0x1c(s0)
lbu v0,0x49(s0)
beq v0,zero,0x0001d228
_subu a3,s1,a3
lw v0,0x0(s0)
addiu v1,s1,-0x1
addu s7,v0,s8
addu a3,s7,a3
addu s3,s7,v1
sltu v1,v0,a3
movz a3,v0,v1
sltu v0,s3,a3
bne v0,zero,0x0001d228
_or v1,a3,zero
lbu v0,0x0(s3)
li a0,0x80
andi v0,v0,0xc0
bne v0,a0,0x0001d710
_li a1,-0x40
b 0x0001d21c
_addiu s3,s3,-0x1
lbu v0,0x0(s3)
and v0,a1,v0
bne v0,a0,0x0001d710
_nop
addiu s3,s3,-0x1
sltu v0,s3,v1
beq v0,zero,0x0001d208
_nop
addu s8,s8,a2
slt v0,s8,s5
beq v0,zero,0x0001d61c
_addiu v0,s0,0x10
addiu s7,sp,0x20
sw v0,0x1c(sp)
lw s3,0x2c(s0)
or a0,s7,zero
lw a1,0x0(s0)
lw v1,0x10(s0)
lw v0,0x14(s0)
subu s3,s3,s8
lw t9,-0x7f54(gp)
addu a1,a1,s8
lw a3,0x1c(sp)
or a2,s3,zero
sw v1,0x24(sp)
bal 0x00017c80
_sw v0,0x28(sp)
addiu v1,v0,-0x1
sltiu v1,v1,-0x3
beq v1,zero,0x0001d7cc
_lw gp,0x10(sp)
lw s3,0x20(sp)
addu s8,s8,v0
slt v0,s8,s5
bne v0,zero,0x0001d240
_li v0,-0x1
subu s8,s8,s5
beq s3,v0,0x0001d624
_sw s8,0x1c(s0)
lbu v0,0x4e(s0)
bne v0,zero,0x0001d808
_lw t9,-0x7e48(gp)
li v0,0xa
beq s3,v0,0x0001d794
_li v1,0x2
or v0,zero,zero
sw v0,0x3c(s0)
bne s8,zero,0x0001d468
_nop
lbu v0,0x4b(s0)
lw v1,0x30(s0)
lw a0,0x38(s0)
lw a3,0x50(s0)
sw s8,0x20(s0)
subu v1,v1,s1
b 0x0001d090
_subu a0,a0,s1
lw s7,0xc(s0)
or a0,zero,zero
b 0x0001d314
_or v1,s2,zero
slt a0,v0,s1
beq a0,zero,0x0001d45c
_addiu a0,a1,0x1
slt a2,a0,v1
beq a2,zero,0x0001d364
_slt v0,v0,s1
addu v0,a0,v1
srl a1,v0,0x1f
addu a1,a1,v0
sra a1,a1,0x1
sll v0,a1,0x2
addu v0,s7,v0
lw v0,0x0(v0)
slt a2,s1,v0
beq a2,zero,0x0001d2fc
_nop
b 0x0001d308
_or v1,a1,zero
lw a0,0x4(s0)
jalr t9
_addu a1,a0,s1
lw a2,0x1c(s0)
lw gp,0x10(sp)
lbu v0,0x4b(s0)
b 0x0001d06c
_subu a2,a2,s1
beq v0,zero,0x0001d460
_or s3,a1,zero
addiu s3,a1,0x1
lw t9,-0x7ee8(gp)
or a2,s6,zero
addiu t9,t9,-0x34b0
bal 0x0001cb50
_or a0,s0,zero
slt v1,s1,s2
lw gp,0x10(sp)
beq v1,zero,0x0001d39c
_sw v0,0x3c(s0)
beq s1,s3,0x0001d648
_sll s6,s1,0x2
lw v1,0x2c(s0)
lw a0,0x34(s0)
sb zero,0x4c(s0)
subu v1,v1,s5
subu a0,a0,s5
addu a1,v1,s1
addu v0,a0,s1
sw a1,0x30(s0)
blez s3,0x0001d3fc
_sw v0,0x38(s0)
sll v0,s3,0x2
addiu v0,v0,-0x4
addu a1,s7,v0
lw a1,0x0(a1)
bne s1,a1,0x0001d3fc
_addiu v0,v0,0x4
b 0x0001d3f0
_addu v0,s7,v0
lw a1,-0x4(v0)
bne a1,s1,0x0001d3fc
_nop
addiu s3,s3,-0x1
bne s3,zero,0x0001d3e4
_addiu v0,v0,-0x4
slt v0,s3,s2
beq v0,zero,0x0001d4a4
_sll a2,s3,0x2
lw v0,0x8(s0)
li a1,-0x1
addu v0,v0,a2
lw a3,0x0(v0)
bne a3,a1,0x0001d4ac
_li a3,-0x1
b 0x0001d438
_addiu s3,s3,0x1
lw a1,0x0(v0)
bne a1,a3,0x0001d4ac
_sll a2,s3,0x2
addiu s3,s3,0x1
bne s3,s2,0x0001d428
_addiu v0,v0,0x4
addiu v0,v0,-0x4
or a2,zero,zero
sw zero,0x1c(s0)
lw a3,0x50(s0)
lbu v0,0x4b(s0)
b 0x0001d090
_sw a2,0x20(s0)
or s3,a1,zero
b 0x0001d370
_addiu a1,a1,-0x1
blez s8,0x0001d490
_or v0,zero,zero
lw v1,0x8(s0)
li a1,-0x1
sw a1,0x0(v1)
addiu v0,v0,0x1
lw s8,0x1c(s0)
slt a0,v0,s8
bne a0,zero,0x0001d478
_addiu v1,v1,0x4
lbu v0,0x4b(s0)
bne v0,zero,0x0001d838
_lw t9,-0x7e40(gp)
b 0x0001d2d0
_lw s8,0x1c(s0)
beq s3,s2,0x0001d444
_nop
addu s7,s7,a2
lw a2,0x0(s7)
subu a2,a2,s1
beq a2,zero,0x0001d44c
_sw a2,0x1c(s0)
blez a2,0x0001d4f0
_lw t9,-0x7e40(gp)
lw v1,0x8(s0)
or v0,zero,zero
li a1,-0x1
sw a1,0x0(v1)
addiu v0,v0,0x1
lw a2,0x1c(s0)
slt a0,v0,a2
bne a0,zero,0x0001d4d4
_addiu v1,v1,0x4
lw t9,-0x7e40(gp)
li a1,0xff
jalr t9
_lw a0,0x4(s0)
lw v1,0x30(s0)
lw a0,0x38(s0)
lw gp,0x10(sp)
lw a2,0x1c(s0)
subu v1,v1,s1
b 0x0001d44c
_subu a0,a0,s1
lbu v0,0x48(s0)
bne v0,zero,0x0001d6fc
_lw t9,-0x7ee8(gp)
lw a1,0x40(s0)
beq a1,zero,0x0001d0dc
_or v0,zero,zero
lw a2,0x24(s0)
lw a0,0x1c(s0)
slt v0,v1,a2
movz v1,a2,v0
slt v0,a0,v1
bne v0,zero,0x0001d55c
_nop
b 0x0001d82c
_or v1,a0,zero
lw s5,0x18(s0)
lw a1,0x40(s0)
lw v0,0x0(s0)
lw a2,0x4(s0)
addu v0,v0,a0
addu a2,a2,a0
addu s5,v0,s5
addiu a0,a0,0x1
lbu v0,0x0(s5)
addu a1,a1,v0
lbu v0,0x0(a1)
bne v1,a0,0x0001d554
_sb v0,0x0(a2)
sw v1,0x1c(s0)
b 0x0001d0d8
_sw v1,0x20(s0)
lw v0,0x0(s0)
lw a0,0x40(s0)
addu v0,v0,s1
addu v0,v0,s8
lbu v1,-0x1(v0)
beq a0,zero,0x0001d5b8
_sw zero,0x20(s0)
addu v1,a0,v1
lbu v1,0x0(v1)
sra v0,v1,0x5
lw a0,0x44(s0)
sll v0,v0,0x2
addu v0,a0,v0
lw a2,0x0(v0)
srlv a2,a2,v1
andi a2,a2,0x1
bne a2,zero,0x0001d5f0
_li v0,0xa
bne v1,v0,0x0001d5f0
_li v0,0x2
lbu a2,0x4d(s0)
movz v0,zero,a2
or a2,v0,zero
lw v1,0x30(s0)
lw a0,0x38(s0)
lbu v0,0x4b(s0)
sw a2,0x3c(s0)
subu v1,v1,s1
beq v0,zero,0x0001d098
_subu a0,a0,s1
sw s5,0x18(s0)
sw v1,0x30(s0)
b 0x0001d14c
_sw a0,0x38(s0)
subu s8,s8,s5
sw s8,0x1c(s0)
lw t9,-0x7ee8(gp)
addiu a1,s2,-0x1
or a2,s6,zero
addiu t9,t9,-0x34b0
bal 0x0001cb50
_or a0,s0,zero
lw gp,0x10(sp)
b 0x0001d2c4
_sw v0,0x3c(s0)
addu v0,s7,s6
lw v0,0x0(v0)
bne v0,s1,0x0001d39c
_subu a2,s2,s1
lw a0,0x8(s0)
lw t9,-0x7dac(gp)
sll a2,a2,0x2
jalr t9
_addu a1,a0,s6
lw gp,0x10(sp)
lw a0,0x4(s0)
lw a2,0x1c(s0)
lw t9,-0x7dac(gp)
addu a1,a0,s1
jalr t9
_subu a2,a2,s1
lw v0,0x1c(s0)
lw v1,0x20(s0)
lw gp,0x10(sp)
subu v0,v0,s1
subu v1,v1,s1
sw v0,0x1c(s0)
blez v0,0x0001d6e0
_sw v1,0x20(s0)
lw v0,0xc(s0)
subu a2,zero,s1
or a0,zero,zero
sll a2,a2,0x2
addu v0,v0,s6
lw v1,0x0(v0)
addu a1,v0,a2
addiu a0,a0,0x1
subu v1,v1,s1
sw v1,0x0(a1)
lw v1,0x1c(s0)
slt v1,a0,v1
bne v1,zero,0x0001d6bc
_addiu v0,v0,0x4
lw v1,0x30(s0)
lw a0,0x38(s0)
lw a3,0x50(s0)
lbu v0,0x4b(s0)
subu v1,v1,s1
b 0x0001d090
_subu a0,a0,s1
addiu t9,t9,-0x7830
bal 0x000187d0
_or a0,s0,zero
b 0x0001d0d8
_lw gp,0x10(sp)
lw a2,0x30(s0)
or a1,s3,zero
lw v1,0x40(s0)
addu a2,s7,a2
bne v1,zero,0x0001d854
_subu a2,a2,s3
addiu a3,sp,0x24
lw t9,-0x7f54(gp)
addiu a0,sp,0x20
sw zero,0x24(sp)
bal 0x00017c80
_sw zero,0x4(a3)
addu v1,s7,s1
subu v1,v1,s3
sltu a0,v0,v1
bne a0,zero,0x0001d760
_lw gp,0x10(sp)
sltiu a0,v0,-0x2
bne a0,zero,0x0001d76c
_nop
lw s8,0x18(s0)
b 0x0001d228
_lw a2,0x20(s0)
lw s3,0x20(sp)
subu s8,v0,v1
li v0,-0x1
sw zero,0x10(s0)
sw zero,0x14(s0)
bne s3,v0,0x0001d2a4
_sw s8,0x1c(s0)
lw s8,0x18(s0)
b 0x0001d228
_lw a2,0x20(s0)
lbu v0,0x4d(s0)
movz v1,zero,v0
b 0x0001d2c0
_or v0,v1,zero
lw v1,0x2c(s0)
lw v0,0x34(s0)
sb zero,0x4c(s0)
subu v1,v1,s5
subu v0,v0,s5
addu v1,v1,s1
addu v0,v0,s1
sw v1,0x30(s0)
b 0x0001d1a4
_sw v0,0x38(s0)
beq v0,zero,0x0001d800
_nop
beq s3,zero,0x0001d800
_nop
lw v0,0x0(s0)
addu v0,v0,s8
lbu s3,0x0(v0)
lw v1,0x24(sp)
li v0,0x1
sw v1,0x10(s0)
lw v1,0x28(sp)
b 0x0001d288
_sw v1,0x14(s0)
b 0x0001d7e8
_or s3,zero,zero
jalr t9
_or a0,s3,zero
bne v0,zero,0x0001d824
_lw gp,0x10(sp)
li v0,0x5f
bne s3,v0,0x0001d2b0
_nop
b 0x0001d2c0
_li v0,0x1
sw v1,0x1c(s0)
b 0x0001d0d8
_sw v1,0x20(s0)
li a1,0xff
lw a0,0x4(s0)
jalr t9
_or a2,s8,zero
lw gp,0x10(sp)
b 0x0001d2cc
_lw s8,0x1c(s0)
li a0,0x6
slti v0,a2,0x7
movn a0,a2,v0
blez a2,0x0001d728
_addiu a1,sp,0x2c
addu a3,s3,a0
addu v0,a1,a0
lbu a0,-0x1(a3)
addiu v0,v0,-0x1
addiu a3,a3,-0x1
addu a0,v1,a0
lbu a0,0x0(a0)
bne a1,v0,0x0001d870
_sb a0,0x0(v0)
b 0x0001d72c
_addiu a3,sp,0x24
lw t9,-0x7ddc(gp)
jalr t9
_nop
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nuint ******* FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)\n\n{\n  byte *pbVar1;\n  byte bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  char cVar15;\n  int iVar5;\n  int *piVar6;\n  uint *puVar7;\n  byte *pbVar8;\n  undefined4 *puVar9;\n  code *pcVar10;\n  int **ppiVar11;\n  int **ppiVar12;\n  uint ******ppppppuVar13;\n  uint *puVar14;\n  uint *******pppppppuVar16;\n  undefined4 *puVar17;\n  uint *******pppppppuVar18;\n  uint *******pppppppuVar19;\n  uint ******ppppppuVar20;\n  undefined4 *puVar21;\n  uint *******pppppppuVar22;\n  int iVar23;\n  uint *******pppppppuVar24;\n  int iVar25;\n  uint uVar26;\n  undefined4 *puVar27;\n  uint *******pppppppuVar28;\n  uint uVar29;\n  uint ****ppppuVar30;\n  uint *****pppppuVar31;\n  uint ******ppppppuVar32;\n  uint *puVar33;\n  uint uVar34;\n  int iVar35;\n  uint ******ppppppuVar36;\n  int **ppiVar37;\n  uint *****pppppuVar38;\n  int *piVar39;\n  uint *******pppppppuVar40;\n  uint *******unaff_s2;\n  uint *******unaff_s3;\n  int iVar41;\n  uint *******unaff_s7;\n  int iVar42;\n  undefined *puVar43;\n  code *pcVar44;\n  undefined *puVar45;\n  uint *******unaff_s8;\n  code *pcVar46;\n  undefined4 uVar47;\n  int iStack_184;\n  int iStack_178;\n  int iStack_154;\n  byte *pbStack_150;\n  undefined4 uStack_14c;\n  int iStack_148;\n  uint *******pppppppuStack_144;\n  uint uStack_140;\n  uint uStack_13c;\n  uint uStack_138;\n  uint uStack_134;\n  uint uStack_130;\n  uint uStack_12c;\n  uint uStack_128;\n  uint ******ppppppuStack_124;\n  uint uStack_120;\n  uint uStack_11c;\n  uint uStack_118;\n  uint uStack_114;\n  uint uStack_110;\n  uint uStack_10c;\n  uint uStack_108;\n  int *piStack_104;\n  uint uStack_100;\n  uint uStack_fc;\n  uint uStack_f8;\n  uint uStack_f4;\n  uint uStack_f0;\n  uint uStack_ec;\n  uint uStack_e8;\n  int *piStack_e4;\n  int *piStack_e0;\n  uint ******ppppppuStack_dc;\n  uint *******pppppppuStack_d8;\n  uint *******pppppppuStack_d4;\n  int iStack_d0;\n  uint *******pppppppuStack_cc;\n  uint *******pppppppuStack_c8;\n  uint *******pppppppuStack_c4;\n  uint *******pppppppuStack_c0;\n  undefined4 uStack_bc;\n  undefined *puStack_a8;\n  uint *******pppppppuStack_a0;\n  undefined4 *puStack_9c;\n  uint ******ppppppuStack_98;\n  undefined4 uStack_94;\n  uint ******ppppppuStack_90;\n  uint *******pppppppuStack_8c;\n  int *piStack_88;\n  uint *******pppppppuStack_84;\n  uint *******pppppppuStack_80;\n  uint *******pppppppuStack_7c;\n  undefined *puStack_78;\n  uint *******pppppppuStack_74;\n  uint *******pppppppuStack_70;\n  uint *******pppppppuStack_6c;\n  uint *******pppppppuStack_68;\n  code *pcStack_64;\n  uint *******local_40;\n  int local_3c;\n  int local_38;\n  uint ******appppppuStack_34 [2];\n  uint *******local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0003c314;\n  local_2c = *(uint ********)PTR___stack_chk_guard_0003c314;\n  pppppppuVar24 = param_3;\n  pppppppuVar40 = (uint *******)((int)param_2 - param_1[6]);\n  if ((int)param_2 < param_1[6]) {\n    if (1 < param_1[0x14]) {\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    pppppppuVar24 = (uint *******)0x6;\n    if (((uint)param_3 & 1) != 0) {\n      pppppppuVar24 = (uint *******)0x4;\n    }\n    param_1[0xc] = param_1[0xb];\n    param_1[0xe] = param_1[0xd];\n    param_1[7] = 0;\n    param_1[6] = 0;\n    param_1[8] = 0;\n    *(undefined1 *)(param_1 + 0x13) = 0;\n    param_1[0xf] = (int)pppppppuVar24;\n    pppppppuVar40 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n      goto LAB_0001d010;\n    }\n    if (param_2 == (uint *******)0x0) goto LAB_0001d128;\nLAB_0001d018:\n    iVar25 = param_1[8];\n    unaff_s2 = (uint *******)param_1[7];\n    if ((int)pppppppuVar40 < iVar25) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);\n        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);\n        param_1[0xf] = iVar25;\n        if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        cVar15 = *(char *)((int)param_1 + 0x4b);\n        if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        param_1[7] = (int)pppppppuVar24;\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        param_1[8] = param_1[8] - (int)pppppppuVar40;\n      }\n      else {\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }\nLAB_0001d090:\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      if (cVar15 == '\0') {\nLAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);\n        param_1[1] = (int)pppppppuVar40;\n      }\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n      if (pppppppuVar22 == (uint *******)0x0) goto LAB_0001d0b4;\nLAB_0001d148:\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }\n      pppppppuVar28 = (uint *******)param_1[0x14];\n      unaff_s8 = (uint *******)param_1[6];\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      param_1[7] = 0;\n      if (pppppppuVar22 == (uint *******)0x0) {\n        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }\n      uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];\n      param_1[8] = 0;\n      if (param_1[0x10] != 0) {\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }\n      pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);\n      if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {\n        pppppppuVar24 = (uint *******)0x0;\n      }\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n      param_1[0xf] = (int)pppppppuVar24;\n      pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n      iVar25 = param_1[0xe] - (int)pppppppuVar40;\n      if (cVar15 == '\0') goto LAB_0001d098;\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n    }\n    if (cVar15 == '\0') {\n      param_1[7] = (int)pppppppuVar16;\n    }\n    else if (*(char *)(param_1 + 0x12) == '\0') {\n      pppppppuVar22 = (uint *******)param_1[0x10];\n      if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }\n    }\n    else {\n      FUN_000187d0(param_1);\n    }\nLAB_0001d0dc:\n    pppppppuVar16 = (uint *******)0x0;\n    param_1[10] = 0;\n  }\n  else {\nLAB_0001d010:\n    if (pppppppuVar40 != (uint *******)0x0) goto LAB_0001d018;\nLAB_0001d128:\n    pppppppuVar28 = (uint *******)param_1[0x14];\n    pppppppuVar16 = (uint *******)param_1[0xc];\n    pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n    param_1[6] = (int)param_2;\n    param_1[0xc] = (int)pppppppuVar16;\n    param_1[0xe] = param_1[0xe];\n    if (pppppppuVar22 != (uint *******)0x0) goto LAB_0001d148;\nLAB_0001d0b4:\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_000188b4(param_1);\n      goto LAB_0001d0dc;\n    }\n    pppppppuVar16 = (uint *******)FUN_00018b3c();\n    if (pppppppuVar16 == (uint *******)0x0) goto LAB_0001d0dc;\n  }\n  if (local_2c == *(uint ********)puVar4) {\n    return pppppppuVar16;\n  }\n  pcVar46 = FUN_0001d8a0;\n  pppppppuVar16 = local_2c;\n  puVar43 = PTR___stack_chk_fail_0003c2f4;\n  (*(code *)PTR___stack_chk_fail_0003c2f4)();\n  puVar45 = puVar43 + 0x26830;\n  puStack_9c = *(undefined4 **)(puVar43 + 0x1ea74);\n  ppppppuStack_98 = (uint ******)0x0;\n  uStack_94 = 0;\n  ppppppuStack_90 = (uint ******)0x0;\n  ppppppuVar20 = pppppppuVar16[7] + (int)pppppppuVar22 * 3;\n  puStack_78 = puVar4;\n  pppppppuStack_8c = (uint *******)*puStack_9c;\n  pppppuVar31 = ppppppuVar20[1];\n  iVar25 = *(int *)(puVar43 + 0x1e948);\n  pppppppuVar18 = pppppppuVar22;\n  puStack_a8 = puVar45;\n  pppppppuStack_a0 = pppppppuVar28;\n  piStack_88 = param_1;\n  pppppppuStack_84 = pppppppuVar40;\n  pppppppuStack_80 = unaff_s2;\n  pppppppuStack_7c = unaff_s3;\n  pppppppuStack_74 = param_2;\n  pppppppuStack_70 = param_3;\n  pppppppuStack_6c = unaff_s7;\n  pppppppuStack_68 = unaff_s8;\n  pcStack_64 = pcVar46;\n  if (0 < (int)pppppuVar31) {\n    pppppppuVar40 = &ppppppuStack_98;\n    param_1 = (int *)0x0;\n    param_2 = (uint *******)(ppppppuVar20 + 2);\n    iVar25 = iVar25 + -0x5d30;\n    param_3 = (uint *******)(*(int *)(puVar43 + 0x1e948) + -20000);\n    do {\n      pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1];\n      if ((pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)) {\n        iVar35 = (int)pppppppuVar28 * 0xc;\n        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;\n        pppppuVar38 = ppppppuVar36[2];\n        pppppppuVar18 = param_2;\n        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);\n        if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }\n      param_1 = (int *)((int)param_1 + 1);\n    } while ((int)param_1 < (int)pppppuVar31);\n    unaff_s2 = pppppppuVar22;\n    unaff_s3 = pppppppuVar24;\n    unaff_s7 = pppppppuVar40;\n    unaff_s8 = pppppppuVar16;\n    if (0 < (int)pppppuVar31) {\n      iVar5 = 0;\n      pppppppuVar22 = pppppppuVar24 + 1;\n      pppppppuVar16 = pppppppuVar24 + 2;\n      pppppppuVar40 = &ppppppuStack_90;\n      do {\n        pppppppuVar19 = pppppppuVar40;\n        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);\n        pppppppuVar28 = pppppppuVar16;\n        if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }\n        iVar5 = iVar5 + 1;\n        pppppppuVar18 = pppppppuVar40;\n        pppppppuVar16 = pppppppuVar28;\n        pppppppuVar40 = pppppppuVar19;\n        puVar45 = puStack_a8;\n      } while (iVar5 < (int)pppppuVar31);\n    }\n  }\n  (**(code **)(puVar45 + -0x7db0))(ppppppuStack_90);\n  pppppppuVar28 = (uint *******)0x0;\n  pppppppuVar22 = unaff_s2;\n  pppppppuVar24 = unaff_s3;\n  pppppppuVar40 = unaff_s7;\n  pppppppuVar16 = unaff_s8;\nLAB_0001db20:\n  if (pppppppuStack_8c == (uint *******)*puStack_9c) {\n    return pppppppuVar28;\n  }\n  pcVar46 = *(code **)(puStack_a8 + -0x7ddc);\n  uVar47 = 0x1db90;\n  pppppppuVar19 = pppppppuStack_8c;\n  (*pcVar46)();\n  piVar6 = *(int **)(pcVar46 + 0x1e784);\n  piStack_e4 = (int *)*piVar6;\n  pppppppuVar28 = pppppppuVar18;\n  piStack_e0 = param_1;\n  ppppppuStack_dc = ppppppuVar20;\n  pppppppuStack_d8 = pppppppuVar22;\n  pppppppuStack_d4 = pppppppuVar24;\n  iStack_d0 = iVar25;\n  pppppppuStack_cc = param_2;\n  pppppppuStack_c8 = param_3;\n  pppppppuStack_c4 = pppppppuVar40;\n  pppppppuStack_c0 = pppppppuVar16;\n  uStack_bc = uVar47;\n  iVar25 = (**(code **)(pcVar46 + 0x1e724))(0x2c00);\n  if (iVar25 == 0) goto LAB_0001dffc;\n  ppppppuVar20 = pppppppuVar18[2];\n  pppppppuVar18[0xb] = (uint ******)0x0;\n  puVar7 = (uint *)(iVar25 + 0xc00);\n  pppppppuVar18[0xc] = (uint ******)0x0;\n  pppppppuStack_144 = (uint *******)0x0;\n  uStack_140 = 0;\n  uStack_13c = 0;\n  uStack_138 = 0;\n  uStack_134 = 0;\n  uStack_130 = 0;\n  uStack_12c = 0;\n  uStack_128 = 0;\n  if (0 < (int)ppppppuVar20) {\n    iVar5 = *(int *)(pcVar46 + 0x1e658);\n    iStack_184 = 0;\n    iVar35 = *(int *)(pcVar46 + 0x1e658);\n    pppppppuVar24 = (uint *******)0x0;\nLAB_0001dc74:\n    ppppppuVar36 = *pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2;\n    bVar2 = *(byte *)(ppppppuVar36 + 1);\n    uVar34 = (uint)((int)ppppppuVar36[1] << 8) >> 0x16;\n    if (bVar2 == 1) {\n      pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5));\n      pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f));\n      *pppppppuVar40 = (uint ******)pppppppuVar28;\nLAB_0001e060:\n      pppppppuVar40 = pppppppuStack_144;\n      if (uVar34 == 0) goto LAB_0001e15c;\n      if ((uVar34 & 0x20) == 0) {\n        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }\n        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      else {\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      pppppppuStack_144 = (uint *******)0x0;\n      uStack_140 = 0;\n      uStack_13c = 0;\n      uStack_138 = 0;\n      uStack_134 = 0;\n      uStack_130 = 0;\n      uStack_12c = 0;\n      uStack_128 = 0;\n    }\n    else {\n      if (bVar2 == 3) {\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }\n      if (bVar2 == 5) {\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      pppppppuVar28 = (uint *******)0xffffffff;\n      if (bVar2 == 7) {\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }\nLAB_0001dcc8:\n    iStack_184 = iStack_184 + 1;\n    if ((int)ppppppuVar20 <= iStack_184) goto code_r0x0001dcdc;\n    goto LAB_0001dc74;\n  }\n  (**(code **)(pcVar46 + 0x1e790))(iVar25);\n  goto LAB_0001e824;\ncode_r0x0001dcdc:\n  if (0 < (int)pppppppuVar24) {\n    pbVar8 = (byte *)((int)pppppppuVar24 + 1);\n    uStack_14c = 0;\n    pbStack_150 = pbVar8;\n    iVar5 = (**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4);\n    iStack_148 = iVar5;\n    if ((iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)) {\n      iStack_178 = (int)pppppppuVar24 << 1;\n    }\n    else {\n      iStack_178 = (int)pppppppuVar24 * 2;\n      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);\n      if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }\n    }\nLAB_0001e674:\n    (**(code **)(pcVar46 + 0x1e790))(iVar5);\n    iVar5 = iVar25;\n    do {\n      iVar35 = iVar5 + 0xc;\n      (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n      iVar5 = iVar35;\n    } while (iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25);\n    (**(code **)(pcVar46 + 0x1e790))(iVar25);\nLAB_0001dffc:\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }\n  (**(code **)(pcVar46 + 0x1e790))(iVar25);\n  if (pppppppuVar24 != (uint *******)0x0) {\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }\nLAB_0001e824:\n  pppppppuVar28 = (uint *******)0x100;\n  ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n  pppppppuVar18[0xb] = ppppppuVar20;\n  pppppppuVar24 = (uint *******)(uint)(ppppppuVar20 != (uint ******)0x0);\nLAB_0001e000:\n  if (piStack_e4 == (int *)*piVar6) {\n    return pppppppuVar24;\n  }\n  piVar6 = piStack_e4;\n  (**(code **)(pcVar46 + 0x1e764))();\n  if (*(byte *)(pppppppuVar28 + 6) == 0x10) {\n    ppppppuVar20 = (uint ******)pppppppuVar28[1][7];\n    pppppppuVar28[3] = (uint ******)pppppppuVar28[1][3];\n    pppppppuVar28[7] = ppppppuVar20;\n    return (uint *******)0x0;\n  }\n  pppppppuVar28[3] = (uint ******)pppppppuVar28;\n  ppppppuVar20 = (uint ******)FUN_00019660();\n  pppppppuVar28[7] = ppppppuVar20;\n  if (ppppppuVar20 == (uint ******)0xffffffff) {\n    pppppppuVar24 = (uint *******)0xc;\n  }\n  else {\n    if (*(byte *)(pppppppuVar28 + 6) == 0xc) {\n      iVar25 = *piVar6 + (int)ppppppuVar20 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;\n      return (uint *******)0x0;\n    }\n    pppppppuVar24 = (uint *******)0x0;\n  }\n  return pppppppuVar24;\n}\n\n" comment (function_definition "uint ******* FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)\n\n{\n  byte *pbVar1;\n  byte bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  char cVar15;\n  int iVar5;\n  int *piVar6;\n  uint *puVar7;\n  byte *pbVar8;\n  undefined4 *puVar9;\n  code *pcVar10;\n  int **ppiVar11;\n  int **ppiVar12;\n  uint ******ppppppuVar13;\n  uint *puVar14;\n  uint *******pppppppuVar16;\n  undefined4 *puVar17;\n  uint *******pppppppuVar18;\n  uint *******pppppppuVar19;\n  uint ******ppppppuVar20;\n  undefined4 *puVar21;\n  uint *******pppppppuVar22;\n  int iVar23;\n  uint *******pppppppuVar24;\n  int iVar25;\n  uint uVar26;\n  undefined4 *puVar27;\n  uint *******pppppppuVar28;\n  uint uVar29;\n  uint ****ppppuVar30;\n  uint *****pppppuVar31;\n  uint ******ppppppuVar32;\n  uint *puVar33;\n  uint uVar34;\n  int iVar35;\n  uint ******ppppppuVar36;\n  int **ppiVar37;\n  uint *****pppppuVar38;\n  int *piVar39;\n  uint *******pppppppuVar40;\n  uint *******unaff_s2;\n  uint *******unaff_s3;\n  int iVar41;\n  uint *******unaff_s7;\n  int iVar42;\n  undefined *puVar43;\n  code *pcVar44;\n  undefined *puVar45;\n  uint *******unaff_s8;\n  code *pcVar46;\n  undefined4 uVar47;\n  int iStack_184;\n  int iStack_178;\n  int iStack_154;\n  byte *pbStack_150;\n  undefined4 uStack_14c;\n  int iStack_148;\n  uint *******pppppppuStack_144;\n  uint uStack_140;\n  uint uStack_13c;\n  uint uStack_138;\n  uint uStack_134;\n  uint uStack_130;\n  uint uStack_12c;\n  uint uStack_128;\n  uint ******ppppppuStack_124;\n  uint uStack_120;\n  uint uStack_11c;\n  uint uStack_118;\n  uint uStack_114;\n  uint uStack_110;\n  uint uStack_10c;\n  uint uStack_108;\n  int *piStack_104;\n  uint uStack_100;\n  uint uStack_fc;\n  uint uStack_f8;\n  uint uStack_f4;\n  uint uStack_f0;\n  uint uStack_ec;\n  uint uStack_e8;\n  int *piStack_e4;\n  int *piStack_e0;\n  uint ******ppppppuStack_dc;\n  uint *******pppppppuStack_d8;\n  uint *******pppppppuStack_d4;\n  int iStack_d0;\n  uint *******pppppppuStack_cc;\n  uint *******pppppppuStack_c8;\n  uint *******pppppppuStack_c4;\n  uint *******pppppppuStack_c0;\n  undefined4 uStack_bc;\n  undefined *puStack_a8;\n  uint *******pppppppuStack_a0;\n  undefined4 *puStack_9c;\n  uint ******ppppppuStack_98;\n  undefined4 uStack_94;\n  uint ******ppppppuStack_90;\n  uint *******pppppppuStack_8c;\n  int *piStack_88;\n  uint *******pppppppuStack_84;\n  uint *******pppppppuStack_80;\n  uint *******pppppppuStack_7c;\n  undefined *puStack_78;\n  uint *******pppppppuStack_74;\n  uint *******pppppppuStack_70;\n  uint *******pppppppuStack_6c;\n  uint *******pppppppuStack_68;\n  code *pcStack_64;\n  uint *******local_40;\n  int local_3c;\n  int local_38;\n  uint ******appppppuStack_34 [2];\n  uint *******local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0003c314;\n  local_2c = *(uint ********)PTR___stack_chk_guard_0003c314;\n  pppppppuVar24 = param_3;\n  pppppppuVar40 = (uint *******)((int)param_2 - param_1[6]);\n  if ((int)param_2 < param_1[6]) {\n    if (1 < param_1[0x14]) {\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    pppppppuVar24 = (uint *******)0x6;\n    if (((uint)param_3 & 1) != 0) {\n      pppppppuVar24 = (uint *******)0x4;\n    }\n    param_1[0xc] = param_1[0xb];\n    param_1[0xe] = param_1[0xd];\n    param_1[7] = 0;\n    param_1[6] = 0;\n    param_1[8] = 0;\n    *(undefined1 *)(param_1 + 0x13) = 0;\n    param_1[0xf] = (int)pppppppuVar24;\n    pppppppuVar40 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n      goto LAB_0001d010;\n    }\n    if (param_2 == (uint *******)0x0) goto LAB_0001d128;\nLAB_0001d018:\n    iVar25 = param_1[8];\n    unaff_s2 = (uint *******)param_1[7];\n    if ((int)pppppppuVar40 < iVar25) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);\n        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);\n        param_1[0xf] = iVar25;\n        if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        cVar15 = *(char *)((int)param_1 + 0x4b);\n        if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        param_1[7] = (int)pppppppuVar24;\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        param_1[8] = param_1[8] - (int)pppppppuVar40;\n      }\n      else {\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }\nLAB_0001d090:\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      if (cVar15 == '\0') {\nLAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);\n        param_1[1] = (int)pppppppuVar40;\n      }\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n      if (pppppppuVar22 == (uint *******)0x0) goto LAB_0001d0b4;\nLAB_0001d148:\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }\n      pppppppuVar28 = (uint *******)param_1[0x14];\n      unaff_s8 = (uint *******)param_1[6];\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      param_1[7] = 0;\n      if (pppppppuVar22 == (uint *******)0x0) {\n        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }\n      uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];\n      param_1[8] = 0;\n      if (param_1[0x10] != 0) {\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }\n      pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);\n      if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {\n        pppppppuVar24 = (uint *******)0x0;\n      }\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n      param_1[0xf] = (int)pppppppuVar24;\n      pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n      iVar25 = param_1[0xe] - (int)pppppppuVar40;\n      if (cVar15 == '\0') goto LAB_0001d098;\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n    }\n    if (cVar15 == '\0') {\n      param_1[7] = (int)pppppppuVar16;\n    }\n    else if (*(char *)(param_1 + 0x12) == '\0') {\n      pppppppuVar22 = (uint *******)param_1[0x10];\n      if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }\n    }\n    else {\n      FUN_000187d0(param_1);\n    }\nLAB_0001d0dc:\n    pppppppuVar16 = (uint *******)0x0;\n    param_1[10] = 0;\n  }\n  else {\nLAB_0001d010:\n    if (pppppppuVar40 != (uint *******)0x0) goto LAB_0001d018;\nLAB_0001d128:\n    pppppppuVar28 = (uint *******)param_1[0x14];\n    pppppppuVar16 = (uint *******)param_1[0xc];\n    pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n    param_1[6] = (int)param_2;\n    param_1[0xc] = (int)pppppppuVar16;\n    param_1[0xe] = param_1[0xe];\n    if (pppppppuVar22 != (uint *******)0x0) goto LAB_0001d148;\nLAB_0001d0b4:\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_000188b4(param_1);\n      goto LAB_0001d0dc;\n    }\n    pppppppuVar16 = (uint *******)FUN_00018b3c();\n    if (pppppppuVar16 == (uint *******)0x0) goto LAB_0001d0dc;\n  }\n  if (local_2c == *(uint ********)puVar4) {\n    return pppppppuVar16;\n  }\n  pcVar46 = FUN_0001d8a0;\n  pppppppuVar16 = local_2c;\n  puVar43 = PTR___stack_chk_fail_0003c2f4;\n  (*(code *)PTR___stack_chk_fail_0003c2f4)();\n  puVar45 = puVar43 + 0x26830;\n  puStack_9c = *(undefined4 **)(puVar43 + 0x1ea74);\n  ppppppuStack_98 = (uint ******)0x0;\n  uStack_94 = 0;\n  ppppppuStack_90 = (uint ******)0x0;\n  ppppppuVar20 = pppppppuVar16[7] + (int)pppppppuVar22 * 3;\n  puStack_78 = puVar4;\n  pppppppuStack_8c = (uint *******)*puStack_9c;\n  pppppuVar31 = ppppppuVar20[1];\n  iVar25 = *(int *)(puVar43 + 0x1e948);\n  pppppppuVar18 = pppppppuVar22;\n  puStack_a8 = puVar45;\n  pppppppuStack_a0 = pppppppuVar28;\n  piStack_88 = param_1;\n  pppppppuStack_84 = pppppppuVar40;\n  pppppppuStack_80 = unaff_s2;\n  pppppppuStack_7c = unaff_s3;\n  pppppppuStack_74 = param_2;\n  pppppppuStack_70 = param_3;\n  pppppppuStack_6c = unaff_s7;\n  pppppppuStack_68 = unaff_s8;\n  pcStack_64 = pcVar46;\n  if (0 < (int)pppppuVar31) {\n    pppppppuVar40 = &ppppppuStack_98;\n    param_1 = (int *)0x0;\n    param_2 = (uint *******)(ppppppuVar20 + 2);\n    iVar25 = iVar25 + -0x5d30;\n    param_3 = (uint *******)(*(int *)(puVar43 + 0x1e948) + -20000);\n    do {\n      pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1];\n      if ((pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)) {\n        iVar35 = (int)pppppppuVar28 * 0xc;\n        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;\n        pppppuVar38 = ppppppuVar36[2];\n        pppppppuVar18 = param_2;\n        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);\n        if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }\n      param_1 = (int *)((int)param_1 + 1);\n    } while ((int)param_1 < (int)pppppuVar31);\n    unaff_s2 = pppppppuVar22;\n    unaff_s3 = pppppppuVar24;\n    unaff_s7 = pppppppuVar40;\n    unaff_s8 = pppppppuVar16;\n    if (0 < (int)pppppuVar31) {\n      iVar5 = 0;\n      pppppppuVar22 = pppppppuVar24 + 1;\n      pppppppuVar16 = pppppppuVar24 + 2;\n      pppppppuVar40 = &ppppppuStack_90;\n      do {\n        pppppppuVar19 = pppppppuVar40;\n        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);\n        pppppppuVar28 = pppppppuVar16;\n        if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }\n        iVar5 = iVar5 + 1;\n        pppppppuVar18 = pppppppuVar40;\n        pppppppuVar16 = pppppppuVar28;\n        pppppppuVar40 = pppppppuVar19;\n        puVar45 = puStack_a8;\n      } while (iVar5 < (int)pppppuVar31);\n    }\n  }\n  (**(code **)(puVar45 + -0x7db0))(ppppppuStack_90);\n  pppppppuVar28 = (uint *******)0x0;\n  pppppppuVar22 = unaff_s2;\n  pppppppuVar24 = unaff_s3;\n  pppppppuVar40 = unaff_s7;\n  pppppppuVar16 = unaff_s8;\nLAB_0001db20:\n  if (pppppppuStack_8c == (uint *******)*puStack_9c) {\n    return pppppppuVar28;\n  }\n  pcVar46 = *(code **)(puStack_a8 + -0x7ddc);\n  uVar47 = 0x1db90;\n  pppppppuVar19 = pppppppuStack_8c;\n  (*pcVar46)();\n  piVar6 = *(int **)(pcVar46 + 0x1e784);\n  piStack_e4 = (int *)*piVar6;\n  pppppppuVar28 = pppppppuVar18;\n  piStack_e0 = param_1;\n  ppppppuStack_dc = ppppppuVar20;\n  pppppppuStack_d8 = pppppppuVar22;\n  pppppppuStack_d4 = pppppppuVar24;\n  iStack_d0 = iVar25;\n  pppppppuStack_cc = param_2;\n  pppppppuStack_c8 = param_3;\n  pppppppuStack_c4 = pppppppuVar40;\n  pppppppuStack_c0 = pppppppuVar16;\n  uStack_bc = uVar47;\n  iVar25 = (**(code **)(pcVar46 + 0x1e724))(0x2c00);\n  if (iVar25 == 0) goto LAB_0001dffc;\n  ppppppuVar20 = pppppppuVar18[2];\n  pppppppuVar18[0xb] = (uint ******)0x0;\n  puVar7 = (uint *)(iVar25 + 0xc00);\n  pppppppuVar18[0xc] = (uint ******)0x0;\n  pppppppuStack_144 = (uint *******)0x0;\n  uStack_140 = 0;\n  uStack_13c = 0;\n  uStack_138 = 0;\n  uStack_134 = 0;\n  uStack_130 = 0;\n  uStack_12c = 0;\n  uStack_128 = 0;\n  if (0 < (int)ppppppuVar20) {\n    iVar5 = *(int *)(pcVar46 + 0x1e658);\n    iStack_184 = 0;\n    iVar35 = *(int *)(pcVar46 + 0x1e658);\n    pppppppuVar24 = (uint *******)0x0;\nLAB_0001dc74:\n    ppppppuVar36 = *pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2;\n    bVar2 = *(byte *)(ppppppuVar36 + 1);\n    uVar34 = (uint)((int)ppppppuVar36[1] << 8) >> 0x16;\n    if (bVar2 == 1) {\n      pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5));\n      pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f));\n      *pppppppuVar40 = (uint ******)pppppppuVar28;\nLAB_0001e060:\n      pppppppuVar40 = pppppppuStack_144;\n      if (uVar34 == 0) goto LAB_0001e15c;\n      if ((uVar34 & 0x20) == 0) {\n        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }\n        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      else {\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      pppppppuStack_144 = (uint *******)0x0;\n      uStack_140 = 0;\n      uStack_13c = 0;\n      uStack_138 = 0;\n      uStack_134 = 0;\n      uStack_130 = 0;\n      uStack_12c = 0;\n      uStack_128 = 0;\n    }\n    else {\n      if (bVar2 == 3) {\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }\n      if (bVar2 == 5) {\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      pppppppuVar28 = (uint *******)0xffffffff;\n      if (bVar2 == 7) {\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }\nLAB_0001dcc8:\n    iStack_184 = iStack_184 + 1;\n    if ((int)ppppppuVar20 <= iStack_184) goto code_r0x0001dcdc;\n    goto LAB_0001dc74;\n  }\n  (**(code **)(pcVar46 + 0x1e790))(iVar25);\n  goto LAB_0001e824;\ncode_r0x0001dcdc:\n  if (0 < (int)pppppppuVar24) {\n    pbVar8 = (byte *)((int)pppppppuVar24 + 1);\n    uStack_14c = 0;\n    pbStack_150 = pbVar8;\n    iVar5 = (**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4);\n    iStack_148 = iVar5;\n    if ((iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)) {\n      iStack_178 = (int)pppppppuVar24 << 1;\n    }\n    else {\n      iStack_178 = (int)pppppppuVar24 * 2;\n      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);\n      if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }\n    }\nLAB_0001e674:\n    (**(code **)(pcVar46 + 0x1e790))(iVar5);\n    iVar5 = iVar25;\n    do {\n      iVar35 = iVar5 + 0xc;\n      (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n      iVar5 = iVar35;\n    } while (iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25);\n    (**(code **)(pcVar46 + 0x1e790))(iVar25);\nLAB_0001dffc:\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }\n  (**(code **)(pcVar46 + 0x1e790))(iVar25);\n  if (pppppppuVar24 != (uint *******)0x0) {\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }\nLAB_0001e824:\n  pppppppuVar28 = (uint *******)0x100;\n  ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n  pppppppuVar18[0xb] = ppppppuVar20;\n  pppppppuVar24 = (uint *******)(uint)(ppppppuVar20 != (uint ******)0x0);\nLAB_0001e000:\n  if (piStack_e4 == (int *)*piVar6) {\n    return pppppppuVar24;\n  }\n  piVar6 = piStack_e4;\n  (**(code **)(pcVar46 + 0x1e764))();\n  if (*(byte *)(pppppppuVar28 + 6) == 0x10) {\n    ppppppuVar20 = (uint ******)pppppppuVar28[1][7];\n    pppppppuVar28[3] = (uint ******)pppppppuVar28[1][3];\n    pppppppuVar28[7] = ppppppuVar20;\n    return (uint *******)0x0;\n  }\n  pppppppuVar28[3] = (uint ******)pppppppuVar28;\n  ppppppuVar20 = (uint ******)FUN_00019660();\n  pppppppuVar28[7] = ppppppuVar20;\n  if (ppppppuVar20 == (uint ******)0xffffffff) {\n    pppppppuVar24 = (uint *******)0xc;\n  }\n  else {\n    if (*(byte *)(pppppppuVar28 + 6) == 0xc) {\n      iVar25 = *piVar6 + (int)ppppppuVar20 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;\n      return (uint *******)0x0;\n    }\n    pppppppuVar24 = (uint *******)0x0;\n  }\n  return pppppppuVar24;\n}" type_identifier (pointer_declarator "******* FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)" * (pointer_declarator "****** FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)" * (pointer_declarator "***** FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)" * (pointer_declarator "**** FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)" * (pointer_declarator "*** FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)" * (pointer_declarator "** FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)" * (pointer_declarator "* FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)" * (function_declarator "FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)" identifier (parameter_list "(int *param_1,uint *******param_2,uint *******param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *******param_2" type_identifier (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 "uint *******param_3" type_identifier (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)))))))) )))))))))) (compound_statement "{\n  byte *pbVar1;\n  byte bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  char cVar15;\n  int iVar5;\n  int *piVar6;\n  uint *puVar7;\n  byte *pbVar8;\n  undefined4 *puVar9;\n  code *pcVar10;\n  int **ppiVar11;\n  int **ppiVar12;\n  uint ******ppppppuVar13;\n  uint *puVar14;\n  uint *******pppppppuVar16;\n  undefined4 *puVar17;\n  uint *******pppppppuVar18;\n  uint *******pppppppuVar19;\n  uint ******ppppppuVar20;\n  undefined4 *puVar21;\n  uint *******pppppppuVar22;\n  int iVar23;\n  uint *******pppppppuVar24;\n  int iVar25;\n  uint uVar26;\n  undefined4 *puVar27;\n  uint *******pppppppuVar28;\n  uint uVar29;\n  uint ****ppppuVar30;\n  uint *****pppppuVar31;\n  uint ******ppppppuVar32;\n  uint *puVar33;\n  uint uVar34;\n  int iVar35;\n  uint ******ppppppuVar36;\n  int **ppiVar37;\n  uint *****pppppuVar38;\n  int *piVar39;\n  uint *******pppppppuVar40;\n  uint *******unaff_s2;\n  uint *******unaff_s3;\n  int iVar41;\n  uint *******unaff_s7;\n  int iVar42;\n  undefined *puVar43;\n  code *pcVar44;\n  undefined *puVar45;\n  uint *******unaff_s8;\n  code *pcVar46;\n  undefined4 uVar47;\n  int iStack_184;\n  int iStack_178;\n  int iStack_154;\n  byte *pbStack_150;\n  undefined4 uStack_14c;\n  int iStack_148;\n  uint *******pppppppuStack_144;\n  uint uStack_140;\n  uint uStack_13c;\n  uint uStack_138;\n  uint uStack_134;\n  uint uStack_130;\n  uint uStack_12c;\n  uint uStack_128;\n  uint ******ppppppuStack_124;\n  uint uStack_120;\n  uint uStack_11c;\n  uint uStack_118;\n  uint uStack_114;\n  uint uStack_110;\n  uint uStack_10c;\n  uint uStack_108;\n  int *piStack_104;\n  uint uStack_100;\n  uint uStack_fc;\n  uint uStack_f8;\n  uint uStack_f4;\n  uint uStack_f0;\n  uint uStack_ec;\n  uint uStack_e8;\n  int *piStack_e4;\n  int *piStack_e0;\n  uint ******ppppppuStack_dc;\n  uint *******pppppppuStack_d8;\n  uint *******pppppppuStack_d4;\n  int iStack_d0;\n  uint *******pppppppuStack_cc;\n  uint *******pppppppuStack_c8;\n  uint *******pppppppuStack_c4;\n  uint *******pppppppuStack_c0;\n  undefined4 uStack_bc;\n  undefined *puStack_a8;\n  uint *******pppppppuStack_a0;\n  undefined4 *puStack_9c;\n  uint ******ppppppuStack_98;\n  undefined4 uStack_94;\n  uint ******ppppppuStack_90;\n  uint *******pppppppuStack_8c;\n  int *piStack_88;\n  uint *******pppppppuStack_84;\n  uint *******pppppppuStack_80;\n  uint *******pppppppuStack_7c;\n  undefined *puStack_78;\n  uint *******pppppppuStack_74;\n  uint *******pppppppuStack_70;\n  uint *******pppppppuStack_6c;\n  uint *******pppppppuStack_68;\n  code *pcStack_64;\n  uint *******local_40;\n  int local_3c;\n  int local_38;\n  uint ******appppppuStack_34 [2];\n  uint *******local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0003c314;\n  local_2c = *(uint ********)PTR___stack_chk_guard_0003c314;\n  pppppppuVar24 = param_3;\n  pppppppuVar40 = (uint *******)((int)param_2 - param_1[6]);\n  if ((int)param_2 < param_1[6]) {\n    if (1 < param_1[0x14]) {\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    pppppppuVar24 = (uint *******)0x6;\n    if (((uint)param_3 & 1) != 0) {\n      pppppppuVar24 = (uint *******)0x4;\n    }\n    param_1[0xc] = param_1[0xb];\n    param_1[0xe] = param_1[0xd];\n    param_1[7] = 0;\n    param_1[6] = 0;\n    param_1[8] = 0;\n    *(undefined1 *)(param_1 + 0x13) = 0;\n    param_1[0xf] = (int)pppppppuVar24;\n    pppppppuVar40 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n      goto LAB_0001d010;\n    }\n    if (param_2 == (uint *******)0x0) goto LAB_0001d128;\nLAB_0001d018:\n    iVar25 = param_1[8];\n    unaff_s2 = (uint *******)param_1[7];\n    if ((int)pppppppuVar40 < iVar25) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);\n        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);\n        param_1[0xf] = iVar25;\n        if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        cVar15 = *(char *)((int)param_1 + 0x4b);\n        if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        param_1[7] = (int)pppppppuVar24;\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        param_1[8] = param_1[8] - (int)pppppppuVar40;\n      }\n      else {\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }\nLAB_0001d090:\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      if (cVar15 == '\0') {\nLAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);\n        param_1[1] = (int)pppppppuVar40;\n      }\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n      if (pppppppuVar22 == (uint *******)0x0) goto LAB_0001d0b4;\nLAB_0001d148:\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }\n      pppppppuVar28 = (uint *******)param_1[0x14];\n      unaff_s8 = (uint *******)param_1[6];\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      param_1[7] = 0;\n      if (pppppppuVar22 == (uint *******)0x0) {\n        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }\n      uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];\n      param_1[8] = 0;\n      if (param_1[0x10] != 0) {\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }\n      pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);\n      if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {\n        pppppppuVar24 = (uint *******)0x0;\n      }\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n      param_1[0xf] = (int)pppppppuVar24;\n      pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n      iVar25 = param_1[0xe] - (int)pppppppuVar40;\n      if (cVar15 == '\0') goto LAB_0001d098;\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n    }\n    if (cVar15 == '\0') {\n      param_1[7] = (int)pppppppuVar16;\n    }\n    else if (*(char *)(param_1 + 0x12) == '\0') {\n      pppppppuVar22 = (uint *******)param_1[0x10];\n      if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }\n    }\n    else {\n      FUN_000187d0(param_1);\n    }\nLAB_0001d0dc:\n    pppppppuVar16 = (uint *******)0x0;\n    param_1[10] = 0;\n  }\n  else {\nLAB_0001d010:\n    if (pppppppuVar40 != (uint *******)0x0) goto LAB_0001d018;\nLAB_0001d128:\n    pppppppuVar28 = (uint *******)param_1[0x14];\n    pppppppuVar16 = (uint *******)param_1[0xc];\n    pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n    param_1[6] = (int)param_2;\n    param_1[0xc] = (int)pppppppuVar16;\n    param_1[0xe] = param_1[0xe];\n    if (pppppppuVar22 != (uint *******)0x0) goto LAB_0001d148;\nLAB_0001d0b4:\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_000188b4(param_1);\n      goto LAB_0001d0dc;\n    }\n    pppppppuVar16 = (uint *******)FUN_00018b3c();\n    if (pppppppuVar16 == (uint *******)0x0) goto LAB_0001d0dc;\n  }\n  if (local_2c == *(uint ********)puVar4) {\n    return pppppppuVar16;\n  }\n  pcVar46 = FUN_0001d8a0;\n  pppppppuVar16 = local_2c;\n  puVar43 = PTR___stack_chk_fail_0003c2f4;\n  (*(code *)PTR___stack_chk_fail_0003c2f4)();\n  puVar45 = puVar43 + 0x26830;\n  puStack_9c = *(undefined4 **)(puVar43 + 0x1ea74);\n  ppppppuStack_98 = (uint ******)0x0;\n  uStack_94 = 0;\n  ppppppuStack_90 = (uint ******)0x0;\n  ppppppuVar20 = pppppppuVar16[7] + (int)pppppppuVar22 * 3;\n  puStack_78 = puVar4;\n  pppppppuStack_8c = (uint *******)*puStack_9c;\n  pppppuVar31 = ppppppuVar20[1];\n  iVar25 = *(int *)(puVar43 + 0x1e948);\n  pppppppuVar18 = pppppppuVar22;\n  puStack_a8 = puVar45;\n  pppppppuStack_a0 = pppppppuVar28;\n  piStack_88 = param_1;\n  pppppppuStack_84 = pppppppuVar40;\n  pppppppuStack_80 = unaff_s2;\n  pppppppuStack_7c = unaff_s3;\n  pppppppuStack_74 = param_2;\n  pppppppuStack_70 = param_3;\n  pppppppuStack_6c = unaff_s7;\n  pppppppuStack_68 = unaff_s8;\n  pcStack_64 = pcVar46;\n  if (0 < (int)pppppuVar31) {\n    pppppppuVar40 = &ppppppuStack_98;\n    param_1 = (int *)0x0;\n    param_2 = (uint *******)(ppppppuVar20 + 2);\n    iVar25 = iVar25 + -0x5d30;\n    param_3 = (uint *******)(*(int *)(puVar43 + 0x1e948) + -20000);\n    do {\n      pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1];\n      if ((pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)) {\n        iVar35 = (int)pppppppuVar28 * 0xc;\n        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;\n        pppppuVar38 = ppppppuVar36[2];\n        pppppppuVar18 = param_2;\n        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);\n        if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }\n      param_1 = (int *)((int)param_1 + 1);\n    } while ((int)param_1 < (int)pppppuVar31);\n    unaff_s2 = pppppppuVar22;\n    unaff_s3 = pppppppuVar24;\n    unaff_s7 = pppppppuVar40;\n    unaff_s8 = pppppppuVar16;\n    if (0 < (int)pppppuVar31) {\n      iVar5 = 0;\n      pppppppuVar22 = pppppppuVar24 + 1;\n      pppppppuVar16 = pppppppuVar24 + 2;\n      pppppppuVar40 = &ppppppuStack_90;\n      do {\n        pppppppuVar19 = pppppppuVar40;\n        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);\n        pppppppuVar28 = pppppppuVar16;\n        if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }\n        iVar5 = iVar5 + 1;\n        pppppppuVar18 = pppppppuVar40;\n        pppppppuVar16 = pppppppuVar28;\n        pppppppuVar40 = pppppppuVar19;\n        puVar45 = puStack_a8;\n      } while (iVar5 < (int)pppppuVar31);\n    }\n  }\n  (**(code **)(puVar45 + -0x7db0))(ppppppuStack_90);\n  pppppppuVar28 = (uint *******)0x0;\n  pppppppuVar22 = unaff_s2;\n  pppppppuVar24 = unaff_s3;\n  pppppppuVar40 = unaff_s7;\n  pppppppuVar16 = unaff_s8;\nLAB_0001db20:\n  if (pppppppuStack_8c == (uint *******)*puStack_9c) {\n    return pppppppuVar28;\n  }\n  pcVar46 = *(code **)(puStack_a8 + -0x7ddc);\n  uVar47 = 0x1db90;\n  pppppppuVar19 = pppppppuStack_8c;\n  (*pcVar46)();\n  piVar6 = *(int **)(pcVar46 + 0x1e784);\n  piStack_e4 = (int *)*piVar6;\n  pppppppuVar28 = pppppppuVar18;\n  piStack_e0 = param_1;\n  ppppppuStack_dc = ppppppuVar20;\n  pppppppuStack_d8 = pppppppuVar22;\n  pppppppuStack_d4 = pppppppuVar24;\n  iStack_d0 = iVar25;\n  pppppppuStack_cc = param_2;\n  pppppppuStack_c8 = param_3;\n  pppppppuStack_c4 = pppppppuVar40;\n  pppppppuStack_c0 = pppppppuVar16;\n  uStack_bc = uVar47;\n  iVar25 = (**(code **)(pcVar46 + 0x1e724))(0x2c00);\n  if (iVar25 == 0) goto LAB_0001dffc;\n  ppppppuVar20 = pppppppuVar18[2];\n  pppppppuVar18[0xb] = (uint ******)0x0;\n  puVar7 = (uint *)(iVar25 + 0xc00);\n  pppppppuVar18[0xc] = (uint ******)0x0;\n  pppppppuStack_144 = (uint *******)0x0;\n  uStack_140 = 0;\n  uStack_13c = 0;\n  uStack_138 = 0;\n  uStack_134 = 0;\n  uStack_130 = 0;\n  uStack_12c = 0;\n  uStack_128 = 0;\n  if (0 < (int)ppppppuVar20) {\n    iVar5 = *(int *)(pcVar46 + 0x1e658);\n    iStack_184 = 0;\n    iVar35 = *(int *)(pcVar46 + 0x1e658);\n    pppppppuVar24 = (uint *******)0x0;\nLAB_0001dc74:\n    ppppppuVar36 = *pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2;\n    bVar2 = *(byte *)(ppppppuVar36 + 1);\n    uVar34 = (uint)((int)ppppppuVar36[1] << 8) >> 0x16;\n    if (bVar2 == 1) {\n      pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5));\n      pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f));\n      *pppppppuVar40 = (uint ******)pppppppuVar28;\nLAB_0001e060:\n      pppppppuVar40 = pppppppuStack_144;\n      if (uVar34 == 0) goto LAB_0001e15c;\n      if ((uVar34 & 0x20) == 0) {\n        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }\n        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      else {\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      pppppppuStack_144 = (uint *******)0x0;\n      uStack_140 = 0;\n      uStack_13c = 0;\n      uStack_138 = 0;\n      uStack_134 = 0;\n      uStack_130 = 0;\n      uStack_12c = 0;\n      uStack_128 = 0;\n    }\n    else {\n      if (bVar2 == 3) {\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }\n      if (bVar2 == 5) {\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      pppppppuVar28 = (uint *******)0xffffffff;\n      if (bVar2 == 7) {\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }\nLAB_0001dcc8:\n    iStack_184 = iStack_184 + 1;\n    if ((int)ppppppuVar20 <= iStack_184) goto code_r0x0001dcdc;\n    goto LAB_0001dc74;\n  }\n  (**(code **)(pcVar46 + 0x1e790))(iVar25);\n  goto LAB_0001e824;\ncode_r0x0001dcdc:\n  if (0 < (int)pppppppuVar24) {\n    pbVar8 = (byte *)((int)pppppppuVar24 + 1);\n    uStack_14c = 0;\n    pbStack_150 = pbVar8;\n    iVar5 = (**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4);\n    iStack_148 = iVar5;\n    if ((iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)) {\n      iStack_178 = (int)pppppppuVar24 << 1;\n    }\n    else {\n      iStack_178 = (int)pppppppuVar24 * 2;\n      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);\n      if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }\n    }\nLAB_0001e674:\n    (**(code **)(pcVar46 + 0x1e790))(iVar5);\n    iVar5 = iVar25;\n    do {\n      iVar35 = iVar5 + 0xc;\n      (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n      iVar5 = iVar35;\n    } while (iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25);\n    (**(code **)(pcVar46 + 0x1e790))(iVar25);\nLAB_0001dffc:\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }\n  (**(code **)(pcVar46 + 0x1e790))(iVar25);\n  if (pppppppuVar24 != (uint *******)0x0) {\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }\nLAB_0001e824:\n  pppppppuVar28 = (uint *******)0x100;\n  ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n  pppppppuVar18[0xb] = ppppppuVar20;\n  pppppppuVar24 = (uint *******)(uint)(ppppppuVar20 != (uint ******)0x0);\nLAB_0001e000:\n  if (piStack_e4 == (int *)*piVar6) {\n    return pppppppuVar24;\n  }\n  piVar6 = piStack_e4;\n  (**(code **)(pcVar46 + 0x1e764))();\n  if (*(byte *)(pppppppuVar28 + 6) == 0x10) {\n    ppppppuVar20 = (uint ******)pppppppuVar28[1][7];\n    pppppppuVar28[3] = (uint ******)pppppppuVar28[1][3];\n    pppppppuVar28[7] = ppppppuVar20;\n    return (uint *******)0x0;\n  }\n  pppppppuVar28[3] = (uint ******)pppppppuVar28;\n  ppppppuVar20 = (uint ******)FUN_00019660();\n  pppppppuVar28[7] = ppppppuVar20;\n  if (ppppppuVar20 == (uint ******)0xffffffff) {\n    pppppppuVar24 = (uint *******)0xc;\n  }\n  else {\n    if (*(byte *)(pppppppuVar28 + 6) == 0xc) {\n      iVar25 = *piVar6 + (int)ppppppuVar20 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;\n      return (uint *******)0x0;\n    }\n    pppppppuVar24 = (uint *******)0x0;\n  }\n  return pppppppuVar24;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "char cVar15;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "int **ppiVar11;" primitive_type (pointer_declarator "**ppiVar11" * (pointer_declarator "*ppiVar11" * identifier)) ;) (declaration "int **ppiVar12;" primitive_type (pointer_declarator "**ppiVar12" * (pointer_declarator "*ppiVar12" * identifier)) ;) (declaration "uint ******ppppppuVar13;" type_identifier (pointer_declarator "******ppppppuVar13" * (pointer_declarator "*****ppppppuVar13" * (pointer_declarator "****ppppppuVar13" * (pointer_declarator "***ppppppuVar13" * (pointer_declarator "**ppppppuVar13" * (pointer_declarator "*ppppppuVar13" * identifier)))))) ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint *******pppppppuVar16;" type_identifier (pointer_declarator "*******pppppppuVar16" * (pointer_declarator "******pppppppuVar16" * (pointer_declarator "*****pppppppuVar16" * (pointer_declarator "****pppppppuVar16" * (pointer_declarator "***pppppppuVar16" * (pointer_declarator "**pppppppuVar16" * (pointer_declarator "*pppppppuVar16" * identifier))))))) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "uint *******pppppppuVar18;" type_identifier (pointer_declarator "*******pppppppuVar18" * (pointer_declarator "******pppppppuVar18" * (pointer_declarator "*****pppppppuVar18" * (pointer_declarator "****pppppppuVar18" * (pointer_declarator "***pppppppuVar18" * (pointer_declarator "**pppppppuVar18" * (pointer_declarator "*pppppppuVar18" * identifier))))))) ;) (declaration "uint *******pppppppuVar19;" type_identifier (pointer_declarator "*******pppppppuVar19" * (pointer_declarator "******pppppppuVar19" * (pointer_declarator "*****pppppppuVar19" * (pointer_declarator "****pppppppuVar19" * (pointer_declarator "***pppppppuVar19" * (pointer_declarator "**pppppppuVar19" * (pointer_declarator "*pppppppuVar19" * identifier))))))) ;) (declaration "uint ******ppppppuVar20;" type_identifier (pointer_declarator "******ppppppuVar20" * (pointer_declarator "*****ppppppuVar20" * (pointer_declarator "****ppppppuVar20" * (pointer_declarator "***ppppppuVar20" * (pointer_declarator "**ppppppuVar20" * (pointer_declarator "*ppppppuVar20" * identifier)))))) ;) (declaration "undefined4 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "uint *******pppppppuVar22;" type_identifier (pointer_declarator "*******pppppppuVar22" * (pointer_declarator "******pppppppuVar22" * (pointer_declarator "*****pppppppuVar22" * (pointer_declarator "****pppppppuVar22" * (pointer_declarator "***pppppppuVar22" * (pointer_declarator "**pppppppuVar22" * (pointer_declarator "*pppppppuVar22" * identifier))))))) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "uint *******pppppppuVar24;" type_identifier (pointer_declarator "*******pppppppuVar24" * (pointer_declarator "******pppppppuVar24" * (pointer_declarator "*****pppppppuVar24" * (pointer_declarator "****pppppppuVar24" * (pointer_declarator "***pppppppuVar24" * (pointer_declarator "**pppppppuVar24" * (pointer_declarator "*pppppppuVar24" * identifier))))))) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "undefined4 *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "uint *******pppppppuVar28;" type_identifier (pointer_declarator "*******pppppppuVar28" * (pointer_declarator "******pppppppuVar28" * (pointer_declarator "*****pppppppuVar28" * (pointer_declarator "****pppppppuVar28" * (pointer_declarator "***pppppppuVar28" * (pointer_declarator "**pppppppuVar28" * (pointer_declarator "*pppppppuVar28" * identifier))))))) ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "uint ****ppppuVar30;" type_identifier (pointer_declarator "****ppppuVar30" * (pointer_declarator "***ppppuVar30" * (pointer_declarator "**ppppuVar30" * (pointer_declarator "*ppppuVar30" * identifier)))) ;) (declaration "uint *****pppppuVar31;" type_identifier (pointer_declarator "*****pppppuVar31" * (pointer_declarator "****pppppuVar31" * (pointer_declarator "***pppppuVar31" * (pointer_declarator "**pppppuVar31" * (pointer_declarator "*pppppuVar31" * identifier))))) ;) (declaration "uint ******ppppppuVar32;" type_identifier (pointer_declarator "******ppppppuVar32" * (pointer_declarator "*****ppppppuVar32" * (pointer_declarator "****ppppppuVar32" * (pointer_declarator "***ppppppuVar32" * (pointer_declarator "**ppppppuVar32" * (pointer_declarator "*ppppppuVar32" * identifier)))))) ;) (declaration "uint *puVar33;" type_identifier (pointer_declarator "*puVar33" * identifier) ;) (declaration "uint uVar34;" type_identifier identifier ;) (declaration "int iVar35;" primitive_type identifier ;) (declaration "uint ******ppppppuVar36;" type_identifier (pointer_declarator "******ppppppuVar36" * (pointer_declarator "*****ppppppuVar36" * (pointer_declarator "****ppppppuVar36" * (pointer_declarator "***ppppppuVar36" * (pointer_declarator "**ppppppuVar36" * (pointer_declarator "*ppppppuVar36" * identifier)))))) ;) (declaration "int **ppiVar37;" primitive_type (pointer_declarator "**ppiVar37" * (pointer_declarator "*ppiVar37" * identifier)) ;) (declaration "uint *****pppppuVar38;" type_identifier (pointer_declarator "*****pppppuVar38" * (pointer_declarator "****pppppuVar38" * (pointer_declarator "***pppppuVar38" * (pointer_declarator "**pppppuVar38" * (pointer_declarator "*pppppuVar38" * identifier))))) ;) (declaration "int *piVar39;" primitive_type (pointer_declarator "*piVar39" * identifier) ;) (declaration "uint *******pppppppuVar40;" type_identifier (pointer_declarator "*******pppppppuVar40" * (pointer_declarator "******pppppppuVar40" * (pointer_declarator "*****pppppppuVar40" * (pointer_declarator "****pppppppuVar40" * (pointer_declarator "***pppppppuVar40" * (pointer_declarator "**pppppppuVar40" * (pointer_declarator "*pppppppuVar40" * identifier))))))) ;) (declaration "uint *******unaff_s2;" type_identifier (pointer_declarator "*******unaff_s2" * (pointer_declarator "******unaff_s2" * (pointer_declarator "*****unaff_s2" * (pointer_declarator "****unaff_s2" * (pointer_declarator "***unaff_s2" * (pointer_declarator "**unaff_s2" * (pointer_declarator "*unaff_s2" * identifier))))))) ;) (declaration "uint *******unaff_s3;" type_identifier (pointer_declarator "*******unaff_s3" * (pointer_declarator "******unaff_s3" * (pointer_declarator "*****unaff_s3" * (pointer_declarator "****unaff_s3" * (pointer_declarator "***unaff_s3" * (pointer_declarator "**unaff_s3" * (pointer_declarator "*unaff_s3" * identifier))))))) ;) (declaration "int iVar41;" primitive_type identifier ;) (declaration "uint *******unaff_s7;" type_identifier (pointer_declarator "*******unaff_s7" * (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 "int iVar42;" primitive_type identifier ;) (declaration "undefined *puVar43;" type_identifier (pointer_declarator "*puVar43" * identifier) ;) (declaration "code *pcVar44;" type_identifier (pointer_declarator "*pcVar44" * identifier) ;) (declaration "undefined *puVar45;" type_identifier (pointer_declarator "*puVar45" * identifier) ;) (declaration "uint *******unaff_s8;" type_identifier (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 "code *pcVar46;" type_identifier (pointer_declarator "*pcVar46" * identifier) ;) (declaration "undefined4 uVar47;" type_identifier identifier ;) (declaration "int iStack_184;" primitive_type identifier ;) (declaration "int iStack_178;" primitive_type identifier ;) (declaration "int iStack_154;" primitive_type identifier ;) (declaration "byte *pbStack_150;" type_identifier (pointer_declarator "*pbStack_150" * identifier) ;) (declaration "undefined4 uStack_14c;" type_identifier identifier ;) (declaration "int iStack_148;" primitive_type identifier ;) (declaration "uint *******pppppppuStack_144;" type_identifier (pointer_declarator "*******pppppppuStack_144" * (pointer_declarator "******pppppppuStack_144" * (pointer_declarator "*****pppppppuStack_144" * (pointer_declarator "****pppppppuStack_144" * (pointer_declarator "***pppppppuStack_144" * (pointer_declarator "**pppppppuStack_144" * (pointer_declarator "*pppppppuStack_144" * identifier))))))) ;) (declaration "uint uStack_140;" type_identifier identifier ;) (declaration "uint uStack_13c;" type_identifier identifier ;) (declaration "uint uStack_138;" type_identifier identifier ;) (declaration "uint uStack_134;" type_identifier identifier ;) (declaration "uint uStack_130;" type_identifier identifier ;) (declaration "uint uStack_12c;" type_identifier identifier ;) (declaration "uint uStack_128;" type_identifier identifier ;) (declaration "uint ******ppppppuStack_124;" type_identifier (pointer_declarator "******ppppppuStack_124" * (pointer_declarator "*****ppppppuStack_124" * (pointer_declarator "****ppppppuStack_124" * (pointer_declarator "***ppppppuStack_124" * (pointer_declarator "**ppppppuStack_124" * (pointer_declarator "*ppppppuStack_124" * identifier)))))) ;) (declaration "uint uStack_120;" type_identifier identifier ;) (declaration "uint uStack_11c;" type_identifier identifier ;) (declaration "uint uStack_118;" type_identifier identifier ;) (declaration "uint uStack_114;" type_identifier identifier ;) (declaration "uint uStack_110;" type_identifier identifier ;) (declaration "uint uStack_10c;" type_identifier identifier ;) (declaration "uint uStack_108;" type_identifier identifier ;) (declaration "int *piStack_104;" primitive_type (pointer_declarator "*piStack_104" * identifier) ;) (declaration "uint uStack_100;" type_identifier identifier ;) (declaration "uint uStack_fc;" type_identifier identifier ;) (declaration "uint uStack_f8;" type_identifier identifier ;) (declaration "uint uStack_f4;" type_identifier identifier ;) (declaration "uint uStack_f0;" type_identifier identifier ;) (declaration "uint uStack_ec;" type_identifier identifier ;) (declaration "uint uStack_e8;" type_identifier identifier ;) (declaration "int *piStack_e4;" primitive_type (pointer_declarator "*piStack_e4" * identifier) ;) (declaration "int *piStack_e0;" primitive_type (pointer_declarator "*piStack_e0" * identifier) ;) (declaration "uint ******ppppppuStack_dc;" type_identifier (pointer_declarator "******ppppppuStack_dc" * (pointer_declarator "*****ppppppuStack_dc" * (pointer_declarator "****ppppppuStack_dc" * (pointer_declarator "***ppppppuStack_dc" * (pointer_declarator "**ppppppuStack_dc" * (pointer_declarator "*ppppppuStack_dc" * identifier)))))) ;) (declaration "uint *******pppppppuStack_d8;" type_identifier (pointer_declarator "*******pppppppuStack_d8" * (pointer_declarator "******pppppppuStack_d8" * (pointer_declarator "*****pppppppuStack_d8" * (pointer_declarator "****pppppppuStack_d8" * (pointer_declarator "***pppppppuStack_d8" * (pointer_declarator "**pppppppuStack_d8" * (pointer_declarator "*pppppppuStack_d8" * identifier))))))) ;) (declaration "uint *******pppppppuStack_d4;" type_identifier (pointer_declarator "*******pppppppuStack_d4" * (pointer_declarator "******pppppppuStack_d4" * (pointer_declarator "*****pppppppuStack_d4" * (pointer_declarator "****pppppppuStack_d4" * (pointer_declarator "***pppppppuStack_d4" * (pointer_declarator "**pppppppuStack_d4" * (pointer_declarator "*pppppppuStack_d4" * identifier))))))) ;) (declaration "int iStack_d0;" primitive_type identifier ;) (declaration "uint *******pppppppuStack_cc;" type_identifier (pointer_declarator "*******pppppppuStack_cc" * (pointer_declarator "******pppppppuStack_cc" * (pointer_declarator "*****pppppppuStack_cc" * (pointer_declarator "****pppppppuStack_cc" * (pointer_declarator "***pppppppuStack_cc" * (pointer_declarator "**pppppppuStack_cc" * (pointer_declarator "*pppppppuStack_cc" * identifier))))))) ;) (declaration "uint *******pppppppuStack_c8;" type_identifier (pointer_declarator "*******pppppppuStack_c8" * (pointer_declarator "******pppppppuStack_c8" * (pointer_declarator "*****pppppppuStack_c8" * (pointer_declarator "****pppppppuStack_c8" * (pointer_declarator "***pppppppuStack_c8" * (pointer_declarator "**pppppppuStack_c8" * (pointer_declarator "*pppppppuStack_c8" * identifier))))))) ;) (declaration "uint *******pppppppuStack_c4;" type_identifier (pointer_declarator "*******pppppppuStack_c4" * (pointer_declarator "******pppppppuStack_c4" * (pointer_declarator "*****pppppppuStack_c4" * (pointer_declarator "****pppppppuStack_c4" * (pointer_declarator "***pppppppuStack_c4" * (pointer_declarator "**pppppppuStack_c4" * (pointer_declarator "*pppppppuStack_c4" * identifier))))))) ;) (declaration "uint *******pppppppuStack_c0;" type_identifier (pointer_declarator "*******pppppppuStack_c0" * (pointer_declarator "******pppppppuStack_c0" * (pointer_declarator "*****pppppppuStack_c0" * (pointer_declarator "****pppppppuStack_c0" * (pointer_declarator "***pppppppuStack_c0" * (pointer_declarator "**pppppppuStack_c0" * (pointer_declarator "*pppppppuStack_c0" * identifier))))))) ;) (declaration "undefined4 uStack_bc;" type_identifier identifier ;) (declaration "undefined *puStack_a8;" type_identifier (pointer_declarator "*puStack_a8" * identifier) ;) (declaration "uint *******pppppppuStack_a0;" type_identifier (pointer_declarator "*******pppppppuStack_a0" * (pointer_declarator "******pppppppuStack_a0" * (pointer_declarator "*****pppppppuStack_a0" * (pointer_declarator "****pppppppuStack_a0" * (pointer_declarator "***pppppppuStack_a0" * (pointer_declarator "**pppppppuStack_a0" * (pointer_declarator "*pppppppuStack_a0" * identifier))))))) ;) (declaration "undefined4 *puStack_9c;" type_identifier (pointer_declarator "*puStack_9c" * identifier) ;) (declaration "uint ******ppppppuStack_98;" type_identifier (pointer_declarator "******ppppppuStack_98" * (pointer_declarator "*****ppppppuStack_98" * (pointer_declarator "****ppppppuStack_98" * (pointer_declarator "***ppppppuStack_98" * (pointer_declarator "**ppppppuStack_98" * (pointer_declarator "*ppppppuStack_98" * identifier)))))) ;) (declaration "undefined4 uStack_94;" type_identifier identifier ;) (declaration "uint ******ppppppuStack_90;" type_identifier (pointer_declarator "******ppppppuStack_90" * (pointer_declarator "*****ppppppuStack_90" * (pointer_declarator "****ppppppuStack_90" * (pointer_declarator "***ppppppuStack_90" * (pointer_declarator "**ppppppuStack_90" * (pointer_declarator "*ppppppuStack_90" * identifier)))))) ;) (declaration "uint *******pppppppuStack_8c;" type_identifier (pointer_declarator "*******pppppppuStack_8c" * (pointer_declarator "******pppppppuStack_8c" * (pointer_declarator "*****pppppppuStack_8c" * (pointer_declarator "****pppppppuStack_8c" * (pointer_declarator "***pppppppuStack_8c" * (pointer_declarator "**pppppppuStack_8c" * (pointer_declarator "*pppppppuStack_8c" * identifier))))))) ;) (declaration "int *piStack_88;" primitive_type (pointer_declarator "*piStack_88" * identifier) ;) (declaration "uint *******pppppppuStack_84;" type_identifier (pointer_declarator "*******pppppppuStack_84" * (pointer_declarator "******pppppppuStack_84" * (pointer_declarator "*****pppppppuStack_84" * (pointer_declarator "****pppppppuStack_84" * (pointer_declarator "***pppppppuStack_84" * (pointer_declarator "**pppppppuStack_84" * (pointer_declarator "*pppppppuStack_84" * identifier))))))) ;) (declaration "uint *******pppppppuStack_80;" type_identifier (pointer_declarator "*******pppppppuStack_80" * (pointer_declarator "******pppppppuStack_80" * (pointer_declarator "*****pppppppuStack_80" * (pointer_declarator "****pppppppuStack_80" * (pointer_declarator "***pppppppuStack_80" * (pointer_declarator "**pppppppuStack_80" * (pointer_declarator "*pppppppuStack_80" * identifier))))))) ;) (declaration "uint *******pppppppuStack_7c;" type_identifier (pointer_declarator "*******pppppppuStack_7c" * (pointer_declarator "******pppppppuStack_7c" * (pointer_declarator "*****pppppppuStack_7c" * (pointer_declarator "****pppppppuStack_7c" * (pointer_declarator "***pppppppuStack_7c" * (pointer_declarator "**pppppppuStack_7c" * (pointer_declarator "*pppppppuStack_7c" * identifier))))))) ;) (declaration "undefined *puStack_78;" type_identifier (pointer_declarator "*puStack_78" * identifier) ;) (declaration "uint *******pppppppuStack_74;" type_identifier (pointer_declarator "*******pppppppuStack_74" * (pointer_declarator "******pppppppuStack_74" * (pointer_declarator "*****pppppppuStack_74" * (pointer_declarator "****pppppppuStack_74" * (pointer_declarator "***pppppppuStack_74" * (pointer_declarator "**pppppppuStack_74" * (pointer_declarator "*pppppppuStack_74" * identifier))))))) ;) (declaration "uint *******pppppppuStack_70;" type_identifier (pointer_declarator "*******pppppppuStack_70" * (pointer_declarator "******pppppppuStack_70" * (pointer_declarator "*****pppppppuStack_70" * (pointer_declarator "****pppppppuStack_70" * (pointer_declarator "***pppppppuStack_70" * (pointer_declarator "**pppppppuStack_70" * (pointer_declarator "*pppppppuStack_70" * identifier))))))) ;) (declaration "uint *******pppppppuStack_6c;" type_identifier (pointer_declarator "*******pppppppuStack_6c" * (pointer_declarator "******pppppppuStack_6c" * (pointer_declarator "*****pppppppuStack_6c" * (pointer_declarator "****pppppppuStack_6c" * (pointer_declarator "***pppppppuStack_6c" * (pointer_declarator "**pppppppuStack_6c" * (pointer_declarator "*pppppppuStack_6c" * identifier))))))) ;) (declaration "uint *******pppppppuStack_68;" type_identifier (pointer_declarator "*******pppppppuStack_68" * (pointer_declarator "******pppppppuStack_68" * (pointer_declarator "*****pppppppuStack_68" * (pointer_declarator "****pppppppuStack_68" * (pointer_declarator "***pppppppuStack_68" * (pointer_declarator "**pppppppuStack_68" * (pointer_declarator "*pppppppuStack_68" * identifier))))))) ;) (declaration "code *pcStack_64;" type_identifier (pointer_declarator "*pcStack_64" * identifier) ;) (declaration "uint *******local_40;" type_identifier (pointer_declarator "*******local_40" * (pointer_declarator "******local_40" * (pointer_declarator "*****local_40" * (pointer_declarator "****local_40" * (pointer_declarator "***local_40" * (pointer_declarator "**local_40" * (pointer_declarator "*local_40" * identifier))))))) ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "uint ******appppppuStack_34 [2];" type_identifier (pointer_declarator "******appppppuStack_34 [2]" * (pointer_declarator "*****appppppuStack_34 [2]" * (pointer_declarator "****appppppuStack_34 [2]" * (pointer_declarator "***appppppuStack_34 [2]" * (pointer_declarator "**appppppuStack_34 [2]" * (pointer_declarator "*appppppuStack_34 [2]" * (array_declarator "appppppuStack_34 [2]" identifier [ number_literal ]))))))) ;) (declaration "uint *******local_2c;" type_identifier (pointer_declarator "*******local_2c" * (pointer_declarator "******local_2c" * (pointer_declarator "*****local_2c" * (pointer_declarator "****local_2c" * (pointer_declarator "***local_2c" * (pointer_declarator "**local_2c" * (pointer_declarator "*local_2c" * identifier))))))) ;) (expression_statement "puVar4 = PTR___stack_chk_guard_0003c314;" (assignment_expression "puVar4 = PTR___stack_chk_guard_0003c314" identifier = identifier) ;) (expression_statement "local_2c = *(uint ********)PTR___stack_chk_guard_0003c314;" (assignment_expression "local_2c = *(uint ********)PTR___stack_chk_guard_0003c314" identifier = (pointer_expression "*(uint ********)PTR___stack_chk_guard_0003c314" * (cast_expression "(uint ********)PTR___stack_chk_guard_0003c314" ( (type_descriptor "uint ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) identifier))) ;) (expression_statement "pppppppuVar24 = param_3;" (assignment_expression "pppppppuVar24 = param_3" identifier = identifier) ;) (expression_statement "pppppppuVar40 = (uint *******)((int)param_2 - param_1[6]);" (assignment_expression "pppppppuVar40 = (uint *******)((int)param_2 - param_1[6])" identifier = (cast_expression "(uint *******)((int)param_2 - param_1[6])" ( (type_descriptor "uint *******" type_identifier (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_2 - param_1[6])" ( (binary_expression "(int)param_2 - param_1[6]" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) - (subscript_expression "param_1[6]" identifier [ number_literal ])) )))) ;) (if_statement "if ((int)param_2 < param_1[6]) {\n    if (1 < param_1[0x14]) {\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    pppppppuVar24 = (uint *******)0x6;\n    if (((uint)param_3 & 1) != 0) {\n      pppppppuVar24 = (uint *******)0x4;\n    }\n    param_1[0xc] = param_1[0xb];\n    param_1[0xe] = param_1[0xd];\n    param_1[7] = 0;\n    param_1[6] = 0;\n    param_1[8] = 0;\n    *(undefined1 *)(param_1 + 0x13) = 0;\n    param_1[0xf] = (int)pppppppuVar24;\n    pppppppuVar40 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n      goto LAB_0001d010;\n    }\n    if (param_2 == (uint *******)0x0) goto LAB_0001d128;\nLAB_0001d018:\n    iVar25 = param_1[8];\n    unaff_s2 = (uint *******)param_1[7];\n    if ((int)pppppppuVar40 < iVar25) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);\n        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);\n        param_1[0xf] = iVar25;\n        if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        cVar15 = *(char *)((int)param_1 + 0x4b);\n        if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        param_1[7] = (int)pppppppuVar24;\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        param_1[8] = param_1[8] - (int)pppppppuVar40;\n      }\n      else {\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }\nLAB_0001d090:\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      if (cVar15 == '\0') {\nLAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);\n        param_1[1] = (int)pppppppuVar40;\n      }\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n      if (pppppppuVar22 == (uint *******)0x0) goto LAB_0001d0b4;\nLAB_0001d148:\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }\n      pppppppuVar28 = (uint *******)param_1[0x14];\n      unaff_s8 = (uint *******)param_1[6];\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      param_1[7] = 0;\n      if (pppppppuVar22 == (uint *******)0x0) {\n        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }\n      uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];\n      param_1[8] = 0;\n      if (param_1[0x10] != 0) {\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }\n      pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);\n      if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {\n        pppppppuVar24 = (uint *******)0x0;\n      }\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n      param_1[0xf] = (int)pppppppuVar24;\n      pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n      iVar25 = param_1[0xe] - (int)pppppppuVar40;\n      if (cVar15 == '\0') goto LAB_0001d098;\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n    }\n    if (cVar15 == '\0') {\n      param_1[7] = (int)pppppppuVar16;\n    }\n    else if (*(char *)(param_1 + 0x12) == '\0') {\n      pppppppuVar22 = (uint *******)param_1[0x10];\n      if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }\n    }\n    else {\n      FUN_000187d0(param_1);\n    }\nLAB_0001d0dc:\n    pppppppuVar16 = (uint *******)0x0;\n    param_1[10] = 0;\n  }\n  else {\nLAB_0001d010:\n    if (pppppppuVar40 != (uint *******)0x0) goto LAB_0001d018;\nLAB_0001d128:\n    pppppppuVar28 = (uint *******)param_1[0x14];\n    pppppppuVar16 = (uint *******)param_1[0xc];\n    pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n    param_1[6] = (int)param_2;\n    param_1[0xc] = (int)pppppppuVar16;\n    param_1[0xe] = param_1[0xe];\n    if (pppppppuVar22 != (uint *******)0x0) goto LAB_0001d148;\nLAB_0001d0b4:\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_000188b4(param_1);\n      goto LAB_0001d0dc;\n    }\n    pppppppuVar16 = (uint *******)FUN_00018b3c();\n    if (pppppppuVar16 == (uint *******)0x0) goto LAB_0001d0dc;\n  }" if (parenthesized_expression "((int)param_2 < param_1[6])" ( (binary_expression "(int)param_2 < param_1[6]" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < (subscript_expression "param_1[6]" identifier [ number_literal ])) )) (compound_statement "{\n    if (1 < param_1[0x14]) {\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    pppppppuVar24 = (uint *******)0x6;\n    if (((uint)param_3 & 1) != 0) {\n      pppppppuVar24 = (uint *******)0x4;\n    }\n    param_1[0xc] = param_1[0xb];\n    param_1[0xe] = param_1[0xd];\n    param_1[7] = 0;\n    param_1[6] = 0;\n    param_1[8] = 0;\n    *(undefined1 *)(param_1 + 0x13) = 0;\n    param_1[0xf] = (int)pppppppuVar24;\n    pppppppuVar40 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n      goto LAB_0001d010;\n    }\n    if (param_2 == (uint *******)0x0) goto LAB_0001d128;\nLAB_0001d018:\n    iVar25 = param_1[8];\n    unaff_s2 = (uint *******)param_1[7];\n    if ((int)pppppppuVar40 < iVar25) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);\n        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);\n        param_1[0xf] = iVar25;\n        if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        cVar15 = *(char *)((int)param_1 + 0x4b);\n        if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        param_1[7] = (int)pppppppuVar24;\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        param_1[8] = param_1[8] - (int)pppppppuVar40;\n      }\n      else {\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }\nLAB_0001d090:\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      if (cVar15 == '\0') {\nLAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);\n        param_1[1] = (int)pppppppuVar40;\n      }\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n      if (pppppppuVar22 == (uint *******)0x0) goto LAB_0001d0b4;\nLAB_0001d148:\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }\n      pppppppuVar28 = (uint *******)param_1[0x14];\n      unaff_s8 = (uint *******)param_1[6];\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      param_1[7] = 0;\n      if (pppppppuVar22 == (uint *******)0x0) {\n        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }\n      uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];\n      param_1[8] = 0;\n      if (param_1[0x10] != 0) {\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }\n      pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);\n      if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {\n        pppppppuVar24 = (uint *******)0x0;\n      }\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n      param_1[0xf] = (int)pppppppuVar24;\n      pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n      iVar25 = param_1[0xe] - (int)pppppppuVar40;\n      if (cVar15 == '\0') goto LAB_0001d098;\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n    }\n    if (cVar15 == '\0') {\n      param_1[7] = (int)pppppppuVar16;\n    }\n    else if (*(char *)(param_1 + 0x12) == '\0') {\n      pppppppuVar22 = (uint *******)param_1[0x10];\n      if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }\n    }\n    else {\n      FUN_000187d0(param_1);\n    }\nLAB_0001d0dc:\n    pppppppuVar16 = (uint *******)0x0;\n    param_1[10] = 0;\n  }" { (if_statement "if (1 < param_1[0x14]) {\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }" if (parenthesized_expression "(1 < param_1[0x14])" ( (binary_expression "1 < param_1[0x14]" number_literal < (subscript_expression "param_1[0x14]" identifier [ number_literal ])) )) (compound_statement "{\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }" { (expression_statement "param_1[4] = 0;" (assignment_expression "param_1[4] = 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "pppppppuVar24 = (uint *******)0x6;" (assignment_expression "pppppppuVar24 = (uint *******)0x6" identifier = (cast_expression "(uint *******)0x6" ( (type_descriptor "uint *******" type_identifier (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 (((uint)param_3 & 1) != 0) {\n      pppppppuVar24 = (uint *******)0x4;\n    }" if (parenthesized_expression "(((uint)param_3 & 1) != 0)" ( (binary_expression "((uint)param_3 & 1) != 0" (parenthesized_expression "((uint)param_3 & 1)" ( (binary_expression "(uint)param_3 & 1" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      pppppppuVar24 = (uint *******)0x4;\n    }" { (expression_statement "pppppppuVar24 = (uint *******)0x4;" (assignment_expression "pppppppuVar24 = (uint *******)0x4" identifier = (cast_expression "(uint *******)0x4" ( (type_descriptor "uint *******" type_identifier (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 "param_1[0xc] = param_1[0xb];" (assignment_expression "param_1[0xc] = param_1[0xb]" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (subscript_expression "param_1[0xb]" identifier [ number_literal ])) ;) (expression_statement "param_1[0xe] = param_1[0xd];" (assignment_expression "param_1[0xe] = param_1[0xd]" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = (subscript_expression "param_1[0xd]" identifier [ number_literal ])) ;) (expression_statement "param_1[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[6] = 0;" (assignment_expression "param_1[6] = 0" (subscript_expression "param_1[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[8] = 0;" (assignment_expression "param_1[8] = 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x13) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x13) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x13)" * (cast_expression "(undefined1 *)(param_1 + 0x13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x13)" ( (binary_expression "param_1 + 0x13" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0xf] = (int)pppppppuVar24;" (assignment_expression "param_1[0xf] = (int)pppppppuVar24" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pppppppuVar40 = param_2;" (assignment_expression "pppppppuVar40 = param_2" identifier = identifier) ;) (if_statement "if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n      goto LAB_0001d010;\n    }" if (parenthesized_expression "(*(char *)((int)param_1 + 0x4b) == '\0')" ( (binary_expression "*(char *)((int)param_1 + 0x4b) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x4b)" * (cast_expression "(char *)((int)param_1 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x4b)" ( (binary_expression "(int)param_1 + 0x4b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      param_1[1] = *param_1;\n      goto LAB_0001d010;\n    }" { (expression_statement "param_1[1] = *param_1;" (assignment_expression "param_1[1] = *param_1" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (pointer_expression "*param_1" * identifier)) ;) (goto_statement "goto LAB_0001d010;" goto statement_identifier ;) })) (if_statement "if (param_2 == (uint *******)0x0) goto LAB_0001d128;" if (parenthesized_expression "(param_2 == (uint *******)0x0)" ( (binary_expression "param_2 == (uint *******)0x0" identifier == (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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_0001d128;" goto statement_identifier ;)) (labeled_statement "LAB_0001d018:\n    iVar25 = param_1[8];" statement_identifier : (expression_statement "iVar25 = param_1[8];" (assignment_expression "iVar25 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;)) (expression_statement "unaff_s2 = (uint *******)param_1[7];" (assignment_expression "unaff_s2 = (uint *******)param_1[7]" identifier = (cast_expression "(uint *******)param_1[7]" ( (type_descriptor "uint *******" type_identifier (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[7]" identifier [ number_literal ]))) ;) (if_statement "if ((int)pppppppuVar40 < iVar25) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);\n        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);\n        param_1[0xf] = iVar25;\n        if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        cVar15 = *(char *)((int)param_1 + 0x4b);\n        if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        param_1[7] = (int)pppppppuVar24;\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        param_1[8] = param_1[8] - (int)pppppppuVar40;\n      }\n      else {\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }\nLAB_0001d090:\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      if (cVar15 == '\0') {\nLAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);\n        param_1[1] = (int)pppppppuVar40;\n      }\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n      if (pppppppuVar22 == (uint *******)0x0) goto LAB_0001d0b4;\nLAB_0001d148:\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }\n      pppppppuVar28 = (uint *******)param_1[0x14];\n      unaff_s8 = (uint *******)param_1[6];\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      param_1[7] = 0;\n      if (pppppppuVar22 == (uint *******)0x0) {\n        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }\n      uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];\n      param_1[8] = 0;\n      if (param_1[0x10] != 0) {\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }\n      pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);\n      if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {\n        pppppppuVar24 = (uint *******)0x0;\n      }\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n      param_1[0xf] = (int)pppppppuVar24;\n      pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n      iVar25 = param_1[0xe] - (int)pppppppuVar40;\n      if (cVar15 == '\0') goto LAB_0001d098;\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n    }" if (parenthesized_expression "((int)pppppppuVar40 < iVar25)" ( (binary_expression "(int)pppppppuVar40 < iVar25" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);\n        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);\n        param_1[0xf] = iVar25;\n        if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        cVar15 = *(char *)((int)param_1 + 0x4b);\n        if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        param_1[7] = (int)pppppppuVar24;\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        param_1[8] = param_1[8] - (int)pppppppuVar40;\n      }\n      else {\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }\nLAB_0001d090:\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      if (cVar15 == '\0') {\nLAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);\n        param_1[1] = (int)pppppppuVar40;\n      }\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n      if (pppppppuVar22 == (uint *******)0x0) goto LAB_0001d0b4;\nLAB_0001d148:\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n    }" { (if_statement "if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);\n        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);\n        param_1[0xf] = iVar25;\n        if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        cVar15 = *(char *)((int)param_1 + 0x4b);\n        if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        param_1[7] = (int)pppppppuVar24;\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        param_1[8] = param_1[8] - (int)pppppppuVar40;\n      }\n      else {\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }" if (parenthesized_expression "(*(char *)(param_1 + 0x13) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x13) == '\0'" (pointer_expression "*(char *)(param_1 + 0x13)" * (cast_expression "(char *)(param_1 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x13)" ( (binary_expression "param_1 + 0x13" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);\n        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);\n        param_1[0xf] = iVar25;\n        if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        cVar15 = *(char *)((int)param_1 + 0x4b);\n        if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        param_1[7] = (int)pppppppuVar24;\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        param_1[8] = param_1[8] - (int)pppppppuVar40;\n      }" { (expression_statement "iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);" (assignment_expression "iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3)" identifier = (call_expression "FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3)" identifier (argument_list "(param_1,(byte *)((int)pppppppuVar40 + -1),param_3)" ( identifier , (cast_expression "(byte *)((int)pppppppuVar40 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppuVar40 + -1)" ( (binary_expression "(int)pppppppuVar40 + -1" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , identifier )))) ;) (expression_statement "pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);" (assignment_expression "pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40)" identifier = (cast_expression "(uint *******)((int)unaff_s2 - (int)pppppppuVar40)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)unaff_s2 - (int)pppppppuVar40)" ( (binary_expression "(int)unaff_s2 - (int)pppppppuVar40" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "param_1[0xf] = iVar25;" (assignment_expression "param_1[0xf] = iVar25" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }" if (parenthesized_expression "(1 < param_1[0x14])" ( (binary_expression "1 < param_1[0x14]" number_literal < (subscript_expression "param_1[0x14]" identifier [ number_literal ])) )) (compound_statement "{\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }" { (expression_statement "(*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);" (call_expression "(*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4)" (parenthesized_expression "(*(code *)PTR_memmove_0003c324)" ( (pointer_expression "*(code *)PTR_memmove_0003c324" * (cast_expression "(code *)PTR_memmove_0003c324" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4)" ( (subscript_expression "param_1[2]" identifier [ number_literal ]) , (binary_expression "param_1[2] + (int)pppppppuVar40 * 4" (subscript_expression "param_1[2]" identifier [ number_literal ]) + (binary_expression "(int)pppppppuVar40 * 4" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) , (binary_expression "(int)pppppppuVar24 * 4" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) ;) (expression_statement "pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);" (assignment_expression "pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40)" identifier = (cast_expression "(uint *******)(param_1[7] - (int)pppppppuVar40)" ( (type_descriptor "uint *******" type_identifier (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[7] - (int)pppppppuVar40)" ( (binary_expression "param_1[7] - (int)pppppppuVar40" (subscript_expression "param_1[7]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "cVar15 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar15 = *(char *)((int)param_1 + 0x4b)" identifier = (pointer_expression "*(char *)((int)param_1 + 0x4b)" * (cast_expression "(char *)((int)param_1 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x4b)" ( (binary_expression "(int)param_1 + 0x4b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }" if (parenthesized_expression "(cVar15 != '\0')" ( (binary_expression "cVar15 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }" { (expression_statement "(*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));" (call_expression "(*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40))" (parenthesized_expression "(*(code *)PTR_memmove_0003c324)" ( (pointer_expression "*(code *)PTR_memmove_0003c324" * (cast_expression "(code *)PTR_memmove_0003c324" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40))" ( (subscript_expression "param_1[1]" identifier [ number_literal ]) , (cast_expression "(byte *)(param_1[1] + (int)pppppppuVar40)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + (int)pppppppuVar40)" ( (binary_expression "param_1[1] + (int)pppppppuVar40" (subscript_expression "param_1[1]" identifier [ number_literal ]) + (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) ;) (expression_statement "cVar15 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar15 = *(char *)((int)param_1 + 0x4b)" identifier = (pointer_expression "*(char *)((int)param_1 + 0x4b)" * (cast_expression "(char *)((int)param_1 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x4b)" ( (binary_expression "(int)param_1 + 0x4b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);" (assignment_expression "pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40)" identifier = (cast_expression "(uint *******)(param_1[7] - (int)pppppppuVar40)" ( (type_descriptor "uint *******" type_identifier (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[7] - (int)pppppppuVar40)" ( (binary_expression "param_1[7] - (int)pppppppuVar40" (subscript_expression "param_1[7]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "pppppppuVar28 = (uint *******)param_1[0x14];" (assignment_expression "pppppppuVar28 = (uint *******)param_1[0x14]" identifier = (cast_expression "(uint *******)param_1[0x14]" ( (type_descriptor "uint *******" type_identifier (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[0x14]" identifier [ number_literal ]))) ;) (expression_statement "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);" (assignment_expression "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40)" identifier = (cast_expression "(uint *******)(param_1[0xc] - (int)pppppppuVar40)" ( (type_descriptor "uint *******" type_identifier (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[0xc] - (int)pppppppuVar40)" ( (binary_expression "param_1[0xc] - (int)pppppppuVar40" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "param_1[7] = (int)pppppppuVar24;" (assignment_expression "param_1[7] = (int)pppppppuVar24" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar25 = param_1[0xe] - (int)pppppppuVar40;" (assignment_expression "iVar25 = param_1[0xe] - (int)pppppppuVar40" identifier = (binary_expression "param_1[0xe] - (int)pppppppuVar40" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_1[8] = param_1[8] - (int)pppppppuVar40;" (assignment_expression "param_1[8] = param_1[8] - (int)pppppppuVar40" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (binary_expression "param_1[8] - (int)pppppppuVar40" (subscript_expression "param_1[8]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }" else (compound_statement "{\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }" { (expression_statement "unaff_s7 = (uint *******)param_1[3];" (assignment_expression "unaff_s7 = (uint *******)param_1[3]" identifier = (cast_expression "(uint *******)param_1[3]" ( (type_descriptor "uint *******" type_identifier (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[3]" identifier [ number_literal ]))) ;) (expression_statement "pbVar8 = (byte *)0x0;" (assignment_expression "pbVar8 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pppppppuVar24 = unaff_s2;" (assignment_expression "pppppppuVar24 = unaff_s2" identifier = identifier) ;) (do_statement "do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);" do (compound_statement "{\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        }" { (expression_statement "unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);" (assignment_expression "unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2)" identifier = (cast_expression "(uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)(pbVar8 + (int)pppppppuVar24) / 2)" ( (binary_expression "(int)(pbVar8 + (int)pppppppuVar24) / 2" (cast_expression "(int)(pbVar8 + (int)pppppppuVar24)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar8 + (int)pppppppuVar24)" ( (binary_expression "pbVar8 + (int)pppppppuVar24" identifier + (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / number_literal) )))) ;) (expression_statement "ppppppuVar20 = unaff_s7[(int)unaff_s3];" (assignment_expression "ppppppuVar20 = unaff_s7[(int)unaff_s3]" identifier = (subscript_expression "unaff_s7[(int)unaff_s3]" identifier [ (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) (expression_statement "pppppppuVar16 = unaff_s3;" (assignment_expression "pppppppuVar16 = unaff_s3" identifier = identifier) ;) (if_statement "if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;" if (parenthesized_expression "(((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20))" ( (binary_expression "((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)" (parenthesized_expression "((int)ppppppuVar20 <= (int)pppppppuVar40)" ( (binary_expression "(int)ppppppuVar20 <= (int)pppppppuVar40" (cast_expression "(int)ppppppuVar20" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)" ( (comma_expression "pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20" (assignment_expression "pbVar8 = (byte *)((int)unaff_s3 + 1)" identifier = (cast_expression "(byte *)((int)unaff_s3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s3 + 1)" ( (binary_expression "(int)unaff_s3 + 1" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20" (assignment_expression "pppppppuVar16 = pppppppuVar24" identifier = identifier) , (binary_expression "(int)pppppppuVar40 <= (int)ppppppuVar20" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)ppppppuVar20" ( (type_descriptor "int" primitive_type) ) identifier)))) ))) )) (goto_statement "goto LAB_0001d460;" goto statement_identifier ;)) (expression_statement "pppppppuVar24 = pppppppuVar16;" (assignment_expression "pppppppuVar24 = pppppppuVar16" identifier = identifier) ;) }) while (parenthesized_expression "((int)pbVar8 < (int)pppppppuVar16)" ( (binary_expression "(int)pbVar8 < (int)pppppppuVar16" (cast_expression "(int)pbVar8" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppppuVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (if_statement "if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }" if (parenthesized_expression "((int)ppppppuVar20 < (int)pppppppuVar40)" ( (binary_expression "(int)ppppppuVar20 < (int)pppppppuVar40" (cast_expression "(int)ppppppuVar20" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }" { (expression_statement "pppppppuVar24 = unaff_s3;" (assignment_expression "pppppppuVar24 = unaff_s3" identifier = identifier) ;) (expression_statement "unaff_s3 = (uint *******)((int)unaff_s3 + 1);" (assignment_expression "unaff_s3 = (uint *******)((int)unaff_s3 + 1)" identifier = (cast_expression "(uint *******)((int)unaff_s3 + 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)unaff_s3 + 1)" ( (binary_expression "(int)unaff_s3 + 1" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) (else_clause "else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }" else (compound_statement "{\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }" { (labeled_statement "LAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);" statement_identifier : (expression_statement "pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);" (assignment_expression "pppppppuVar24 = (uint *******)((int)unaff_s3 + -1)" identifier = (cast_expression "(uint *******)((int)unaff_s3 + -1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)unaff_s3 + -1)" ( (binary_expression "(int)unaff_s3 + -1" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) }))) (expression_statement "iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);" (assignment_expression "iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3)" identifier = (call_expression "FUN_0001cb50(param_1,pppppppuVar24,param_3)" identifier (argument_list "(param_1,pppppppuVar24,param_3)" ( identifier , identifier , identifier )))) ;) (expression_statement "param_1[0xf] = iVar25;" (assignment_expression "param_1[0xf] = iVar25" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }" if (parenthesized_expression "((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40))" ( (binary_expression "(((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)" (parenthesized_expression "(((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3))" ( (binary_expression "((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)" (parenthesized_expression "((int)pppppppuVar40 < (int)unaff_s2)" ( (binary_expression "(int)pppppppuVar40 < (int)unaff_s2" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)" ( (comma_expression "param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3" (assignment_expression "param_3 = (uint *******)((int)pppppppuVar40 * 4)" identifier = (cast_expression "(uint *******)((int)pppppppuVar40 * 4)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar40 * 4)" ( (binary_expression "(int)pppppppuVar40 * 4" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) , (binary_expression "pppppppuVar40 == unaff_s3" identifier == identifier)) ))) )) && (parenthesized_expression "((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)" ( (binary_expression "(uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40" (cast_expression "(uint *******)unaff_s7[(int)pppppppuVar40]" ( (type_descriptor "uint *******" type_identifier (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[(int)pppppppuVar40]" identifier [ (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) ])) == identifier) ))) )) (compound_statement "{\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }" { (expression_statement "(*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);" (call_expression "(*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4)" (parenthesized_expression "(*(code *)PTR_memmove_0003c324)" ( (pointer_expression "*(code *)PTR_memmove_0003c324" * (cast_expression "(code *)PTR_memmove_0003c324" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4)" ( (subscript_expression "param_1[2]" identifier [ number_literal ]) , (cast_expression "(byte *)(param_1[2] + (int)param_3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + (int)param_3)" ( (binary_expression "param_1[2] + (int)param_3" (subscript_expression "param_1[2]" identifier [ number_literal ]) + (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) , (binary_expression "((int)unaff_s2 - (int)pppppppuVar40) * 4" (parenthesized_expression "((int)unaff_s2 - (int)pppppppuVar40)" ( (binary_expression "(int)unaff_s2 - (int)pppppppuVar40" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal) ))) ;) (expression_statement "pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);" (assignment_expression "pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40)" identifier = (cast_expression "(uint *******)(param_1[7] - (int)pppppppuVar40)" ( (type_descriptor "uint *******" type_identifier (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[7] - (int)pppppppuVar40)" ( (binary_expression "param_1[7] - (int)pppppppuVar40" (subscript_expression "param_1[7]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "(*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));" (call_expression "(*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40))" (parenthesized_expression "(*(code *)PTR_memmove_0003c324)" ( (pointer_expression "*(code *)PTR_memmove_0003c324" * (cast_expression "(code *)PTR_memmove_0003c324" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40))" ( (subscript_expression "param_1[1]" identifier [ number_literal ]) , (cast_expression "(byte *)(param_1[1] + (int)pppppppuVar40)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + (int)pppppppuVar40)" ( (binary_expression "param_1[1] + (int)pppppppuVar40" (subscript_expression "param_1[1]" identifier [ number_literal ]) + (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) ;) (expression_statement "iVar25 = param_1[7];" (assignment_expression "iVar25 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (expression_statement "param_1[7] = iVar25 - (int)pppppppuVar40;" (assignment_expression "param_1[7] = iVar25 - (int)pppppppuVar40" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (binary_expression "iVar25 - (int)pppppppuVar40" identifier - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_1[8] = param_1[8] - (int)pppppppuVar40;" (assignment_expression "param_1[8] = param_1[8] - (int)pppppppuVar40" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (binary_expression "param_1[8] - (int)pppppppuVar40" (subscript_expression "param_1[8]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }" if (parenthesized_expression "(0 < iVar25 - (int)pppppppuVar40)" ( (binary_expression "0 < iVar25 - (int)pppppppuVar40" number_literal < (binary_expression "iVar25 - (int)pppppppuVar40" identifier - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }" { (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (expression_statement "pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);" (assignment_expression "pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4)" identifier = (cast_expression "(uint *******)((int)pppppppuVar40 * -4)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar40 * -4)" ( (binary_expression "(int)pppppppuVar40 * -4" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "pbVar8 = (byte *)(param_1[3] + (int)param_3);" (assignment_expression "pbVar8 = (byte *)(param_1[3] + (int)param_3)" identifier = (cast_expression "(byte *)(param_1[3] + (int)param_3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[3] + (int)param_3)" ( (binary_expression "param_1[3] + (int)param_3" (subscript_expression "param_1[3]" identifier [ number_literal ]) + (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (do_statement "do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);" do (compound_statement "{\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            }" { (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;" (assignment_expression "*(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40" (pointer_expression "*(int *)(pbVar8 + (int)pppppppuVar24)" * (cast_expression "(int *)(pbVar8 + (int)pppppppuVar24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar8 + (int)pppppppuVar24)" ( (binary_expression "pbVar8 + (int)pppppppuVar24" identifier + (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = (binary_expression "*(int *)pbVar8 - (int)pppppppuVar40" (pointer_expression "*(int *)pbVar8" * (cast_expression "(int *)pbVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar8 = pbVar8 + 4;" (assignment_expression "pbVar8 = pbVar8 + 4" identifier = (binary_expression "pbVar8 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar25 < param_1[7])" ( (binary_expression "iVar25 < param_1[7]" identifier < (subscript_expression "param_1[7]" identifier [ number_literal ])) )) ;) })) (expression_statement "pppppppuVar28 = (uint *******)param_1[0x14];" (assignment_expression "pppppppuVar28 = (uint *******)param_1[0x14]" identifier = (cast_expression "(uint *******)param_1[0x14]" ( (type_descriptor "uint *******" type_identifier (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[0x14]" identifier [ number_literal ]))) ;) (expression_statement "cVar15 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar15 = *(char *)((int)param_1 + 0x4b)" identifier = (pointer_expression "*(char *)((int)param_1 + 0x4b)" * (cast_expression "(char *)((int)param_1 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x4b)" ( (binary_expression "(int)param_1 + 0x4b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);" (assignment_expression "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40)" identifier = (cast_expression "(uint *******)(param_1[0xc] - (int)pppppppuVar40)" ( (type_descriptor "uint *******" type_identifier (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[0xc] - (int)pppppppuVar40)" ( (binary_expression "param_1[0xc] - (int)pppppppuVar40" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar25 = param_1[0xe] - (int)pppppppuVar40;" (assignment_expression "iVar25 = param_1[0xe] - (int)pppppppuVar40" identifier = (binary_expression "param_1[0xe] - (int)pppppppuVar40" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }" else (compound_statement "{\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }" { (expression_statement "*(undefined1 *)(param_1 + 0x13) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x13) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x13)" * (cast_expression "(undefined1 *)(param_1 + 0x13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x13)" ( (binary_expression "param_1 + 0x13" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);" (assignment_expression "pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2)" identifier = (cast_expression "(uint *******)(param_1[0xb] - (int)param_2)" ( (type_descriptor "uint *******" type_identifier (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[0xb] - (int)param_2)" ( (binary_expression "param_1[0xb] - (int)param_2" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar25 = param_1[0xd] - (int)param_2;" (assignment_expression "iVar25 = param_1[0xd] - (int)param_2" identifier = (binary_expression "param_1[0xd] - (int)param_2" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);" (assignment_expression "param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40)" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (cast_expression "(int)((int)pppppppuVar16 + (int)pppppppuVar40)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppppuVar16 + (int)pppppppuVar40)" ( (binary_expression "(int)pppppppuVar16 + (int)pppppppuVar40" (cast_expression "(int)pppppppuVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);" (assignment_expression "param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40)" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = (cast_expression "(int)(iVar25 + (int)pppppppuVar40)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar25 + (int)pppppppuVar40)" ( (binary_expression "iVar25 + (int)pppppppuVar40" identifier + (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }" if (parenthesized_expression "((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)]))" ( (binary_expression "(0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])" (parenthesized_expression "(0 < (int)unaff_s3)" ( (binary_expression "0 < (int)unaff_s3" number_literal < (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])" ( (binary_expression "pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)]" identifier == (cast_expression "(uint *******)unaff_s7[(int)((int)unaff_s3 + -1)]" ( (type_descriptor "uint *******" type_identifier (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[(int)((int)unaff_s3 + -1)]" identifier [ (cast_expression "(int)((int)unaff_s3 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)unaff_s3 + -1)" ( (binary_expression "(int)unaff_s3 + -1" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ]))) ))) )) (compound_statement "{\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }" { (expression_statement "pppppppuVar24 = unaff_s7 + (int)unaff_s3;" (assignment_expression "pppppppuVar24 = unaff_s7 + (int)unaff_s3" identifier = (binary_expression "unaff_s7 + (int)unaff_s3" identifier + (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);" do (compound_statement "{\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            }" { (expression_statement "unaff_s3 = (uint *******)((int)unaff_s3 + -1);" (assignment_expression "unaff_s3 = (uint *******)((int)unaff_s3 + -1)" identifier = (cast_expression "(uint *******)((int)unaff_s3 + -1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)unaff_s3 + -1)" ( (binary_expression "(int)unaff_s3 + -1" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (unaff_s3 == (uint *******)0x0) break;" if (parenthesized_expression "(unaff_s3 == (uint *******)0x0)" ( (binary_expression "unaff_s3 == (uint *******)0x0" identifier == (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pppppppuVar22 = pppppppuVar24 + -2;" (assignment_expression "pppppppuVar22 = pppppppuVar24 + -2" identifier = (binary_expression "pppppppuVar24 + -2" identifier + number_literal)) ;) (expression_statement "pppppppuVar24 = pppppppuVar24 + -1;" (assignment_expression "pppppppuVar24 = pppppppuVar24 + -1" identifier = (binary_expression "pppppppuVar24 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "((uint *******)*pppppppuVar22 == pppppppuVar40)" ( (binary_expression "(uint *******)*pppppppuVar22 == pppppppuVar40" (cast_expression "(uint *******)*pppppppuVar22" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppuVar22" * identifier)) == identifier) )) ;) })) (expression_statement "iVar5 = (int)unaff_s3 * 4;" (assignment_expression "iVar5 = (int)unaff_s3 * 4" identifier = (binary_expression "(int)unaff_s3 * 4" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }" if (parenthesized_expression "((int)unaff_s3 < (int)unaff_s2)" ( (binary_expression "(int)unaff_s3 < (int)unaff_s2" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }" { (expression_statement "piVar6 = (int *)(param_1[2] + iVar5);" (assignment_expression "piVar6 = (int *)(param_1[2] + iVar5)" identifier = (cast_expression "(int *)(param_1[2] + iVar5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + iVar5)" ( (binary_expression "param_1[2] + iVar5" (subscript_expression "param_1[2]" identifier [ number_literal ]) + identifier) )))) ;) (expression_statement "iVar35 = *piVar6;" (assignment_expression "iVar35 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (while_statement "while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }" while (parenthesized_expression "(iVar35 == -1)" ( (binary_expression "iVar35 == -1" identifier == number_literal) )) (compound_statement "{\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }" { (expression_statement "unaff_s3 = (uint *******)((int)unaff_s3 + 1);" (assignment_expression "unaff_s3 = (uint *******)((int)unaff_s3 + 1)" identifier = (cast_expression "(uint *******)((int)unaff_s3 + 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)unaff_s3 + 1)" ( (binary_expression "(int)unaff_s3 + 1" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" identifier = (binary_expression "piVar6 + 1" identifier + number_literal)) ;) (if_statement "if (unaff_s3 == unaff_s2) goto LAB_0001d444;" if (parenthesized_expression "(unaff_s3 == unaff_s2)" ( (binary_expression "unaff_s3 == unaff_s2" identifier == identifier) )) (goto_statement "goto LAB_0001d444;" goto statement_identifier ;)) (expression_statement "iVar5 = (int)unaff_s3 * 4;" (assignment_expression "iVar5 = (int)unaff_s3 * 4" identifier = (binary_expression "(int)unaff_s3 * 4" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "iVar35 = *piVar6;" (assignment_expression "iVar35 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) })) (labeled_statement "LAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);" statement_identifier : (expression_statement "unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);" (assignment_expression "unaff_s7 = (uint *******)((int)unaff_s7 + iVar5)" identifier = (cast_expression "(uint *******)((int)unaff_s7 + iVar5)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)unaff_s7 + iVar5)" ( (binary_expression "(int)unaff_s7 + iVar5" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;)) (expression_statement "pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);" (assignment_expression "pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40)" identifier = (cast_expression "(uint *******)((int)*unaff_s7 - (int)pppppppuVar40)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)*unaff_s7 - (int)pppppppuVar40)" ( (binary_expression "(int)*unaff_s7 - (int)pppppppuVar40" (cast_expression "(int)*unaff_s7" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*unaff_s7" * identifier)) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "param_1[7] = (int)pppppppuVar24;" (assignment_expression "param_1[7] = (int)pppppppuVar24" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }" if (parenthesized_expression "(pppppppuVar24 != (uint *******)0x0)" ( (binary_expression "pppppppuVar24 != (uint *******)0x0" identifier != (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }" { (if_statement "if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }" if (parenthesized_expression "(0 < (int)pppppppuVar24)" ( (binary_expression "0 < (int)pppppppuVar24" number_literal < (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }" { (expression_statement "puVar9 = (undefined4 *)param_1[2];" (assignment_expression "puVar9 = (undefined4 *)param_1[2]" identifier = (cast_expression "(undefined4 *)param_1[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (do_statement "do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);" do (compound_statement "{\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                }" { (expression_statement "*puVar9 = 0xffffffff;" (assignment_expression "*puVar9 = 0xffffffff" (pointer_expression "*puVar9" * identifier) = number_literal) ;) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar25 < param_1[7])" ( (binary_expression "iVar25 < param_1[7]" identifier < (subscript_expression "param_1[7]" identifier [ number_literal ])) )) ;) })) (expression_statement "(*(code *)PTR_memset_0003c290)(param_1[1],0xff);" (call_expression "(*(code *)PTR_memset_0003c290)(param_1[1],0xff)" (parenthesized_expression "(*(code *)PTR_memset_0003c290)" ( (pointer_expression "*(code *)PTR_memset_0003c290" * (cast_expression "(code *)PTR_memset_0003c290" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[1],0xff)" ( (subscript_expression "param_1[1]" identifier [ number_literal ]) , number_literal ))) ;) (expression_statement "pppppppuVar24 = (uint *******)param_1[7];" (assignment_expression "pppppppuVar24 = (uint *******)param_1[7]" identifier = (cast_expression "(uint *******)param_1[7]" ( (type_descriptor "uint *******" type_identifier (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[7]" identifier [ number_literal ]))) ;) (expression_statement "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);" (assignment_expression "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40)" identifier = (cast_expression "(uint *******)(param_1[0xc] - (int)pppppppuVar40)" ( (type_descriptor "uint *******" type_identifier (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[0xc] - (int)pppppppuVar40)" ( (binary_expression "param_1[0xc] - (int)pppppppuVar40" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar25 = param_1[0xe] - (int)pppppppuVar40;" (assignment_expression "iVar25 = param_1[0xe] - (int)pppppppuVar40" identifier = (binary_expression "param_1[0xe] - (int)pppppppuVar40" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) }) (else_clause "else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }" else (compound_statement "{\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }" { (if_statement "if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;" if (parenthesized_expression "(unaff_s3 != unaff_s2)" ( (binary_expression "unaff_s3 != unaff_s2" identifier != identifier) )) (goto_statement "goto LAB_0001d4ac;" goto statement_identifier ;)) (labeled_statement "LAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;" statement_identifier : (expression_statement "pppppppuVar24 = (uint *******)0x0;" (assignment_expression "pppppppuVar24 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "param_1[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) = number_literal) ;) }))) (expression_statement "pppppppuVar28 = (uint *******)param_1[0x14];" (assignment_expression "pppppppuVar28 = (uint *******)param_1[0x14]" identifier = (cast_expression "(uint *******)param_1[0x14]" ( (type_descriptor "uint *******" type_identifier (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[0x14]" identifier [ number_literal ]))) ;) (expression_statement "cVar15 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar15 = *(char *)((int)param_1 + 0x4b)" identifier = (pointer_expression "*(char *)((int)param_1 + 0x4b)" * (cast_expression "(char *)((int)param_1 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x4b)" ( (binary_expression "(int)param_1 + 0x4b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "param_1[8] = (int)pppppppuVar24;" (assignment_expression "param_1[8] = (int)pppppppuVar24" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) }))) (labeled_statement "LAB_0001d090:\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);" statement_identifier : (expression_statement "pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);" (assignment_expression "pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2)" identifier = (cast_expression "(uint *******)(uint)((int)pppppppuVar28 < 2)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)((int)pppppppuVar28 < 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pppppppuVar28 < 2)" ( (binary_expression "(int)pppppppuVar28 < 2" (cast_expression "(int)pppppppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))))) ;)) (if_statement "if (cVar15 == '\0') {\nLAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);\n        param_1[1] = (int)pppppppuVar40;\n      }" if (parenthesized_expression "(cVar15 == '\0')" ( (binary_expression "cVar15 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);\n        param_1[1] = (int)pppppppuVar40;\n      }" { (labeled_statement "LAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);" statement_identifier : (expression_statement "pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);" (assignment_expression "pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40)" identifier = (cast_expression "(uint *******)(param_1[1] + (int)pppppppuVar40)" ( (type_descriptor "uint *******" type_identifier (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[1] + (int)pppppppuVar40)" ( (binary_expression "param_1[1] + (int)pppppppuVar40" (subscript_expression "param_1[1]" identifier [ number_literal ]) + (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "param_1[1] = (int)pppppppuVar40;" (assignment_expression "param_1[1] = (int)pppppppuVar40" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (expression_statement "param_1[6] = (int)param_2;" (assignment_expression "param_1[6] = (int)param_2" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[0xc] = (int)pppppppuVar16;" (assignment_expression "param_1[0xc] = (int)pppppppuVar16" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[0xe] = iVar25;" (assignment_expression "param_1[0xe] = iVar25" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (pppppppuVar22 == (uint *******)0x0) goto LAB_0001d0b4;" if (parenthesized_expression "(pppppppuVar22 == (uint *******)0x0)" ( (binary_expression "pppppppuVar22 == (uint *******)0x0" identifier == (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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_0001d0b4;" goto statement_identifier ;)) (labeled_statement "LAB_0001d148:\n      cVar15 = *(char *)((int)param_1 + 0x4b);" statement_identifier : (expression_statement "cVar15 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar15 = *(char *)((int)param_1 + 0x4b)" identifier = (pointer_expression "*(char *)((int)param_1 + 0x4b)" * (cast_expression "(char *)((int)param_1 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x4b)" ( (binary_expression "(int)param_1 + 0x4b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) }) (else_clause "else {\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }\n      pppppppuVar28 = (uint *******)param_1[0x14];\n      unaff_s8 = (uint *******)param_1[6];\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      param_1[7] = 0;\n      if (pppppppuVar22 == (uint *******)0x0) {\n        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }\n      uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];\n      param_1[8] = 0;\n      if (param_1[0x10] != 0) {\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }\n      pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);\n      if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {\n        pppppppuVar24 = (uint *******)0x0;\n      }\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n      param_1[0xf] = (int)pppppppuVar24;\n      pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n      iVar25 = param_1[0xe] - (int)pppppppuVar40;\n      if (cVar15 == '\0') goto LAB_0001d098;\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n    }" else (compound_statement "{\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }\n      pppppppuVar28 = (uint *******)param_1[0x14];\n      unaff_s8 = (uint *******)param_1[6];\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      param_1[7] = 0;\n      if (pppppppuVar22 == (uint *******)0x0) {\n        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }\n      uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];\n      param_1[8] = 0;\n      if (param_1[0x10] != 0) {\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }\n      pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);\n      if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {\n        pppppppuVar24 = (uint *******)0x0;\n      }\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n      param_1[0xf] = (int)pppppppuVar24;\n      pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n      iVar25 = param_1[0xe] - (int)pppppppuVar40;\n      if (cVar15 == '\0') goto LAB_0001d098;\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n    }" { (if_statement "if (*(char *)(param_1 + 0x13) != '\0') {\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }" if (parenthesized_expression "(*(char *)(param_1 + 0x13) != '\0')" ( (binary_expression "*(char *)(param_1 + 0x13) != '\0'" (pointer_expression "*(char *)(param_1 + 0x13)" * (cast_expression "(char *)(param_1 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x13)" ( (binary_expression "param_1 + 0x13" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0x13) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x13) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x13)" * (cast_expression "(undefined1 *)(param_1 + 0x13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x13)" ( (binary_expression "param_1 + 0x13" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);" (assignment_expression "param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40)" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (cast_expression "(int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((param_1[0xb] - (int)param_2) + (int)pppppppuVar40)" ( (binary_expression "(param_1[0xb] - (int)param_2) + (int)pppppppuVar40" (parenthesized_expression "(param_1[0xb] - (int)param_2)" ( (binary_expression "param_1[0xb] - (int)param_2" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) + (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);" (assignment_expression "param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40)" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = (cast_expression "(int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((param_1[0xd] - (int)param_2) + (int)pppppppuVar40)" ( (binary_expression "(param_1[0xd] - (int)param_2) + (int)pppppppuVar40" (parenthesized_expression "(param_1[0xd] - (int)param_2)" ( (binary_expression "param_1[0xd] - (int)param_2" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) + (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "pppppppuVar28 = (uint *******)param_1[0x14];" (assignment_expression "pppppppuVar28 = (uint *******)param_1[0x14]" identifier = (cast_expression "(uint *******)param_1[0x14]" ( (type_descriptor "uint *******" type_identifier (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[0x14]" identifier [ number_literal ]))) ;) (expression_statement "unaff_s8 = (uint *******)param_1[6];" (assignment_expression "unaff_s8 = (uint *******)param_1[6]" identifier = (cast_expression "(uint *******)param_1[6]" ( (type_descriptor "uint *******" type_identifier (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[6]" identifier [ number_literal ]))) ;) (expression_statement "pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);" (assignment_expression "pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2)" identifier = (cast_expression "(uint *******)(uint)((int)pppppppuVar28 < 2)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)((int)pppppppuVar28 < 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pppppppuVar28 < 2)" ( (binary_expression "(int)pppppppuVar28 < 2" (cast_expression "(int)pppppppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))))) ;) (expression_statement "param_1[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (pppppppuVar22 == (uint *******)0x0) {\n        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }" if (parenthesized_expression "(pppppppuVar22 == (uint *******)0x0)" ( (binary_expression "pppppppuVar22 == (uint *******)0x0" identifier == (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }" { (if_statement "if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }" if (parenthesized_expression "(*(char *)((int)param_1 + 0x49) == '\0')" ( (binary_expression "*(char *)((int)param_1 + 0x49) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x49)" * (cast_expression "(char *)((int)param_1 + 0x49)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x49)" ( (binary_expression "(int)param_1 + 0x49" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }" { (labeled_statement "LAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);" statement_identifier : (expression_statement "pbVar8 = (byte *)((int)unaff_s8 + iVar25);" (assignment_expression "pbVar8 = (byte *)((int)unaff_s8 + iVar25)" identifier = (cast_expression "(byte *)((int)unaff_s8 + iVar25)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s8 + iVar25)" ( (binary_expression "(int)unaff_s8 + iVar25" (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;)) (if_statement "if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }" if (parenthesized_expression "((int)pbVar8 < (int)param_2)" ( (binary_expression "(int)pbVar8 < (int)param_2" (cast_expression "(int)pbVar8" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }" { (expression_statement "unaff_s7 = (uint *******)&local_40;" (assignment_expression "unaff_s7 = (uint *******)&local_40" identifier = (cast_expression "(uint *******)&local_40" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_40" & identifier))) ;) (do_statement "do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);" do (compound_statement "{\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            }" { (expression_statement "local_3c = param_1[4];" (assignment_expression "local_3c = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "local_38 = param_1[5];" (assignment_expression "local_38 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);" (assignment_expression "pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8)" identifier = (cast_expression "(uint *******)(param_1[0xb] - (int)pbVar8)" ( (type_descriptor "uint *******" type_identifier (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[0xb] - (int)pbVar8)" ( (binary_expression "param_1[0xb] - (int)pbVar8" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) - (cast_expression "(int)pbVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppuVar24 = pppppppuVar16;" (assignment_expression "pppppppuVar24 = pppppppuVar16" identifier = identifier) ;) (expression_statement "iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);" (assignment_expression "iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4)" identifier = (call_expression "rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4)" identifier (argument_list "(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4)" ( identifier , (binary_expression "pbVar8 + *param_1" identifier + (pointer_expression "*param_1" * identifier)) , identifier , (binary_expression "param_1 + 4" identifier + number_literal) )))) ;) (expression_statement "unaff_s3 = local_40;" (assignment_expression "unaff_s3 = local_40" identifier = identifier) ;) (if_statement "if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }" if (parenthesized_expression "(0xfffffffc < iVar25 - 1U)" ( (binary_expression "0xfffffffc < iVar25 - 1U" number_literal < (binary_expression "iVar25 - 1U" identifier - number_literal)) )) (compound_statement "{\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }" { (if_statement "if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }" if (parenthesized_expression "((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0))" ( (binary_expression "(iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)" (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) || (parenthesized_expression "(pppppppuVar16 == (uint *******)0x0)" ( (binary_expression "pppppppuVar16 == (uint *******)0x0" identifier == (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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                  unaff_s3 = (uint *******)0x0;\n                }" { (expression_statement "unaff_s3 = (uint *******)0x0;" (assignment_expression "unaff_s3 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }" else (compound_statement "{\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }" { (expression_statement "unaff_s3 = (uint *******)(uint)pbVar8[*param_1];" (assignment_expression "unaff_s3 = (uint *******)(uint)pbVar8[*param_1]" identifier = (cast_expression "(uint *******)(uint)pbVar8[*param_1]" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (cast_expression "(uint)pbVar8[*param_1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar8[*param_1]" identifier [ (pointer_expression "*param_1" * identifier) ])))) ;) }))) (expression_statement "iVar25 = 1;" (assignment_expression "iVar25 = 1" identifier = number_literal) ;) (expression_statement "param_1[4] = local_3c;" (assignment_expression "param_1[4] = local_3c" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = local_38;" (assignment_expression "param_1[5] = local_38" (subscript_expression "param_1[5]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "pbVar8 = pbVar8 + iVar25;" (assignment_expression "pbVar8 = pbVar8 + iVar25" identifier = (binary_expression "pbVar8 + iVar25" identifier + identifier)) ;) }) while (parenthesized_expression "((int)pbVar8 < (int)param_2)" ( (binary_expression "(int)pbVar8 < (int)param_2" (cast_expression "(int)pbVar8" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);" (assignment_expression "unaff_s8 = (uint *******)(pbVar8 + -(int)param_2)" identifier = (cast_expression "(uint *******)(pbVar8 + -(int)param_2)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pbVar8 + -(int)param_2)" ( (binary_expression "pbVar8 + -(int)param_2" identifier + (unary_expression "-(int)param_2" - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (expression_statement "param_1[7] = (int)unaff_s8;" (assignment_expression "param_1[7] = (int)unaff_s8" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;" if (parenthesized_expression "(unaff_s3 != (uint *******)0xffffffff)" ( (binary_expression "unaff_s3 != (uint *******)0xffffffff" identifier != (cast_expression "(uint *******)0xffffffff" ( (type_descriptor "uint *******" type_identifier (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_0001d2a4;" goto statement_identifier ;)) }) (else_clause "else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }" else (compound_statement "{\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }" { (expression_statement "unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);" (assignment_expression "unaff_s8 = (uint *******)(pbVar8 + -(int)param_2)" identifier = (cast_expression "(uint *******)(pbVar8 + -(int)param_2)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pbVar8 + -(int)param_2)" ( (binary_expression "pbVar8 + -(int)param_2" identifier + (unary_expression "-(int)param_2" - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (expression_statement "param_1[7] = (int)unaff_s8;" (assignment_expression "param_1[7] = (int)unaff_s8" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) (expression_statement "pppppppuVar24 = param_3;" (assignment_expression "pppppppuVar24 = param_3" identifier = identifier) ;) (expression_statement "iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));" (assignment_expression "iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1))" identifier = (call_expression "FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1))" identifier (argument_list "(param_1,(byte *)((int)unaff_s2 + -1))" ( identifier , (cast_expression "(byte *)((int)unaff_s2 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s2 + -1)" ( (binary_expression "(int)unaff_s2 + -1" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )))) ;) (expression_statement "param_1[0xf] = iVar25;" (assignment_expression "param_1[0xf] = iVar25" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }" else (compound_statement "{\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }" { (expression_statement "pppppppuVar16 = (uint *******)*param_1;" (assignment_expression "pppppppuVar16 = (uint *******)*param_1" identifier = (cast_expression "(uint *******)*param_1" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);" (assignment_expression "unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8)" identifier = (cast_expression "(uint *******)((int)pppppppuVar16 + (int)unaff_s8)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar16 + (int)unaff_s8)" ( (binary_expression "(int)pppppppuVar16 + (int)unaff_s8" (cast_expression "(int)pppppppuVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));" (assignment_expression "pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28))" identifier = (cast_expression "(uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28))" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28))" ( (binary_expression "(int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28)" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)pppppppuVar40 - (int)pppppppuVar28)" ( (binary_expression "(int)pppppppuVar40 - (int)pppppppuVar28" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pppppppuVar28" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));" (assignment_expression "unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1))" identifier = (cast_expression "(uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1))" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)unaff_s7 + (int)((int)pppppppuVar40 + -1))" ( (binary_expression "(int)unaff_s7 + (int)((int)pppppppuVar40 + -1)" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)((int)pppppppuVar40 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppppuVar40 + -1)" ( (binary_expression "(int)pppppppuVar40 + -1" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (if_statement "if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }" if (parenthesized_expression "(pppppppuVar24 <= pppppppuVar16)" ( (binary_expression "pppppppuVar24 <= pppppppuVar16" identifier <= identifier) )) (compound_statement "{\n            pppppppuVar24 = pppppppuVar16;\n          }" { (expression_statement "pppppppuVar24 = pppppppuVar16;" (assignment_expression "pppppppuVar24 = pppppppuVar16" identifier = identifier) ;) })) (if_statement "if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;" if (parenthesized_expression "(unaff_s3 < pppppppuVar24)" ( (binary_expression "unaff_s3 < pppppppuVar24" identifier < identifier) )) (goto_statement "goto LAB_0001d228;" goto statement_identifier ;)) (expression_statement "bVar2 = *(byte *)unaff_s3;" (assignment_expression "bVar2 = *(byte *)unaff_s3" identifier = (pointer_expression "*(byte *)unaff_s3" * (cast_expression "(byte *)unaff_s3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (while_statement "while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }" while (parenthesized_expression "((bVar2 & 0xc0) == 0x80)" ( (binary_expression "(bVar2 & 0xc0) == 0x80" (parenthesized_expression "(bVar2 & 0xc0)" ( (binary_expression "bVar2 & 0xc0" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }" { (expression_statement "unaff_s3 = (uint *******)((int)unaff_s3 + -1);" (assignment_expression "unaff_s3 = (uint *******)((int)unaff_s3 + -1)" identifier = (cast_expression "(uint *******)((int)unaff_s3 + -1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)unaff_s3 + -1)" ( (binary_expression "(int)unaff_s3 + -1" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;" if (parenthesized_expression "(unaff_s3 < pppppppuVar24)" ( (binary_expression "unaff_s3 < pppppppuVar24" identifier < identifier) )) (goto_statement "goto LAB_0001d228;" goto statement_identifier ;)) (expression_statement "bVar2 = *(byte *)unaff_s3;" (assignment_expression "bVar2 = *(byte *)unaff_s3" identifier = (pointer_expression "*(byte *)unaff_s3" * (cast_expression "(byte *)unaff_s3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) })) (expression_statement "iVar25 = param_1[0x10];" (assignment_expression "iVar25 = param_1[0x10]" identifier = (subscript_expression "param_1[0x10]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));" (assignment_expression "pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3))" identifier = (cast_expression "(uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3))" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3))" ( (binary_expression "(int)unaff_s7 + (param_1[0xc] - (int)unaff_s3)" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(param_1[0xc] - (int)unaff_s3)" ( (binary_expression "param_1[0xc] - (int)unaff_s3" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) - (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "pppppppuVar16 = unaff_s3;" (assignment_expression "pppppppuVar16 = unaff_s3" identifier = identifier) ;) (if_statement "if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }" { (expression_statement "pppppppuVar22 = (uint *******)0x6;" (assignment_expression "pppppppuVar22 = (uint *******)0x6" identifier = (cast_expression "(uint *******)0x6" ( (type_descriptor "uint *******" type_identifier (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 ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }" if (parenthesized_expression "((int)pppppppuVar24 < 7)" ( (binary_expression "(int)pppppppuVar24 < 7" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n              pppppppuVar22 = pppppppuVar24;\n            }" { (expression_statement "pppppppuVar22 = pppppppuVar24;" (assignment_expression "pppppppuVar22 = pppppppuVar24" identifier = identifier) ;) })) (expression_statement "pppppppuVar16 = appppppuStack_34;" (assignment_expression "pppppppuVar16 = appppppuStack_34" identifier = identifier) ;) (if_statement "if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }" if (parenthesized_expression "(0 < (int)pppppppuVar24)" ( (binary_expression "0 < (int)pppppppuVar24" number_literal < (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }" { (expression_statement "pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);" (assignment_expression "pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22)" identifier = (cast_expression "(byte *)((int)unaff_s3 + (int)pppppppuVar22)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s3 + (int)pppppppuVar22)" ( (binary_expression "(int)unaff_s3 + (int)pppppppuVar22" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppuVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);" (assignment_expression "pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22)" identifier = (cast_expression "(uint *******)((int)pppppppuVar16 + (int)pppppppuVar22)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar16 + (int)pppppppuVar22)" ( (binary_expression "(int)pppppppuVar16 + (int)pppppppuVar22" (cast_expression "(int)pppppppuVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppuVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (do_statement "do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);" do (compound_statement "{\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              }" { (expression_statement "pbVar1 = pbVar8 + -1;" (assignment_expression "pbVar1 = pbVar8 + -1" identifier = (binary_expression "pbVar8 + -1" identifier + number_literal)) ;) (expression_statement "pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);" (assignment_expression "pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar22 + -1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar22 + -1)" ( (binary_expression "(int)pppppppuVar22 + -1" (cast_expression "(int)pppppppuVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pbVar8 = pbVar8 + -1;" (assignment_expression "pbVar8 = pbVar8 + -1" identifier = (binary_expression "pbVar8 + -1" identifier + number_literal)) ;) (expression_statement "*(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);" (assignment_expression "*(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1)" (pointer_expression "*(byte *)pppppppuVar22" * (cast_expression "(byte *)pppppppuVar22" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(byte *)(iVar25 + (uint)*pbVar1)" * (cast_expression "(byte *)(iVar25 + (uint)*pbVar1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + (uint)*pbVar1)" ( (binary_expression "iVar25 + (uint)*pbVar1" identifier + (binary_expression "(uint)*pbVar1" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ))))) ;) }) while (parenthesized_expression "(pppppppuVar16 != pppppppuVar22)" ( (binary_expression "pppppppuVar16 != pppppppuVar22" identifier != identifier) )) ;) })) })) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);" (assignment_expression "uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16)" identifier = (call_expression "rpl_mbrtowc(&local_40,pppppppuVar16)" identifier (argument_list "(&local_40,pppppppuVar16)" ( (pointer_expression "&local_40" & identifier) , identifier )))) ;) (expression_statement "uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;" (assignment_expression "uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3" identifier = (binary_expression "(int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3" (cast_expression "(int)((int)unaff_s7 + (int)pppppppuVar40)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)unaff_s7 + (int)pppppppuVar40)" ( (binary_expression "(int)unaff_s7 + (int)pppppppuVar40" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) ))) - (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }" if (parenthesized_expression "((uVar34 < uVar26) || (0xfffffffd < uVar34))" ( (binary_expression "(uVar34 < uVar26) || (0xfffffffd < uVar34)" (parenthesized_expression "(uVar34 < uVar26)" ( (binary_expression "uVar34 < uVar26" identifier < identifier) )) || (parenthesized_expression "(0xfffffffd < uVar34)" ( (binary_expression "0xfffffffd < uVar34" number_literal < identifier) ))) )) (compound_statement "{\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }" { (expression_statement "unaff_s8 = (uint *******)param_1[6];" (assignment_expression "unaff_s8 = (uint *******)param_1[6]" identifier = (cast_expression "(uint *******)param_1[6]" ( (type_descriptor "uint *******" type_identifier (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[6]" identifier [ number_literal ]))) ;) (expression_statement "iVar25 = param_1[8];" (assignment_expression "iVar25 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0001d228;" goto statement_identifier ;) })) (expression_statement "unaff_s8 = (uint *******)(uVar34 - uVar26);" (assignment_expression "unaff_s8 = (uint *******)(uVar34 - uVar26)" identifier = (cast_expression "(uint *******)(uVar34 - uVar26)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(uVar34 - uVar26)" ( (binary_expression "uVar34 - uVar26" identifier - identifier) )))) ;) (expression_statement "param_1[4] = 0;" (assignment_expression "param_1[4] = 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[7] = (int)unaff_s8;" (assignment_expression "param_1[7] = (int)unaff_s8" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "unaff_s3 = local_40;" (assignment_expression "unaff_s3 = local_40" identifier = identifier) ;) (if_statement "if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }" if (parenthesized_expression "(local_40 == (uint *******)0xffffffff)" ( (binary_expression "local_40 == (uint *******)0xffffffff" identifier == (cast_expression "(uint *******)0xffffffff" ( (type_descriptor "uint *******" type_identifier (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            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }" { (expression_statement "unaff_s8 = (uint *******)param_1[6];" (assignment_expression "unaff_s8 = (uint *******)param_1[6]" identifier = (cast_expression "(uint *******)param_1[6]" ( (type_descriptor "uint *******" type_identifier (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[6]" identifier [ number_literal ]))) ;) (expression_statement "iVar25 = param_1[8];" (assignment_expression "iVar25 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0001d228;" goto statement_identifier ;) })) (labeled_statement "LAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }" statement_identifier : (if_statement "if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }" if (parenthesized_expression "((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f))))" ( (binary_expression "(*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))" (parenthesized_expression "(*(char *)((int)param_1 + 0x4e) == '\0')" ( (binary_expression "*(char *)((int)param_1 + 0x4e) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x4e)" * (cast_expression "(char *)((int)param_1 + 0x4e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x4e)" ( (binary_expression "(int)param_1 + 0x4e" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))" ( (parenthesized_expression "(iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f))" ( (comma_expression "iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)" (assignment_expression "iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3)" identifier = (call_expression "(*(code *)PTR_iswalnum_0003c288)(unaff_s3)" (parenthesized_expression "(*(code *)PTR_iswalnum_0003c288)" ( (pointer_expression "*(code *)PTR_iswalnum_0003c288" * (cast_expression "(code *)PTR_iswalnum_0003c288" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s3)" ( identifier )))) , (binary_expression "iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)" (binary_expression "iVar25 == 0" identifier == number_literal) && (parenthesized_expression "(unaff_s3 != (uint *******)0x5f)" ( (binary_expression "unaff_s3 != (uint *******)0x5f" identifier != (cast_expression "(uint *******)0x5f" ( (type_descriptor "uint *******" type_identifier (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            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }" { (expression_statement "iVar25 = 2;" (assignment_expression "iVar25 = 2" identifier = number_literal) ;) (if_statement "if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }" if (parenthesized_expression "(unaff_s3 == (uint *******)0xa)" ( (binary_expression "unaff_s3 == (uint *******)0xa" identifier == (cast_expression "(uint *******)0xa" ( (type_descriptor "uint *******" type_identifier (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              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }" { (if_statement "if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }" if (parenthesized_expression "(*(char *)((int)param_1 + 0x4d) == '\0')" ( (binary_expression "*(char *)((int)param_1 + 0x4d) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x4d)" * (cast_expression "(char *)((int)param_1 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x4d)" ( (binary_expression "(int)param_1 + 0x4d" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                iVar25 = 0;\n              }" { (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n              iVar25 = 0;\n            }" else (compound_statement "{\n              iVar25 = 0;\n            }" { (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n            iVar25 = 1;\n          }" else (compound_statement "{\n            iVar25 = 1;\n          }" { (expression_statement "iVar25 = 1;" (assignment_expression "iVar25 = 1" identifier = number_literal) ;) })))) (expression_statement "param_1[0xf] = iVar25;" (assignment_expression "param_1[0xf] = iVar25" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "pppppppuVar16 = pppppppuVar24;" (assignment_expression "pppppppuVar16 = pppppppuVar24" identifier = identifier) ;) (if_statement "if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }" if (parenthesized_expression "(unaff_s8 == (uint *******)0x0)" ( (binary_expression "unaff_s8 == (uint *******)0x0" identifier == (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }" { (labeled_statement "LAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);" statement_identifier : (expression_statement "cVar15 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar15 = *(char *)((int)param_1 + 0x4b)" identifier = (pointer_expression "*(char *)((int)param_1 + 0x4b)" * (cast_expression "(char *)((int)param_1 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x4b)" ( (binary_expression "(int)param_1 + 0x4b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (expression_statement "pppppppuVar24 = pppppppuVar16;" (assignment_expression "pppppppuVar24 = pppppppuVar16" identifier = identifier) ;) }) (else_clause "else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }" else (compound_statement "{\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }" { (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (expression_statement "pppppppuVar16 = unaff_s8;" (assignment_expression "pppppppuVar16 = unaff_s8" identifier = identifier) ;) (if_statement "if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }" if (parenthesized_expression "(0 < (int)unaff_s8)" ( (binary_expression "0 < (int)unaff_s8" number_literal < (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }" { (expression_statement "puVar9 = (undefined4 *)param_1[2];" (assignment_expression "puVar9 = (undefined4 *)param_1[2]" identifier = (cast_expression "(undefined4 *)param_1[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (do_statement "do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);" do (compound_statement "{\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            }" { (expression_statement "*puVar9 = 0xffffffff;" (assignment_expression "*puVar9 = 0xffffffff" (pointer_expression "*puVar9" * identifier) = number_literal) ;) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar16 = (uint *******)param_1[7];" (assignment_expression "pppppppuVar16 = (uint *******)param_1[7]" identifier = (cast_expression "(uint *******)param_1[7]" ( (type_descriptor "uint *******" type_identifier (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[7]" identifier [ number_literal ]))) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar25 < (int)pppppppuVar16)" ( (binary_expression "iVar25 < (int)pppppppuVar16" identifier < (cast_expression "(int)pppppppuVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (if_statement "if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }" if (parenthesized_expression "(*(char *)((int)param_1 + 0x4b) != '\0')" ( (binary_expression "*(char *)((int)param_1 + 0x4b) != '\0'" (pointer_expression "*(char *)((int)param_1 + 0x4b)" * (cast_expression "(char *)((int)param_1 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x4b)" ( (binary_expression "(int)param_1 + 0x4b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }" { (expression_statement "(*(code *)PTR_memset_0003c290)(param_1[1],0xff);" (call_expression "(*(code *)PTR_memset_0003c290)(param_1[1],0xff)" (parenthesized_expression "(*(code *)PTR_memset_0003c290)" ( (pointer_expression "*(code *)PTR_memset_0003c290" * (cast_expression "(code *)PTR_memset_0003c290" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[1],0xff)" ( (subscript_expression "param_1[1]" identifier [ number_literal ]) , number_literal ))) ;) (expression_statement "unaff_s8 = (uint *******)param_1[7];" (assignment_expression "unaff_s8 = (uint *******)param_1[7]" identifier = (cast_expression "(uint *******)param_1[7]" ( (type_descriptor "uint *******" type_identifier (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[7]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0001d2cc;" goto statement_identifier ;) })) (expression_statement "unaff_s8 = (uint *******)param_1[7];" (assignment_expression "unaff_s8 = (uint *******)param_1[7]" identifier = (cast_expression "(uint *******)param_1[7]" ( (type_descriptor "uint *******" type_identifier (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[7]" identifier [ number_literal ]))) ;) (expression_statement "cVar15 = '\0';" (assignment_expression "cVar15 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (expression_statement "pppppppuVar28 = (uint *******)param_1[0x14];" (assignment_expression "pppppppuVar28 = (uint *******)param_1[0x14]" identifier = (cast_expression "(uint *******)param_1[0x14]" ( (type_descriptor "uint *******" type_identifier (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[0x14]" identifier [ number_literal ]))) ;) (expression_statement "param_1[8] = (int)unaff_s8;" (assignment_expression "param_1[8] = (int)unaff_s8" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);" (assignment_expression "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40)" identifier = (cast_expression "(uint *******)(param_1[0xc] - (int)pppppppuVar40)" ( (type_descriptor "uint *******" type_identifier (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[0xc] - (int)pppppppuVar40)" ( (binary_expression "param_1[0xc] - (int)pppppppuVar40" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar25 = param_1[0xe] - (int)pppppppuVar40;" (assignment_expression "iVar25 = param_1[0xe] - (int)pppppppuVar40" identifier = (binary_expression "param_1[0xe] - (int)pppppppuVar40" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (goto_statement "goto LAB_0001d090;" goto statement_identifier ;) })) (expression_statement "uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];" (assignment_expression "uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1]" identifier = (subscript_expression "(uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1]" (call_expression "(uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)" ( (binary_expression "(byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8" (cast_expression "(byte *)(*param_1 + (int)pppppppuVar40)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + (int)pppppppuVar40)" ( (binary_expression "*param_1 + (int)pppppppuVar40" (pointer_expression "*param_1" * identifier) + (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) ))) + (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier)) ))) [ number_literal ])) ;) (expression_statement "param_1[8] = 0;" (assignment_expression "param_1[8] = 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_1[0x10] != 0) {\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }" if (parenthesized_expression "(param_1[0x10] != 0)" ( (binary_expression "param_1[0x10] != 0" (subscript_expression "param_1[0x10]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }" { (expression_statement "uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);" (assignment_expression "uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34)" identifier = (binary_expression "(uint)*(byte *)(param_1[0x10] + uVar34)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(param_1[0x10] + uVar34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x10] + uVar34)" ( (binary_expression "param_1[0x10] + uVar34" (subscript_expression "param_1[0x10]" identifier [ number_literal ]) + identifier) ))))) ;) })) (expression_statement "pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);" (assignment_expression "pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1)" identifier = (cast_expression "(uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1)" ( (binary_expression "*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1" (binary_expression "*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f)" (pointer_expression "*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4)" * (cast_expression "(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x11] + ((int)uVar34 >> 5) * 4)" ( (binary_expression "param_1[0x11] + ((int)uVar34 >> 5) * 4" (subscript_expression "param_1[0x11]" identifier [ number_literal ]) + (binary_expression "((int)uVar34 >> 5) * 4" (parenthesized_expression "((int)uVar34 >> 5)" ( (binary_expression "(int)uVar34 >> 5" (cast_expression "(int)uVar34" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) * number_literal)) )))) >> (parenthesized_expression "(uVar34 & 0x1f)" ( (binary_expression "uVar34 & 0x1f" identifier & number_literal) ))) & number_literal) )))) ;) (if_statement "if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {\n        pppppppuVar24 = (uint *******)0x0;\n      }" if (parenthesized_expression "(((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0'))" ( (binary_expression "((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')" (parenthesized_expression "((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10))" ( (binary_expression "(pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)" (parenthesized_expression "(pppppppuVar24 == (uint *******)0x0)" ( (binary_expression "pppppppuVar24 == (uint *******)0x0" identifier == (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) && (parenthesized_expression "(uVar34 == 10)" ( (binary_expression "uVar34 == 10" identifier == number_literal) ))) )) && (parenthesized_expression "(pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')" ( (comma_expression "pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0'" (assignment_expression "pppppppuVar24 = (uint *******)0x2" identifier = (cast_expression "(uint *******)0x2" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) , (binary_expression "*(char *)((int)param_1 + 0x4d) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x4d)" * (cast_expression "(char *)((int)param_1 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x4d)" ( (binary_expression "(int)param_1 + 0x4d" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n        pppppppuVar24 = (uint *******)0x0;\n      }" { (expression_statement "pppppppuVar24 = (uint *******)0x0;" (assignment_expression "pppppppuVar24 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "cVar15 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar15 = *(char *)((int)param_1 + 0x4b)" identifier = (pointer_expression "*(char *)((int)param_1 + 0x4b)" * (cast_expression "(char *)((int)param_1 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x4b)" ( (binary_expression "(int)param_1 + 0x4b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "param_1[0xf] = (int)pppppppuVar24;" (assignment_expression "param_1[0xf] = (int)pppppppuVar24" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);" (assignment_expression "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40)" identifier = (cast_expression "(uint *******)(param_1[0xc] - (int)pppppppuVar40)" ( (type_descriptor "uint *******" type_identifier (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[0xc] - (int)pppppppuVar40)" ( (binary_expression "param_1[0xc] - (int)pppppppuVar40" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar25 = param_1[0xe] - (int)pppppppuVar40;" (assignment_expression "iVar25 = param_1[0xe] - (int)pppppppuVar40" identifier = (binary_expression "param_1[0xe] - (int)pppppppuVar40" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (cVar15 == '\0') goto LAB_0001d098;" if (parenthesized_expression "(cVar15 == '\0')" ( (binary_expression "cVar15 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001d098;" goto statement_identifier ;)) (expression_statement "param_1[6] = (int)param_2;" (assignment_expression "param_1[6] = (int)param_2" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[0xc] = (int)pppppppuVar16;" (assignment_expression "param_1[0xc] = (int)pppppppuVar16" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[0xe] = iVar25;" (assignment_expression "param_1[0xe] = iVar25" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if (cVar15 == '\0') {\n      param_1[7] = (int)pppppppuVar16;\n    }\n    else if (*(char *)(param_1 + 0x12) == '\0') {\n      pppppppuVar22 = (uint *******)param_1[0x10];\n      if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }\n    }\n    else {\n      FUN_000187d0(param_1);\n    }" if (parenthesized_expression "(cVar15 == '\0')" ( (binary_expression "cVar15 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      param_1[7] = (int)pppppppuVar16;\n    }" { (expression_statement "param_1[7] = (int)pppppppuVar16;" (assignment_expression "param_1[7] = (int)pppppppuVar16" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else if (*(char *)(param_1 + 0x12) == '\0') {\n      pppppppuVar22 = (uint *******)param_1[0x10];\n      if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }\n    }\n    else {\n      FUN_000187d0(param_1);\n    }" else (if_statement "if (*(char *)(param_1 + 0x12) == '\0') {\n      pppppppuVar22 = (uint *******)param_1[0x10];\n      if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }\n    }\n    else {\n      FUN_000187d0(param_1);\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0x12) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x12) == '\0'" (pointer_expression "*(char *)(param_1 + 0x12)" * (cast_expression "(char *)(param_1 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x12)" ( (binary_expression "param_1 + 0x12" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pppppppuVar22 = (uint *******)param_1[0x10];\n      if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }\n    }" { (expression_statement "pppppppuVar22 = (uint *******)param_1[0x10];" (assignment_expression "pppppppuVar22 = (uint *******)param_1[0x10]" identifier = (cast_expression "(uint *******)param_1[0x10]" ( (type_descriptor "uint *******" type_identifier (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[0x10]" identifier [ number_literal ]))) ;) (if_statement "if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }" if (parenthesized_expression "(pppppppuVar22 != (uint *******)0x0)" ( (binary_expression "pppppppuVar22 != (uint *******)0x0" identifier != (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }" { (expression_statement "pppppppuVar24 = (uint *******)param_1[9];" (assignment_expression "pppppppuVar24 = (uint *******)param_1[9]" identifier = (cast_expression "(uint *******)param_1[9]" ( (type_descriptor "uint *******" type_identifier (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[9]" identifier [ number_literal ]))) ;) (expression_statement "pppppppuVar18 = (uint *******)param_1[7];" (assignment_expression "pppppppuVar18 = (uint *******)param_1[7]" identifier = (cast_expression "(uint *******)param_1[7]" ( (type_descriptor "uint *******" type_identifier (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[7]" identifier [ number_literal ]))) ;) (if_statement "if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }" if (parenthesized_expression "((int)pppppppuVar24 <= (int)pppppppuVar16)" ( (binary_expression "(int)pppppppuVar24 <= (int)pppppppuVar16" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pppppppuVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          pppppppuVar16 = pppppppuVar24;\n        }" { (expression_statement "pppppppuVar16 = pppppppuVar24;" (assignment_expression "pppppppuVar16 = pppppppuVar24" identifier = identifier) ;) })) (if_statement "if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }" if (parenthesized_expression "((int)pppppppuVar18 < (int)pppppppuVar16)" ( (binary_expression "(int)pppppppuVar18 < (int)pppppppuVar16" (cast_expression "(int)pppppppuVar18" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppppuVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }" { (while_statement "while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }" { (expression_statement "pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);" (assignment_expression "pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18)" identifier = (cast_expression "(uint *******)(param_1[1] + (int)pppppppuVar18)" ( (type_descriptor "uint *******" type_identifier (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[1] + (int)pppppppuVar18)" ( (binary_expression "param_1[1] + (int)pppppppuVar18" (subscript_expression "param_1[1]" identifier [ number_literal ]) + (cast_expression "(int)pppppppuVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);" (assignment_expression "param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2)" identifier = (cast_expression "(uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2)" ( (binary_expression "(byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2" (cast_expression "(byte *)(*param_1 + (int)pppppppuVar18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + (int)pppppppuVar18)" ( (binary_expression "*param_1 + (int)pppppppuVar18" (pointer_expression "*param_1" * identifier) + (cast_expression "(int)pppppppuVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ))) + (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);" (assignment_expression "pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar18 + 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar18 + 1)" ( (binary_expression "(int)pppppppuVar18 + 1" (cast_expression "(int)pppppppuVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);" (assignment_expression "pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2)" identifier = (cast_expression "(uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar22 + (uint)*(byte *)param_2)" ( (binary_expression "(int)pppppppuVar22 + (uint)*(byte *)param_2" (cast_expression "(int)pppppppuVar22" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)*(byte *)param_2" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )))) ;) (expression_statement "*(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;" (assignment_expression "*(byte *)pppppppuVar24 = *(byte *)pppppppuVar22" (pointer_expression "*(byte *)pppppppuVar24" * (cast_expression "(byte *)pppppppuVar24" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(byte *)pppppppuVar22" * (cast_expression "(byte *)pppppppuVar22" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (pppppppuVar16 == pppppppuVar18) break;" if (parenthesized_expression "(pppppppuVar16 == pppppppuVar18)" ( (binary_expression "pppppppuVar16 == pppppppuVar18" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "param_2 = (uint *******)param_1[6];" (assignment_expression "param_2 = (uint *******)param_1[6]" identifier = (cast_expression "(uint *******)param_1[6]" ( (type_descriptor "uint *******" type_identifier (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[6]" identifier [ number_literal ]))) ;) (expression_statement "pppppppuVar22 = (uint *******)param_1[0x10];" (assignment_expression "pppppppuVar22 = (uint *******)param_1[0x10]" identifier = (cast_expression "(uint *******)param_1[0x10]" ( (type_descriptor "uint *******" type_identifier (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[0x10]" identifier [ number_literal ]))) ;) })) (expression_statement "param_1[7] = (int)pppppppuVar16;" (assignment_expression "param_1[7] = (int)pppppppuVar16" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[8] = (int)pppppppuVar16;" (assignment_expression "param_1[8] = (int)pppppppuVar16" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }" else (compound_statement "{\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }" { (expression_statement "param_1[7] = (int)pppppppuVar18;" (assignment_expression "param_1[7] = (int)pppppppuVar18" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[8] = (int)pppppppuVar18;" (assignment_expression "param_1[8] = (int)pppppppuVar18" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) })) }) (else_clause "else {\n      FUN_000187d0(param_1);\n    }" else (compound_statement "{\n      FUN_000187d0(param_1);\n    }" { (expression_statement "FUN_000187d0(param_1);" (call_expression "FUN_000187d0(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) }))))) (labeled_statement "LAB_0001d0dc:\n    pppppppuVar16 = (uint *******)0x0;" statement_identifier : (expression_statement "pppppppuVar16 = (uint *******)0x0;" (assignment_expression "pppppppuVar16 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\nLAB_0001d010:\n    if (pppppppuVar40 != (uint *******)0x0) goto LAB_0001d018;\nLAB_0001d128:\n    pppppppuVar28 = (uint *******)param_1[0x14];\n    pppppppuVar16 = (uint *******)param_1[0xc];\n    pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n    param_1[6] = (int)param_2;\n    param_1[0xc] = (int)pppppppuVar16;\n    param_1[0xe] = param_1[0xe];\n    if (pppppppuVar22 != (uint *******)0x0) goto LAB_0001d148;\nLAB_0001d0b4:\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_000188b4(param_1);\n      goto LAB_0001d0dc;\n    }\n    pppppppuVar16 = (uint *******)FUN_00018b3c();\n    if (pppppppuVar16 == (uint *******)0x0) goto LAB_0001d0dc;\n  }" else (compound_statement "{\nLAB_0001d010:\n    if (pppppppuVar40 != (uint *******)0x0) goto LAB_0001d018;\nLAB_0001d128:\n    pppppppuVar28 = (uint *******)param_1[0x14];\n    pppppppuVar16 = (uint *******)param_1[0xc];\n    pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n    param_1[6] = (int)param_2;\n    param_1[0xc] = (int)pppppppuVar16;\n    param_1[0xe] = param_1[0xe];\n    if (pppppppuVar22 != (uint *******)0x0) goto LAB_0001d148;\nLAB_0001d0b4:\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_000188b4(param_1);\n      goto LAB_0001d0dc;\n    }\n    pppppppuVar16 = (uint *******)FUN_00018b3c();\n    if (pppppppuVar16 == (uint *******)0x0) goto LAB_0001d0dc;\n  }" { (labeled_statement "LAB_0001d010:\n    if (pppppppuVar40 != (uint *******)0x0) goto LAB_0001d018;" statement_identifier : (if_statement "if (pppppppuVar40 != (uint *******)0x0) goto LAB_0001d018;" if (parenthesized_expression "(pppppppuVar40 != (uint *******)0x0)" ( (binary_expression "pppppppuVar40 != (uint *******)0x0" identifier != (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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_0001d018;" goto statement_identifier ;))) (labeled_statement "LAB_0001d128:\n    pppppppuVar28 = (uint *******)param_1[0x14];" statement_identifier : (expression_statement "pppppppuVar28 = (uint *******)param_1[0x14];" (assignment_expression "pppppppuVar28 = (uint *******)param_1[0x14]" identifier = (cast_expression "(uint *******)param_1[0x14]" ( (type_descriptor "uint *******" type_identifier (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[0x14]" identifier [ number_literal ]))) ;)) (expression_statement "pppppppuVar16 = (uint *******)param_1[0xc];" (assignment_expression "pppppppuVar16 = (uint *******)param_1[0xc]" identifier = (cast_expression "(uint *******)param_1[0xc]" ( (type_descriptor "uint *******" type_identifier (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[0xc]" identifier [ number_literal ]))) ;) (expression_statement "pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);" (assignment_expression "pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2)" identifier = (cast_expression "(uint *******)(uint)((int)pppppppuVar28 < 2)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)((int)pppppppuVar28 < 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pppppppuVar28 < 2)" ( (binary_expression "(int)pppppppuVar28 < 2" (cast_expression "(int)pppppppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))))) ;) (expression_statement "param_1[6] = (int)param_2;" (assignment_expression "param_1[6] = (int)param_2" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[0xc] = (int)pppppppuVar16;" (assignment_expression "param_1[0xc] = (int)pppppppuVar16" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[0xe] = param_1[0xe];" (assignment_expression "param_1[0xe] = param_1[0xe]" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = (subscript_expression "param_1[0xe]" identifier [ number_literal ])) ;) (if_statement "if (pppppppuVar22 != (uint *******)0x0) goto LAB_0001d148;" if (parenthesized_expression "(pppppppuVar22 != (uint *******)0x0)" ( (binary_expression "pppppppuVar22 != (uint *******)0x0" identifier != (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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_0001d148;" goto statement_identifier ;)) (labeled_statement "LAB_0001d0b4:\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_000188b4(param_1);\n      goto LAB_0001d0dc;\n    }" statement_identifier : (if_statement "if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_000188b4(param_1);\n      goto LAB_0001d0dc;\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0x12) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x12) == '\0'" (pointer_expression "*(char *)(param_1 + 0x12)" * (cast_expression "(char *)(param_1 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x12)" ( (binary_expression "param_1 + 0x12" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_000188b4(param_1);\n      goto LAB_0001d0dc;\n    }" { (expression_statement "FUN_000188b4(param_1);" (call_expression "FUN_000188b4(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (goto_statement "goto LAB_0001d0dc;" goto statement_identifier ;) }))) (expression_statement "pppppppuVar16 = (uint *******)FUN_00018b3c();" (assignment_expression "pppppppuVar16 = (uint *******)FUN_00018b3c()" identifier = (cast_expression "(uint *******)FUN_00018b3c()" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00018b3c()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (pppppppuVar16 == (uint *******)0x0) goto LAB_0001d0dc;" if (parenthesized_expression "(pppppppuVar16 == (uint *******)0x0)" ( (binary_expression "pppppppuVar16 == (uint *******)0x0" identifier == (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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_0001d0dc;" goto statement_identifier ;)) }))) (if_statement "if (local_2c == *(uint ********)puVar4) {\n    return pppppppuVar16;\n  }" if (parenthesized_expression "(local_2c == *(uint ********)puVar4)" ( (binary_expression "local_2c == *(uint ********)puVar4" identifier == (pointer_expression "*(uint ********)puVar4" * (cast_expression "(uint ********)puVar4" ( (type_descriptor "uint ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) identifier))) )) (compound_statement "{\n    return pppppppuVar16;\n  }" { (return_statement "return pppppppuVar16;" return identifier ;) })) (expression_statement "pcVar46 = FUN_0001d8a0;" (assignment_expression "pcVar46 = FUN_0001d8a0" identifier = identifier) ;) (expression_statement "pppppppuVar16 = local_2c;" (assignment_expression "pppppppuVar16 = local_2c" identifier = identifier) ;) (expression_statement "puVar43 = PTR___stack_chk_fail_0003c2f4;" (assignment_expression "puVar43 = 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 "puVar45 = puVar43 + 0x26830;" (assignment_expression "puVar45 = puVar43 + 0x26830" identifier = (binary_expression "puVar43 + 0x26830" identifier + number_literal)) ;) (expression_statement "puStack_9c = *(undefined4 **)(puVar43 + 0x1ea74);" (assignment_expression "puStack_9c = *(undefined4 **)(puVar43 + 0x1ea74)" identifier = (pointer_expression "*(undefined4 **)(puVar43 + 0x1ea74)" * (cast_expression "(undefined4 **)(puVar43 + 0x1ea74)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar43 + 0x1ea74)" ( (binary_expression "puVar43 + 0x1ea74" identifier + number_literal) ))))) ;) (expression_statement "ppppppuStack_98 = (uint ******)0x0;" (assignment_expression "ppppppuStack_98 = (uint ******)0x0" identifier = (cast_expression "(uint ******)0x0" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "uStack_94 = 0;" (assignment_expression "uStack_94 = 0" identifier = number_literal) ;) (expression_statement "ppppppuStack_90 = (uint ******)0x0;" (assignment_expression "ppppppuStack_90 = (uint ******)0x0" identifier = (cast_expression "(uint ******)0x0" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "ppppppuVar20 = pppppppuVar16[7] + (int)pppppppuVar22 * 3;" (assignment_expression "ppppppuVar20 = pppppppuVar16[7] + (int)pppppppuVar22 * 3" identifier = (binary_expression "pppppppuVar16[7] + (int)pppppppuVar22 * 3" (subscript_expression "pppppppuVar16[7]" identifier [ number_literal ]) + (binary_expression "(int)pppppppuVar22 * 3" (cast_expression "(int)pppppppuVar22" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "puStack_78 = puVar4;" (assignment_expression "puStack_78 = puVar4" identifier = identifier) ;) (expression_statement "pppppppuStack_8c = (uint *******)*puStack_9c;" (assignment_expression "pppppppuStack_8c = (uint *******)*puStack_9c" identifier = (cast_expression "(uint *******)*puStack_9c" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*puStack_9c" * identifier))) ;) (expression_statement "pppppuVar31 = ppppppuVar20[1];" (assignment_expression "pppppuVar31 = ppppppuVar20[1]" identifier = (subscript_expression "ppppppuVar20[1]" identifier [ number_literal ])) ;) (expression_statement "iVar25 = *(int *)(puVar43 + 0x1e948);" (assignment_expression "iVar25 = *(int *)(puVar43 + 0x1e948)" identifier = (pointer_expression "*(int *)(puVar43 + 0x1e948)" * (cast_expression "(int *)(puVar43 + 0x1e948)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar43 + 0x1e948)" ( (binary_expression "puVar43 + 0x1e948" identifier + number_literal) ))))) ;) (expression_statement "pppppppuVar18 = pppppppuVar22;" (assignment_expression "pppppppuVar18 = pppppppuVar22" identifier = identifier) ;) (expression_statement "puStack_a8 = puVar45;" (assignment_expression "puStack_a8 = puVar45" identifier = identifier) ;) (expression_statement "pppppppuStack_a0 = pppppppuVar28;" (assignment_expression "pppppppuStack_a0 = pppppppuVar28" identifier = identifier) ;) (expression_statement "piStack_88 = param_1;" (assignment_expression "piStack_88 = param_1" identifier = identifier) ;) (expression_statement "pppppppuStack_84 = pppppppuVar40;" (assignment_expression "pppppppuStack_84 = pppppppuVar40" identifier = identifier) ;) (expression_statement "pppppppuStack_80 = unaff_s2;" (assignment_expression "pppppppuStack_80 = unaff_s2" identifier = identifier) ;) (expression_statement "pppppppuStack_7c = unaff_s3;" (assignment_expression "pppppppuStack_7c = unaff_s3" identifier = identifier) ;) (expression_statement "pppppppuStack_74 = param_2;" (assignment_expression "pppppppuStack_74 = param_2" identifier = identifier) ;) (expression_statement "pppppppuStack_70 = param_3;" (assignment_expression "pppppppuStack_70 = param_3" identifier = identifier) ;) (expression_statement "pppppppuStack_6c = unaff_s7;" (assignment_expression "pppppppuStack_6c = unaff_s7" identifier = identifier) ;) (expression_statement "pppppppuStack_68 = unaff_s8;" (assignment_expression "pppppppuStack_68 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_64 = pcVar46;" (assignment_expression "pcStack_64 = pcVar46" identifier = identifier) ;) (if_statement "if (0 < (int)pppppuVar31) {\n    pppppppuVar40 = &ppppppuStack_98;\n    param_1 = (int *)0x0;\n    param_2 = (uint *******)(ppppppuVar20 + 2);\n    iVar25 = iVar25 + -0x5d30;\n    param_3 = (uint *******)(*(int *)(puVar43 + 0x1e948) + -20000);\n    do {\n      pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1];\n      if ((pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)) {\n        iVar35 = (int)pppppppuVar28 * 0xc;\n        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;\n        pppppuVar38 = ppppppuVar36[2];\n        pppppppuVar18 = param_2;\n        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);\n        if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }\n      param_1 = (int *)((int)param_1 + 1);\n    } while ((int)param_1 < (int)pppppuVar31);\n    unaff_s2 = pppppppuVar22;\n    unaff_s3 = pppppppuVar24;\n    unaff_s7 = pppppppuVar40;\n    unaff_s8 = pppppppuVar16;\n    if (0 < (int)pppppuVar31) {\n      iVar5 = 0;\n      pppppppuVar22 = pppppppuVar24 + 1;\n      pppppppuVar16 = pppppppuVar24 + 2;\n      pppppppuVar40 = &ppppppuStack_90;\n      do {\n        pppppppuVar19 = pppppppuVar40;\n        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);\n        pppppppuVar28 = pppppppuVar16;\n        if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }\n        iVar5 = iVar5 + 1;\n        pppppppuVar18 = pppppppuVar40;\n        pppppppuVar16 = pppppppuVar28;\n        pppppppuVar40 = pppppppuVar19;\n        puVar45 = puStack_a8;\n      } while (iVar5 < (int)pppppuVar31);\n    }\n  }" if (parenthesized_expression "(0 < (int)pppppuVar31)" ( (binary_expression "0 < (int)pppppuVar31" number_literal < (cast_expression "(int)pppppuVar31" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    pppppppuVar40 = &ppppppuStack_98;\n    param_1 = (int *)0x0;\n    param_2 = (uint *******)(ppppppuVar20 + 2);\n    iVar25 = iVar25 + -0x5d30;\n    param_3 = (uint *******)(*(int *)(puVar43 + 0x1e948) + -20000);\n    do {\n      pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1];\n      if ((pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)) {\n        iVar35 = (int)pppppppuVar28 * 0xc;\n        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;\n        pppppuVar38 = ppppppuVar36[2];\n        pppppppuVar18 = param_2;\n        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);\n        if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }\n      param_1 = (int *)((int)param_1 + 1);\n    } while ((int)param_1 < (int)pppppuVar31);\n    unaff_s2 = pppppppuVar22;\n    unaff_s3 = pppppppuVar24;\n    unaff_s7 = pppppppuVar40;\n    unaff_s8 = pppppppuVar16;\n    if (0 < (int)pppppuVar31) {\n      iVar5 = 0;\n      pppppppuVar22 = pppppppuVar24 + 1;\n      pppppppuVar16 = pppppppuVar24 + 2;\n      pppppppuVar40 = &ppppppuStack_90;\n      do {\n        pppppppuVar19 = pppppppuVar40;\n        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);\n        pppppppuVar28 = pppppppuVar16;\n        if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }\n        iVar5 = iVar5 + 1;\n        pppppppuVar18 = pppppppuVar40;\n        pppppppuVar16 = pppppppuVar28;\n        pppppppuVar40 = pppppppuVar19;\n        puVar45 = puStack_a8;\n      } while (iVar5 < (int)pppppuVar31);\n    }\n  }" { (expression_statement "pppppppuVar40 = &ppppppuStack_98;" (assignment_expression "pppppppuVar40 = &ppppppuStack_98" identifier = (pointer_expression "&ppppppuStack_98" & identifier)) ;) (expression_statement "param_1 = (int *)0x0;" (assignment_expression "param_1 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_2 = (uint *******)(ppppppuVar20 + 2);" (assignment_expression "param_2 = (uint *******)(ppppppuVar20 + 2)" identifier = (cast_expression "(uint *******)(ppppppuVar20 + 2)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(ppppppuVar20 + 2)" ( (binary_expression "ppppppuVar20 + 2" identifier + number_literal) )))) ;) (expression_statement "iVar25 = iVar25 + -0x5d30;" (assignment_expression "iVar25 = iVar25 + -0x5d30" identifier = (binary_expression "iVar25 + -0x5d30" identifier + number_literal)) ;) (expression_statement "param_3 = (uint *******)(*(int *)(puVar43 + 0x1e948) + -20000);" (assignment_expression "param_3 = (uint *******)(*(int *)(puVar43 + 0x1e948) + -20000)" identifier = (cast_expression "(uint *******)(*(int *)(puVar43 + 0x1e948) + -20000)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(puVar43 + 0x1e948) + -20000)" ( (binary_expression "*(int *)(puVar43 + 0x1e948) + -20000" (pointer_expression "*(int *)(puVar43 + 0x1e948)" * (cast_expression "(int *)(puVar43 + 0x1e948)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar43 + 0x1e948)" ( (binary_expression "puVar43 + 0x1e948" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n      pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1];\n      if ((pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)) {\n        iVar35 = (int)pppppppuVar28 * 0xc;\n        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;\n        pppppuVar38 = ppppppuVar36[2];\n        pppppppuVar18 = param_2;\n        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);\n        if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }\n      param_1 = (int *)((int)param_1 + 1);\n    } while ((int)param_1 < (int)pppppuVar31);" do (compound_statement "{\n      pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1];\n      if ((pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)) {\n        iVar35 = (int)pppppppuVar28 * 0xc;\n        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;\n        pppppuVar38 = ppppppuVar36[2];\n        pppppppuVar18 = param_2;\n        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);\n        if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }\n      param_1 = (int *)((int)param_1 + 1);\n    }" { (expression_statement "pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1];" (assignment_expression "pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1]" identifier = (cast_expression "(uint *******)ppppppuVar20[2][(int)param_1]" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "ppppppuVar20[2][(int)param_1]" (subscript_expression "ppppppuVar20[2]" identifier [ number_literal ]) [ (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (if_statement "if ((pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)) {\n        iVar35 = (int)pppppppuVar28 * 0xc;\n        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;\n        pppppuVar38 = ppppppuVar36[2];\n        pppppppuVar18 = param_2;\n        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);\n        if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }" if (parenthesized_expression "((pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0))" ( (binary_expression "(pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)" (parenthesized_expression "(pppppppuVar22 != pppppppuVar28)" ( (binary_expression "pppppppuVar22 != pppppppuVar28" identifier != identifier) )) && (parenthesized_expression "(((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)" ( (binary_expression "((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0" (parenthesized_expression "((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000)" ( (binary_expression "(uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000" (subscript_expression "(uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1]" (call_expression "(uint)(*pppppppuVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pppppppuVar16)" ( (pointer_expression "*pppppppuVar16" * identifier) ))) [ (binary_expression "(int)pppppppuVar28 * 2 + 1" (binary_expression "(int)pppppppuVar28 * 2" (cast_expression "(int)pppppppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        iVar35 = (int)pppppppuVar28 * 0xc;\n        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;\n        pppppuVar38 = ppppppuVar36[2];\n        pppppppuVar18 = param_2;\n        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);\n        if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }" { (expression_statement "iVar35 = (int)pppppppuVar28 * 0xc;" (assignment_expression "iVar35 = (int)pppppppuVar28 * 0xc" identifier = (binary_expression "(int)pppppppuVar28 * 0xc" (cast_expression "(int)pppppppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;" (assignment_expression "ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3" identifier = (binary_expression "pppppppuVar16[5] + (int)pppppppuVar28 * 3" (subscript_expression "pppppppuVar16[5]" identifier [ number_literal ]) + (binary_expression "(int)pppppppuVar28 * 3" (cast_expression "(int)pppppppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "pppppuVar38 = ppppppuVar36[2];" (assignment_expression "pppppuVar38 = ppppppuVar36[2]" identifier = (subscript_expression "ppppppuVar36[2]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar18 = param_2;" (assignment_expression "pppppppuVar18 = param_2" identifier = identifier) ;) (expression_statement "iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);" (assignment_expression "iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38)" identifier = (call_expression "FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38)" identifier (argument_list "(pppppuVar31,param_2,*pppppuVar38)" ( identifier , identifier , (pointer_expression "*pppppuVar38" * identifier) )))) ;) (if_statement "if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }" if (parenthesized_expression "((int)ppppppuVar36[1] < 2)" ( (binary_expression "(int)ppppppuVar36[1] < 2" (cast_expression "(int)ppppppuVar36[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppuVar36[1]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }" { (expression_statement "puVar45 = puStack_a8;" (assignment_expression "puVar45 = puStack_a8" identifier = identifier) ;) (if_statement "if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }" { (expression_statement "pppppppuVar18 = pppppppuVar24 + 2;" (assignment_expression "pppppppuVar18 = pppppppuVar24 + 2" identifier = (binary_expression "pppppppuVar24 + 2" identifier + number_literal)) ;) (expression_statement "iVar5 = FUN_0001a2d0(pppppppuVar24[1]);" (assignment_expression "iVar5 = FUN_0001a2d0(pppppppuVar24[1])" identifier = (call_expression "FUN_0001a2d0(pppppppuVar24[1])" identifier (argument_list "(pppppppuVar24[1])" ( (subscript_expression "pppppppuVar24[1]" identifier [ number_literal ]) )))) ;) (expression_statement "puVar45 = puStack_a8;" (assignment_expression "puVar45 = puStack_a8" identifier = identifier) ;) (if_statement "if (iVar5 != 0) goto LAB_0001d960;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001d960;" goto statement_identifier ;)) })) }) (else_clause "else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }" else (if_statement "if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }" if (parenthesized_expression "((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0))" ( (binary_expression "(iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)" ( (comma_expression "iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0" (assignment_expression "iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2)" identifier = (call_expression "FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2)" identifier (argument_list "(pppppppuVar24[1],pppppppuVar24 + 2)" ( (subscript_expression "pppppppuVar24[1]" identifier [ number_literal ]) , (binary_expression "pppppppuVar24 + 2" identifier + number_literal) )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) (compound_statement "{\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }" { (labeled_statement "LAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];" statement_identifier : (expression_statement "ppppppuVar36 = pppppppuVar16[7];" (assignment_expression "ppppppuVar36 = pppppppuVar16[7]" identifier = (subscript_expression "pppppppuVar16[7]" identifier [ number_literal ])) ;)) (labeled_statement "LAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;" statement_identifier : (expression_statement "pppppppuVar18 = pppppppuStack_a0;" (assignment_expression "pppppppuVar18 = pppppppuStack_a0" identifier = identifier) ;)) (expression_statement "pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;" (assignment_expression "pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)" identifier = (cast_expression "(uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)" identifier (argument_list "(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)" ( identifier , identifier , (binary_expression "(int)ppppppuVar36 + iVar35" (cast_expression "(int)ppppppuVar36" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (if_statement "if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }" if (parenthesized_expression "(pppppppuVar28 != (uint *******)0x0)" ( (binary_expression "pppppppuVar28 != (uint *******)0x0" identifier != (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }" { (expression_statement "pppppppuStack_a0 = pppppppuVar28;" (assignment_expression "pppppppuStack_a0 = pppppppuVar28" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);" (call_expression "(**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90)" (parenthesized_expression "(**(code **)(puStack_a8 + -0x7db0))" ( (pointer_expression "**(code **)(puStack_a8 + -0x7db0)" * (pointer_expression "*(code **)(puStack_a8 + -0x7db0)" * (cast_expression "(code **)(puStack_a8 + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x7db0)" ( (binary_expression "puStack_a8 + -0x7db0" identifier + number_literal) ))))) )) (argument_list "(ppppppuStack_90)" ( identifier ))) ;) (expression_statement "pppppppuVar28 = pppppppuStack_a0;" (assignment_expression "pppppppuVar28 = pppppppuStack_a0" identifier = identifier) ;) (goto_statement "goto LAB_0001db20;" goto statement_identifier ;) })) (expression_statement "pppppuVar31 = ppppppuVar20[1];" (assignment_expression "pppppuVar31 = ppppppuVar20[1]" identifier = (subscript_expression "ppppppuVar20[1]" identifier [ number_literal ])) ;) (expression_statement "puVar45 = puStack_a8;" (assignment_expression "puVar45 = puStack_a8" identifier = identifier) ;) }) (else_clause "else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }" else (compound_statement "{\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }" { (expression_statement "pppppppuVar18 = param_2;" (assignment_expression "pppppppuVar18 = param_2" identifier = identifier) ;) (expression_statement "puVar45 = puStack_a8;" (assignment_expression "puVar45 = puStack_a8" identifier = identifier) ;) (if_statement "if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }" if (parenthesized_expression "((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0))" ( (binary_expression "(0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)" (parenthesized_expression "(0 < (int)pppppuVar38[1])" ( (binary_expression "0 < (int)pppppuVar38[1]" number_literal < (cast_expression "(int)pppppuVar38[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppuVar38[1]" identifier [ number_literal ]))) )) && (parenthesized_expression "(iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)" ( (comma_expression "iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0" (assignment_expression "iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1])" identifier = (call_expression "FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1])" identifier (argument_list "(pppppuVar31,param_2,pppppuVar38[1])" ( identifier , identifier , (subscript_expression "pppppuVar38[1]" identifier [ number_literal ]) )))) , (comma_expression "puVar45 = puStack_a8,\n             iVar5 == 0" (assignment_expression "puVar45 = puStack_a8" identifier = identifier) , (binary_expression "iVar5 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }" { (expression_statement "pppppppuVar18 = pppppppuVar24 + 2;" (assignment_expression "pppppppuVar18 = pppppppuVar24 + 2" identifier = (binary_expression "pppppppuVar24 + 2" identifier + number_literal)) ;) (expression_statement "iVar5 = FUN_0001a2d0(pppppppuVar24[1]);" (assignment_expression "iVar5 = FUN_0001a2d0(pppppppuVar24[1])" identifier = (call_expression "FUN_0001a2d0(pppppppuVar24[1])" identifier (argument_list "(pppppppuVar24[1])" ( (subscript_expression "pppppppuVar24[1]" identifier [ number_literal ]) )))) ;) (expression_statement "puVar45 = puStack_a8;" (assignment_expression "puVar45 = puStack_a8" identifier = identifier) ;) (if_statement "if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }" { (expression_statement "ppppppuVar36 = pppppppuVar16[7];" (assignment_expression "ppppppuVar36 = pppppppuVar16[7]" identifier = (subscript_expression "pppppppuVar16[7]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0001d964;" goto statement_identifier ;) })) })) }))))) })) (expression_statement "param_1 = (int *)((int)param_1 + 1);" (assignment_expression "param_1 = (int *)((int)param_1 + 1)" identifier = (cast_expression "(int *)((int)param_1 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 1)" ( (binary_expression "(int)param_1 + 1" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int)param_1 < (int)pppppuVar31)" ( (binary_expression "(int)param_1 < (int)pppppuVar31" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppuVar31" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "unaff_s2 = pppppppuVar22;" (assignment_expression "unaff_s2 = pppppppuVar22" identifier = identifier) ;) (expression_statement "unaff_s3 = pppppppuVar24;" (assignment_expression "unaff_s3 = pppppppuVar24" identifier = identifier) ;) (expression_statement "unaff_s7 = pppppppuVar40;" (assignment_expression "unaff_s7 = pppppppuVar40" identifier = identifier) ;) (expression_statement "unaff_s8 = pppppppuVar16;" (assignment_expression "unaff_s8 = pppppppuVar16" identifier = identifier) ;) (if_statement "if (0 < (int)pppppuVar31) {\n      iVar5 = 0;\n      pppppppuVar22 = pppppppuVar24 + 1;\n      pppppppuVar16 = pppppppuVar24 + 2;\n      pppppppuVar40 = &ppppppuStack_90;\n      do {\n        pppppppuVar19 = pppppppuVar40;\n        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);\n        pppppppuVar28 = pppppppuVar16;\n        if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }\n        iVar5 = iVar5 + 1;\n        pppppppuVar18 = pppppppuVar40;\n        pppppppuVar16 = pppppppuVar28;\n        pppppppuVar40 = pppppppuVar19;\n        puVar45 = puStack_a8;\n      } while (iVar5 < (int)pppppuVar31);\n    }" if (parenthesized_expression "(0 < (int)pppppuVar31)" ( (binary_expression "0 < (int)pppppuVar31" number_literal < (cast_expression "(int)pppppuVar31" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      iVar5 = 0;\n      pppppppuVar22 = pppppppuVar24 + 1;\n      pppppppuVar16 = pppppppuVar24 + 2;\n      pppppppuVar40 = &ppppppuStack_90;\n      do {\n        pppppppuVar19 = pppppppuVar40;\n        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);\n        pppppppuVar28 = pppppppuVar16;\n        if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }\n        iVar5 = iVar5 + 1;\n        pppppppuVar18 = pppppppuVar40;\n        pppppppuVar16 = pppppppuVar28;\n        pppppppuVar40 = pppppppuVar19;\n        puVar45 = puStack_a8;\n      } while (iVar5 < (int)pppppuVar31);\n    }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "pppppppuVar22 = pppppppuVar24 + 1;" (assignment_expression "pppppppuVar22 = pppppppuVar24 + 1" identifier = (binary_expression "pppppppuVar24 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar16 = pppppppuVar24 + 2;" (assignment_expression "pppppppuVar16 = pppppppuVar24 + 2" identifier = (binary_expression "pppppppuVar24 + 2" identifier + number_literal)) ;) (expression_statement "pppppppuVar40 = &ppppppuStack_90;" (assignment_expression "pppppppuVar40 = &ppppppuStack_90" identifier = (pointer_expression "&ppppppuStack_90" & identifier)) ;) (do_statement "do {\n        pppppppuVar19 = pppppppuVar40;\n        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);\n        pppppppuVar28 = pppppppuVar16;\n        if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }\n        iVar5 = iVar5 + 1;\n        pppppppuVar18 = pppppppuVar40;\n        pppppppuVar16 = pppppppuVar28;\n        pppppppuVar40 = pppppppuVar19;\n        puVar45 = puStack_a8;\n      } while (iVar5 < (int)pppppuVar31);" do (compound_statement "{\n        pppppppuVar19 = pppppppuVar40;\n        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);\n        pppppppuVar28 = pppppppuVar16;\n        if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }\n        iVar5 = iVar5 + 1;\n        pppppppuVar18 = pppppppuVar40;\n        pppppppuVar16 = pppppppuVar28;\n        pppppppuVar40 = pppppppuVar19;\n        puVar45 = puStack_a8;\n      }" { (expression_statement "pppppppuVar19 = pppppppuVar40;" (assignment_expression "pppppppuVar19 = pppppppuVar40" identifier = identifier) ;) (expression_statement "iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);" (assignment_expression "iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5])" identifier = (call_expression "FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5])" identifier (argument_list "(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5])" ( identifier , identifier , (subscript_expression "ppppppuVar20[2][iVar5]" (subscript_expression "ppppppuVar20[2]" identifier [ number_literal ]) [ identifier ]) )))) ;) (expression_statement "pppppppuVar28 = pppppppuVar16;" (assignment_expression "pppppppuVar28 = pppppppuVar16" identifier = identifier) ;) (if_statement "if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }" if (parenthesized_expression "(iVar35 == 0)" ( (binary_expression "iVar35 == 0" identifier == number_literal) )) (compound_statement "{\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }" { (expression_statement "ppppppuVar36 = pppppppuVar24[1];" (assignment_expression "ppppppuVar36 = pppppppuVar24[1]" identifier = (subscript_expression "pppppppuVar24[1]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar18 = pppppppuVar16;" (assignment_expression "pppppppuVar18 = pppppppuVar16" identifier = identifier) ;) (expression_statement "iVar35 = FUN_0001a2d0(ppppppuVar36);" (assignment_expression "iVar35 = FUN_0001a2d0(ppppppuVar36)" identifier = (call_expression "FUN_0001a2d0(ppppppuVar36)" identifier (argument_list "(ppppppuVar36)" ( identifier )))) ;) (expression_statement "pppppppuVar40 = pppppppuVar16;" (assignment_expression "pppppppuVar40 = pppppppuVar16" identifier = identifier) ;) (expression_statement "pppppppuVar28 = pppppppuVar18;" (assignment_expression "pppppppuVar28 = pppppppuVar18" identifier = identifier) ;) (if_statement "if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }" if (parenthesized_expression "((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36))" ( (binary_expression "(-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)" (parenthesized_expression "(-1 < iVar35 + -1)" ( (binary_expression "-1 < iVar35 + -1" number_literal < (binary_expression "iVar35 + -1" identifier + number_literal)) )) && (parenthesized_expression "(iVar35 + -1 < (int)ppppppuVar36)" ( (binary_expression "iVar35 + -1 < (int)ppppppuVar36" (binary_expression "iVar35 + -1" identifier + number_literal) < (cast_expression "(int)ppppppuVar36" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }" { (expression_statement "pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);" (assignment_expression "pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1)" (subscript_expression "pppppppuVar24[1]" identifier [ number_literal ]) = (cast_expression "(uint ******)((int)ppppppuVar36 - 1)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)ppppppuVar36 - 1)" ( (binary_expression "(int)ppppppuVar36 - 1" (cast_expression "(int)ppppppuVar36" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) )))) ;) (expression_statement "FUN_0001a534(pppppppuVar22);" (call_expression "FUN_0001a534(pppppppuVar22)" identifier (argument_list "(pppppppuVar22)" ( identifier ))) ;) (expression_statement "pppppuVar31 = ppppppuVar20[1];" (assignment_expression "pppppuVar31 = ppppppuVar20[1]" identifier = (subscript_expression "ppppppuVar20[1]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar40 = pppppppuVar18;" (assignment_expression "pppppppuVar40 = pppppppuVar18" identifier = identifier) ;) })) })) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar18 = pppppppuVar40;" (assignment_expression "pppppppuVar18 = pppppppuVar40" identifier = identifier) ;) (expression_statement "pppppppuVar16 = pppppppuVar28;" (assignment_expression "pppppppuVar16 = pppppppuVar28" identifier = identifier) ;) (expression_statement "pppppppuVar40 = pppppppuVar19;" (assignment_expression "pppppppuVar40 = pppppppuVar19" identifier = identifier) ;) (expression_statement "puVar45 = puStack_a8;" (assignment_expression "puVar45 = puStack_a8" identifier = identifier) ;) }) while (parenthesized_expression "(iVar5 < (int)pppppuVar31)" ( (binary_expression "iVar5 < (int)pppppuVar31" identifier < (cast_expression "(int)pppppuVar31" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) })) (expression_statement "(**(code **)(puVar45 + -0x7db0))(ppppppuStack_90);" (call_expression "(**(code **)(puVar45 + -0x7db0))(ppppppuStack_90)" (parenthesized_expression "(**(code **)(puVar45 + -0x7db0))" ( (pointer_expression "**(code **)(puVar45 + -0x7db0)" * (pointer_expression "*(code **)(puVar45 + -0x7db0)" * (cast_expression "(code **)(puVar45 + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar45 + -0x7db0)" ( (binary_expression "puVar45 + -0x7db0" identifier + number_literal) ))))) )) (argument_list "(ppppppuStack_90)" ( identifier ))) ;) (expression_statement "pppppppuVar28 = (uint *******)0x0;" (assignment_expression "pppppppuVar28 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "pppppppuVar22 = unaff_s2;" (assignment_expression "pppppppuVar22 = unaff_s2" identifier = identifier) ;) (expression_statement "pppppppuVar24 = unaff_s3;" (assignment_expression "pppppppuVar24 = unaff_s3" identifier = identifier) ;) (expression_statement "pppppppuVar40 = unaff_s7;" (assignment_expression "pppppppuVar40 = unaff_s7" identifier = identifier) ;) (expression_statement "pppppppuVar16 = unaff_s8;" (assignment_expression "pppppppuVar16 = unaff_s8" identifier = identifier) ;) (labeled_statement "LAB_0001db20:\n  if (pppppppuStack_8c == (uint *******)*puStack_9c) {\n    return pppppppuVar28;\n  }" statement_identifier : (if_statement "if (pppppppuStack_8c == (uint *******)*puStack_9c) {\n    return pppppppuVar28;\n  }" if (parenthesized_expression "(pppppppuStack_8c == (uint *******)*puStack_9c)" ( (binary_expression "pppppppuStack_8c == (uint *******)*puStack_9c" identifier == (cast_expression "(uint *******)*puStack_9c" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*puStack_9c" * identifier))) )) (compound_statement "{\n    return pppppppuVar28;\n  }" { (return_statement "return pppppppuVar28;" return identifier ;) }))) (expression_statement "pcVar46 = *(code **)(puStack_a8 + -0x7ddc);" (assignment_expression "pcVar46 = *(code **)(puStack_a8 + -0x7ddc)" identifier = (pointer_expression "*(code **)(puStack_a8 + -0x7ddc)" * (cast_expression "(code **)(puStack_a8 + -0x7ddc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x7ddc)" ( (binary_expression "puStack_a8 + -0x7ddc" identifier + number_literal) ))))) ;) (expression_statement "uVar47 = 0x1db90;" (assignment_expression "uVar47 = 0x1db90" identifier = number_literal) ;) (expression_statement "pppppppuVar19 = pppppppuStack_8c;" (assignment_expression "pppppppuVar19 = pppppppuStack_8c" identifier = identifier) ;) (expression_statement "(*pcVar46)();" (call_expression "(*pcVar46)()" (parenthesized_expression "(*pcVar46)" ( (pointer_expression "*pcVar46" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar6 = *(int **)(pcVar46 + 0x1e784);" (assignment_expression "piVar6 = *(int **)(pcVar46 + 0x1e784)" identifier = (pointer_expression "*(int **)(pcVar46 + 0x1e784)" * (cast_expression "(int **)(pcVar46 + 0x1e784)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e784)" ( (binary_expression "pcVar46 + 0x1e784" identifier + number_literal) ))))) ;) (expression_statement "piStack_e4 = (int *)*piVar6;" (assignment_expression "piStack_e4 = (int *)*piVar6" identifier = (cast_expression "(int *)*piVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) ;) (expression_statement "pppppppuVar28 = pppppppuVar18;" (assignment_expression "pppppppuVar28 = pppppppuVar18" identifier = identifier) ;) (expression_statement "piStack_e0 = param_1;" (assignment_expression "piStack_e0 = param_1" identifier = identifier) ;) (expression_statement "ppppppuStack_dc = ppppppuVar20;" (assignment_expression "ppppppuStack_dc = ppppppuVar20" identifier = identifier) ;) (expression_statement "pppppppuStack_d8 = pppppppuVar22;" (assignment_expression "pppppppuStack_d8 = pppppppuVar22" identifier = identifier) ;) (expression_statement "pppppppuStack_d4 = pppppppuVar24;" (assignment_expression "pppppppuStack_d4 = pppppppuVar24" identifier = identifier) ;) (expression_statement "iStack_d0 = iVar25;" (assignment_expression "iStack_d0 = iVar25" identifier = identifier) ;) (expression_statement "pppppppuStack_cc = param_2;" (assignment_expression "pppppppuStack_cc = param_2" identifier = identifier) ;) (expression_statement "pppppppuStack_c8 = param_3;" (assignment_expression "pppppppuStack_c8 = param_3" identifier = identifier) ;) (expression_statement "pppppppuStack_c4 = pppppppuVar40;" (assignment_expression "pppppppuStack_c4 = pppppppuVar40" identifier = identifier) ;) (expression_statement "pppppppuStack_c0 = pppppppuVar16;" (assignment_expression "pppppppuStack_c0 = pppppppuVar16" identifier = identifier) ;) (expression_statement "uStack_bc = uVar47;" (assignment_expression "uStack_bc = uVar47" identifier = identifier) ;) (expression_statement "iVar25 = (**(code **)(pcVar46 + 0x1e724))(0x2c00);" (assignment_expression "iVar25 = (**(code **)(pcVar46 + 0x1e724))(0x2c00)" identifier = (call_expression "(**(code **)(pcVar46 + 0x1e724))(0x2c00)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e724))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e724)" * (pointer_expression "*(code **)(pcVar46 + 0x1e724)" * (cast_expression "(code **)(pcVar46 + 0x1e724)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e724)" ( (binary_expression "pcVar46 + 0x1e724" identifier + number_literal) ))))) )) (argument_list "(0x2c00)" ( number_literal )))) ;) (if_statement "if (iVar25 == 0) goto LAB_0001dffc;" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001dffc;" goto statement_identifier ;)) (expression_statement "ppppppuVar20 = pppppppuVar18[2];" (assignment_expression "ppppppuVar20 = pppppppuVar18[2]" identifier = (subscript_expression "pppppppuVar18[2]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar18[0xb] = (uint ******)0x0;" (assignment_expression "pppppppuVar18[0xb] = (uint ******)0x0" (subscript_expression "pppppppuVar18[0xb]" identifier [ number_literal ]) = (cast_expression "(uint ******)0x0" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "puVar7 = (uint *)(iVar25 + 0xc00);" (assignment_expression "puVar7 = (uint *)(iVar25 + 0xc00)" identifier = (cast_expression "(uint *)(iVar25 + 0xc00)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0xc00)" ( (binary_expression "iVar25 + 0xc00" identifier + number_literal) )))) ;) (expression_statement "pppppppuVar18[0xc] = (uint ******)0x0;" (assignment_expression "pppppppuVar18[0xc] = (uint ******)0x0" (subscript_expression "pppppppuVar18[0xc]" identifier [ number_literal ]) = (cast_expression "(uint ******)0x0" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppuStack_144 = (uint *******)0x0;" (assignment_expression "pppppppuStack_144 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "uStack_140 = 0;" (assignment_expression "uStack_140 = 0" identifier = number_literal) ;) (expression_statement "uStack_13c = 0;" (assignment_expression "uStack_13c = 0" identifier = number_literal) ;) (expression_statement "uStack_138 = 0;" (assignment_expression "uStack_138 = 0" identifier = number_literal) ;) (expression_statement "uStack_134 = 0;" (assignment_expression "uStack_134 = 0" identifier = number_literal) ;) (expression_statement "uStack_130 = 0;" (assignment_expression "uStack_130 = 0" identifier = number_literal) ;) (expression_statement "uStack_12c = 0;" (assignment_expression "uStack_12c = 0" identifier = number_literal) ;) (expression_statement "uStack_128 = 0;" (assignment_expression "uStack_128 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)ppppppuVar20) {\n    iVar5 = *(int *)(pcVar46 + 0x1e658);\n    iStack_184 = 0;\n    iVar35 = *(int *)(pcVar46 + 0x1e658);\n    pppppppuVar24 = (uint *******)0x0;\nLAB_0001dc74:\n    ppppppuVar36 = *pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2;\n    bVar2 = *(byte *)(ppppppuVar36 + 1);\n    uVar34 = (uint)((int)ppppppuVar36[1] << 8) >> 0x16;\n    if (bVar2 == 1) {\n      pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5));\n      pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f));\n      *pppppppuVar40 = (uint ******)pppppppuVar28;\nLAB_0001e060:\n      pppppppuVar40 = pppppppuStack_144;\n      if (uVar34 == 0) goto LAB_0001e15c;\n      if ((uVar34 & 0x20) == 0) {\n        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }\n        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      else {\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      pppppppuStack_144 = (uint *******)0x0;\n      uStack_140 = 0;\n      uStack_13c = 0;\n      uStack_138 = 0;\n      uStack_134 = 0;\n      uStack_130 = 0;\n      uStack_12c = 0;\n      uStack_128 = 0;\n    }\n    else {\n      if (bVar2 == 3) {\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }\n      if (bVar2 == 5) {\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      pppppppuVar28 = (uint *******)0xffffffff;\n      if (bVar2 == 7) {\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }\nLAB_0001dcc8:\n    iStack_184 = iStack_184 + 1;\n    if ((int)ppppppuVar20 <= iStack_184) goto code_r0x0001dcdc;\n    goto LAB_0001dc74;\n  }" if (parenthesized_expression "(0 < (int)ppppppuVar20)" ( (binary_expression "0 < (int)ppppppuVar20" number_literal < (cast_expression "(int)ppppppuVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    iVar5 = *(int *)(pcVar46 + 0x1e658);\n    iStack_184 = 0;\n    iVar35 = *(int *)(pcVar46 + 0x1e658);\n    pppppppuVar24 = (uint *******)0x0;\nLAB_0001dc74:\n    ppppppuVar36 = *pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2;\n    bVar2 = *(byte *)(ppppppuVar36 + 1);\n    uVar34 = (uint)((int)ppppppuVar36[1] << 8) >> 0x16;\n    if (bVar2 == 1) {\n      pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5));\n      pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f));\n      *pppppppuVar40 = (uint ******)pppppppuVar28;\nLAB_0001e060:\n      pppppppuVar40 = pppppppuStack_144;\n      if (uVar34 == 0) goto LAB_0001e15c;\n      if ((uVar34 & 0x20) == 0) {\n        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }\n        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      else {\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      pppppppuStack_144 = (uint *******)0x0;\n      uStack_140 = 0;\n      uStack_13c = 0;\n      uStack_138 = 0;\n      uStack_134 = 0;\n      uStack_130 = 0;\n      uStack_12c = 0;\n      uStack_128 = 0;\n    }\n    else {\n      if (bVar2 == 3) {\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }\n      if (bVar2 == 5) {\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      pppppppuVar28 = (uint *******)0xffffffff;\n      if (bVar2 == 7) {\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }\nLAB_0001dcc8:\n    iStack_184 = iStack_184 + 1;\n    if ((int)ppppppuVar20 <= iStack_184) goto code_r0x0001dcdc;\n    goto LAB_0001dc74;\n  }" { (expression_statement "iVar5 = *(int *)(pcVar46 + 0x1e658);" (assignment_expression "iVar5 = *(int *)(pcVar46 + 0x1e658)" identifier = (pointer_expression "*(int *)(pcVar46 + 0x1e658)" * (cast_expression "(int *)(pcVar46 + 0x1e658)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar46 + 0x1e658)" ( (binary_expression "pcVar46 + 0x1e658" identifier + number_literal) ))))) ;) (expression_statement "iStack_184 = 0;" (assignment_expression "iStack_184 = 0" identifier = number_literal) ;) (expression_statement "iVar35 = *(int *)(pcVar46 + 0x1e658);" (assignment_expression "iVar35 = *(int *)(pcVar46 + 0x1e658)" identifier = (pointer_expression "*(int *)(pcVar46 + 0x1e658)" * (cast_expression "(int *)(pcVar46 + 0x1e658)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar46 + 0x1e658)" ( (binary_expression "pcVar46 + 0x1e658" identifier + number_literal) ))))) ;) (expression_statement "pppppppuVar24 = (uint *******)0x0;" (assignment_expression "pppppppuVar24 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (labeled_statement "LAB_0001dc74:\n    ppppppuVar36 = *pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2;" statement_identifier : (expression_statement "ppppppuVar36 = *pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2;" (assignment_expression "ppppppuVar36 = *pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2" identifier = (binary_expression "*pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2" (pointer_expression "*pppppppuVar19" * identifier) + (binary_expression "(int)pppppppuVar18[3][iStack_184] * 2" (cast_expression "(int)pppppppuVar18[3][iStack_184]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppuVar18[3][iStack_184]" (subscript_expression "pppppppuVar18[3]" identifier [ number_literal ]) [ identifier ])) * number_literal))) ;)) (expression_statement "bVar2 = *(byte *)(ppppppuVar36 + 1);" (assignment_expression "bVar2 = *(byte *)(ppppppuVar36 + 1)" identifier = (pointer_expression "*(byte *)(ppppppuVar36 + 1)" * (cast_expression "(byte *)(ppppppuVar36 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppuVar36 + 1)" ( (binary_expression "ppppppuVar36 + 1" identifier + number_literal) ))))) ;) (expression_statement "uVar34 = (uint)((int)ppppppuVar36[1] << 8) >> 0x16;" (assignment_expression "uVar34 = (uint)((int)ppppppuVar36[1] << 8) >> 0x16" identifier = (binary_expression "(uint)((int)ppppppuVar36[1] << 8) >> 0x16" (call_expression "(uint)((int)ppppppuVar36[1] << 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppppppuVar36[1] << 8)" ( (binary_expression "(int)ppppppuVar36[1] << 8" (cast_expression "(int)ppppppuVar36[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppuVar36[1]" identifier [ number_literal ])) << number_literal) ))) >> number_literal)) ;) (if_statement "if (bVar2 == 1) {\n      pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5));\n      pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f));\n      *pppppppuVar40 = (uint ******)pppppppuVar28;\nLAB_0001e060:\n      pppppppuVar40 = pppppppuStack_144;\n      if (uVar34 == 0) goto LAB_0001e15c;\n      if ((uVar34 & 0x20) == 0) {\n        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }\n        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      else {\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      pppppppuStack_144 = (uint *******)0x0;\n      uStack_140 = 0;\n      uStack_13c = 0;\n      uStack_138 = 0;\n      uStack_134 = 0;\n      uStack_130 = 0;\n      uStack_12c = 0;\n      uStack_128 = 0;\n    }\n    else {\n      if (bVar2 == 3) {\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }\n      if (bVar2 == 5) {\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      pppppppuVar28 = (uint *******)0xffffffff;\n      if (bVar2 == 7) {\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }" if (parenthesized_expression "(bVar2 == 1)" ( (binary_expression "bVar2 == 1" identifier == number_literal) )) (compound_statement "{\n      pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5));\n      pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f));\n      *pppppppuVar40 = (uint ******)pppppppuVar28;\nLAB_0001e060:\n      pppppppuVar40 = pppppppuStack_144;\n      if (uVar34 == 0) goto LAB_0001e15c;\n      if ((uVar34 & 0x20) == 0) {\n        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }\n        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      else {\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      pppppppuStack_144 = (uint *******)0x0;\n      uStack_140 = 0;\n      uStack_13c = 0;\n      uStack_138 = 0;\n      uStack_134 = 0;\n      uStack_130 = 0;\n      uStack_12c = 0;\n      uStack_128 = 0;\n    }" { (expression_statement "pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5));" (assignment_expression "pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))" identifier = (cast_expression "(uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))" ( (binary_expression "&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5)" (pointer_expression "&pppppppuStack_144" & identifier) + (parenthesized_expression "((int)(uint)*(byte *)ppppppuVar36 >> 5)" ( (binary_expression "(int)(uint)*(byte *)ppppppuVar36 >> 5" (binary_expression "(int)(uint)*(byte *)ppppppuVar36" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)ppppppuVar36" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal) ))) )))) ;) (expression_statement "pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f));" (assignment_expression "pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f))" identifier = (cast_expression "(uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f))" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f))" ( (binary_expression "(uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f)" (binary_expression "(uint)*pppppppuVar40" (parenthesized_expression "(uint)" ( identifier )) * identifier) | (binary_expression "1 << (*(byte *)ppppppuVar36 & 0x1f)" number_literal << (parenthesized_expression "(*(byte *)ppppppuVar36 & 0x1f)" ( (binary_expression "*(byte *)ppppppuVar36 & 0x1f" (pointer_expression "*(byte *)ppppppuVar36" * (cast_expression "(byte *)ppppppuVar36" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) )))) )))) ;) (expression_statement "*pppppppuVar40 = (uint ******)pppppppuVar28;" (assignment_expression "*pppppppuVar40 = (uint ******)pppppppuVar28" (pointer_expression "*pppppppuVar40" * identifier) = (cast_expression "(uint ******)pppppppuVar28" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (labeled_statement "LAB_0001e060:\n      pppppppuVar40 = pppppppuStack_144;" statement_identifier : (expression_statement "pppppppuVar40 = pppppppuStack_144;" (assignment_expression "pppppppuVar40 = pppppppuStack_144" identifier = identifier) ;)) (if_statement "if (uVar34 == 0) goto LAB_0001e15c;" if (parenthesized_expression "(uVar34 == 0)" ( (binary_expression "uVar34 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001e15c;" goto statement_identifier ;)) (if_statement "if ((uVar34 & 0x20) == 0) {\n        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }\n        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      else {\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }" if (parenthesized_expression "((uVar34 & 0x20) == 0)" ( (binary_expression "(uVar34 & 0x20) == 0" (parenthesized_expression "(uVar34 & 0x20)" ( (binary_expression "uVar34 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }\n        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        pppppppuStack_144 = (uint *******)0x0;\n      }" { (if_statement "if ((uVar34 & 0x80) != 0) goto LAB_0001e428;" if (parenthesized_expression "((uVar34 & 0x80) != 0)" ( (binary_expression "(uVar34 & 0x80) != 0" (parenthesized_expression "(uVar34 & 0x80)" ( (binary_expression "uVar34 & 0x80" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001e428;" goto statement_identifier ;)) (labeled_statement "LAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }" statement_identifier : (if_statement "if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }" if (parenthesized_expression "((uVar34 & 4) != 0)" ( (binary_expression "(uVar34 & 4) != 0" (parenthesized_expression "(uVar34 & 4)" ( (binary_expression "uVar34 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }" { (if_statement "if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }" if (parenthesized_expression "(bVar2 == 1)" ( (binary_expression "bVar2 == 1" identifier == number_literal) )) (compound_statement "{\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }" { (if_statement "if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;" if (parenthesized_expression "(((uint)ppppppuVar36[1] & 0x200) == 0)" ( (binary_expression "((uint)ppppppuVar36[1] & 0x200) == 0" (parenthesized_expression "((uint)ppppppuVar36[1] & 0x200)" ( (binary_expression "(uint)ppppppuVar36[1] & 0x200" (cast_expression "(uint)ppppppuVar36[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppuVar36[1]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001e428;" goto statement_identifier ;)) (expression_statement "ppppppuVar13 = pppppppuVar19[0x17];" (assignment_expression "ppppppuVar13 = pppppppuVar19[0x17]" identifier = (subscript_expression "pppppppuVar19[0x17]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }" else (compound_statement "{\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }" { (expression_statement "ppppppuVar13 = pppppppuVar19[0x17];" (assignment_expression "ppppppuVar13 = pppppppuVar19[0x17]" identifier = (subscript_expression "pppppppuVar19[0x17]" identifier [ number_literal ])) ;) }))) (if_statement "if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }" if (parenthesized_expression "((int)ppppppuVar13 < 2)" ( (binary_expression "(int)ppppppuVar13 < 2" (cast_expression "(int)ppppppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }" { (expression_statement "pppppppuVar16 = pppppppuVar19 + 0x18;" (assignment_expression "pppppppuVar16 = pppppppuVar19 + 0x18" identifier = (binary_expression "pppppppuVar19 + 0x18" identifier + number_literal)) ;) (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" identifier = number_literal) ;) (expression_statement "pppppppuVar40 = (uint *******)&pppppppuStack_144;" (assignment_expression "pppppppuVar40 = (uint *******)&pppppppuStack_144" identifier = (cast_expression "(uint *******)&pppppppuStack_144" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&pppppppuStack_144" & identifier))) ;) (do_statement "do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);" do (compound_statement "{\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            }" { (expression_statement "pppppppuVar22 = pppppppuVar40 + 1;" (assignment_expression "pppppppuVar22 = pppppppuVar40 + 1" identifier = (binary_expression "pppppppuVar40 + 1" identifier + number_literal)) ;) (expression_statement "ppppppuVar13 = *pppppppuVar16;" (assignment_expression "ppppppuVar13 = *pppppppuVar16" identifier = (pointer_expression "*pppppppuVar16" * identifier)) ;) (expression_statement "pppppppuVar16 = pppppppuVar16 + 1;" (assignment_expression "pppppppuVar16 = pppppppuVar16 + 1" identifier = (binary_expression "pppppppuVar16 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);" (assignment_expression "pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13)" identifier = (cast_expression "(uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)*pppppppuVar40 & (uint)ppppppuVar13)" ( (binary_expression "(uint)*pppppppuVar40 & (uint)ppppppuVar13" (binary_expression "(uint)*pppppppuVar40" (parenthesized_expression "(uint)" ( identifier )) * identifier) & (cast_expression "(uint)ppppppuVar13" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "*pppppppuVar40 = (uint ******)pppppppuVar28;" (assignment_expression "*pppppppuVar40 = (uint ******)pppppppuVar28" (pointer_expression "*pppppppuVar40" * identifier) = (cast_expression "(uint ******)pppppppuVar28" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "uVar26 = uVar26 | (uint)pppppppuVar28;" (assignment_expression "uVar26 = uVar26 | (uint)pppppppuVar28" identifier = (binary_expression "uVar26 | (uint)pppppppuVar28" identifier | (cast_expression "(uint)pppppppuVar28" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pppppppuVar40 = pppppppuVar22;" (assignment_expression "pppppppuVar40 = pppppppuVar22" identifier = identifier) ;) }) while (parenthesized_expression "(&ppppppuStack_124 != pppppppuVar22)" ( (binary_expression "&ppppppuStack_124 != pppppppuVar22" (pointer_expression "&ppppppuStack_124" & identifier) != identifier) )) ;) }) (else_clause "else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }" else (compound_statement "{\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }" { (expression_statement "ppppppuVar13 = pppppppuVar19[0xf];" (assignment_expression "ppppppuVar13 = pppppppuVar19[0xf]" identifier = (subscript_expression "pppppppuVar19[0xf]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar16 = pppppppuVar19 + 0x18;" (assignment_expression "pppppppuVar16 = pppppppuVar19 + 0x18" identifier = (binary_expression "pppppppuVar19 + 0x18" identifier + number_literal)) ;) (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" identifier = number_literal) ;) (expression_statement "pppppppuVar40 = (uint *******)&pppppppuStack_144;" (assignment_expression "pppppppuVar40 = (uint *******)&pppppppuStack_144" identifier = (cast_expression "(uint *******)&pppppppuStack_144" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&pppppppuStack_144" & identifier))) ;) (do_statement "do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);" do (compound_statement "{\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            }" { (expression_statement "pppppppuVar28 = pppppppuVar40 + 1;" (assignment_expression "pppppppuVar28 = pppppppuVar40 + 1" identifier = (binary_expression "pppppppuVar40 + 1" identifier + number_literal)) ;) (expression_statement "pppppuVar31 = *ppppppuVar13;" (assignment_expression "pppppuVar31 = *ppppppuVar13" identifier = (pointer_expression "*ppppppuVar13" * identifier)) ;) (expression_statement "ppppppuVar32 = *pppppppuVar16;" (assignment_expression "ppppppuVar32 = *pppppppuVar16" identifier = (pointer_expression "*pppppppuVar16" * identifier)) ;) (expression_statement "ppppppuVar13 = ppppppuVar13 + 1;" (assignment_expression "ppppppuVar13 = ppppppuVar13 + 1" identifier = (binary_expression "ppppppuVar13 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar16 = pppppppuVar16 + 1;" (assignment_expression "pppppppuVar16 = pppppppuVar16 + 1" identifier = (binary_expression "pppppppuVar16 + 1" identifier + number_literal)) ;) (expression_statement "ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);" (assignment_expression "ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40)" identifier = (cast_expression "(uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40)" ( (binary_expression "(~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40" (parenthesized_expression "(~(uint)pppppuVar31 | (uint)ppppppuVar32)" ( (binary_expression "~(uint)pppppuVar31 | (uint)ppppppuVar32" (unary_expression "~(uint)pppppuVar31" ~ (cast_expression "(uint)pppppuVar31" ( (type_descriptor "uint" type_identifier) ) identifier)) | (cast_expression "(uint)ppppppuVar32" ( (type_descriptor "uint" type_identifier) ) identifier)) )) & (binary_expression "(uint)*pppppppuVar40" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )))) ;) (expression_statement "*pppppppuVar40 = ppppppuVar32;" (assignment_expression "*pppppppuVar40 = ppppppuVar32" (pointer_expression "*pppppppuVar40" * identifier) = identifier) ;) (expression_statement "uVar26 = uVar26 | (uint)ppppppuVar32;" (assignment_expression "uVar26 = uVar26 | (uint)ppppppuVar32" identifier = (binary_expression "uVar26 | (uint)ppppppuVar32" identifier | (cast_expression "(uint)ppppppuVar32" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pppppppuVar40 = pppppppuVar28;" (assignment_expression "pppppppuVar40 = pppppppuVar28" identifier = identifier) ;) }) while (parenthesized_expression "(&ppppppuStack_124 != pppppppuVar28)" ( (binary_expression "&ppppppuStack_124 != pppppppuVar28" (pointer_expression "&ppppppuStack_124" & identifier) != identifier) )) ;) }))) (if_statement "if (uVar26 == 0) goto LAB_0001dcc8;" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001dcc8;" goto statement_identifier ;)) }))) (if_statement "if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }" if (parenthesized_expression "((uVar34 & 8) == 0)" ( (binary_expression "(uVar34 & 8) == 0" (parenthesized_expression "(uVar34 & 8)" ( (binary_expression "uVar34 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }" { (labeled_statement "LAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;" statement_identifier : (expression_statement "pppppppuVar40 = (uint *******)0x0;" (assignment_expression "pppppppuVar40 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }" if (parenthesized_expression "(0 < (int)pppppppuVar24)" ( (binary_expression "0 < (int)pppppppuVar24" number_literal < (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }" { (expression_statement "pppppppuVar40 = (uint *******)0x0;" (assignment_expression "pppppppuVar40 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "puVar14 = puVar7;" (assignment_expression "puVar14 = puVar7" identifier = identifier) ;) (do_statement "do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);" do (compound_statement "{\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            }" { (expression_statement "pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);" (assignment_expression "pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20)" identifier = (cast_expression "(uint *******)((int)pppppppuVar40 * 0x20)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar40 * 0x20)" ( (binary_expression "(int)pppppppuVar40 * 0x20" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }" if (parenthesized_expression "((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0))" ( (binary_expression "(bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)" (parenthesized_expression "(bVar2 != 1)" ( (binary_expression "bVar2 != 1" identifier != number_literal) )) || (parenthesized_expression "(((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)" ( (binary_expression "((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0" (parenthesized_expression "((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1)" ( (binary_expression "(puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1" (binary_expression "(puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f)" (subscript_expression "(puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8]" (parenthesized_expression "(puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))" ( (binary_expression "puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5)" identifier + (parenthesized_expression "((int)(uint)*(byte *)ppppppuVar36 >> 5)" ( (binary_expression "(int)(uint)*(byte *)ppppppuVar36 >> 5" (binary_expression "(int)(uint)*(byte *)ppppppuVar36" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)ppppppuVar36" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal) ))) )) [ (binary_expression "(int)pppppppuVar40 * 8" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ]) >> (parenthesized_expression "(*(byte *)ppppppuVar36 & 0x1f)" ( (binary_expression "*(byte *)ppppppuVar36 & 0x1f" (pointer_expression "*(byte *)ppppppuVar36" * (cast_expression "(byte *)ppppppuVar36" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }" { (expression_statement "uVar34 = 0;" (assignment_expression "uVar34 = 0" identifier = number_literal) ;) (expression_statement "pppppppuVar16 = (uint *******)&pppppppuStack_144;" (assignment_expression "pppppppuVar16 = (uint *******)&pppppppuStack_144" identifier = (cast_expression "(uint *******)&pppppppuStack_144" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&pppppppuStack_144" & identifier))) ;) (expression_statement "pppppppuVar22 = &ppppppuStack_124;" (assignment_expression "pppppppuVar22 = &ppppppuStack_124" identifier = (pointer_expression "&ppppppuStack_124" & identifier)) ;) (expression_statement "puVar33 = puVar14;" (assignment_expression "puVar33 = puVar14" identifier = identifier) ;) (do_statement "do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);" do (compound_statement "{\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                }" { (expression_statement "pppppppuVar28 = pppppppuVar16 + 1;" (assignment_expression "pppppppuVar28 = pppppppuVar16 + 1" identifier = (binary_expression "pppppppuVar16 + 1" identifier + number_literal)) ;) (expression_statement "uVar26 = *puVar33;" (assignment_expression "uVar26 = *puVar33" identifier = (pointer_expression "*puVar33" * identifier)) ;) (expression_statement "ppppppuVar20 = *pppppppuVar16;" (assignment_expression "ppppppuVar20 = *pppppppuVar16" identifier = (pointer_expression "*pppppppuVar16" * identifier)) ;) (expression_statement "puVar33 = puVar33 + 1;" (assignment_expression "puVar33 = puVar33 + 1" identifier = (binary_expression "puVar33 + 1" identifier + number_literal)) ;) (expression_statement "*pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);" (assignment_expression "*pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26)" (pointer_expression "*pppppppuVar22" * identifier) = (cast_expression "(uint ******)((uint)ppppppuVar20 & uVar26)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((uint)ppppppuVar20 & uVar26)" ( (binary_expression "(uint)ppppppuVar20 & uVar26" (cast_expression "(uint)ppppppuVar20" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier) )))) ;) (expression_statement "uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;" (assignment_expression "uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26" identifier = (binary_expression "uVar34 | (uint)ppppppuVar20 & uVar26" identifier | (binary_expression "(uint)ppppppuVar20 & uVar26" (cast_expression "(uint)ppppppuVar20" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier))) ;) (expression_statement "pppppppuVar16 = pppppppuVar28;" (assignment_expression "pppppppuVar16 = pppppppuVar28" identifier = identifier) ;) (expression_statement "pppppppuVar22 = pppppppuVar22 + 1;" (assignment_expression "pppppppuVar22 = pppppppuVar22 + 1" identifier = (binary_expression "pppppppuVar22 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(&ppppppuStack_124 != pppppppuVar28)" ( (binary_expression "&ppppppuStack_124 != pppppppuVar28" (pointer_expression "&ppppppuStack_124" & identifier) != identifier) )) ;) (expression_statement "pppppppuVar28 = (uint *******)&pppppppuStack_144;" (assignment_expression "pppppppuVar28 = (uint *******)&pppppppuStack_144" identifier = (cast_expression "(uint *******)&pppppppuStack_144" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&pppppppuStack_144" & identifier))) ;) (if_statement "if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }" if (parenthesized_expression "(uVar34 != 0)" ( (binary_expression "uVar34 != 0" identifier != number_literal) )) (compound_statement "{\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }" { (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" identifier = number_literal) ;) (expression_statement "uVar34 = 0;" (assignment_expression "uVar34 = 0" identifier = number_literal) ;) (expression_statement "pppppppuVar16 = (uint *******)&pppppppuStack_144;" (assignment_expression "pppppppuVar16 = (uint *******)&pppppppuStack_144" identifier = (cast_expression "(uint *******)&pppppppuStack_144" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&pppppppuStack_144" & identifier))) ;) (expression_statement "puVar33 = puVar14;" (assignment_expression "puVar33 = puVar14" identifier = identifier) ;) (expression_statement "ppiVar37 = &piStack_104;" (assignment_expression "ppiVar37 = &piStack_104" identifier = (pointer_expression "&piStack_104" & identifier)) ;) (do_statement "do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);" do (compound_statement "{\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  }" { (expression_statement "uVar29 = *puVar33;" (assignment_expression "uVar29 = *puVar33" identifier = (pointer_expression "*puVar33" * identifier)) ;) (expression_statement "puVar33 = puVar33 + 1;" (assignment_expression "puVar33 = puVar33 + 1" identifier = (binary_expression "puVar33 + 1" identifier + number_literal)) ;) (expression_statement "piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);" (assignment_expression "piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29)" identifier = (cast_expression "(int *)(~(uint)*pppppppuVar16 & uVar29)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(~(uint)*pppppppuVar16 & uVar29)" ( (binary_expression "~(uint)*pppppppuVar16 & uVar29" (binary_expression "~(uint)*pppppppuVar16" (unary_expression "~(uint)" ~ (parenthesized_expression "(uint)" ( identifier ))) * identifier) & identifier) )))) ;) (expression_statement "ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);" (assignment_expression "ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16)" identifier = (cast_expression "(uint ******)(~uVar29 & (uint)*pppppppuVar16)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(~uVar29 & (uint)*pppppppuVar16)" ( (binary_expression "~uVar29 & (uint)*pppppppuVar16" (unary_expression "~uVar29" ~ identifier) & (binary_expression "(uint)*pppppppuVar16" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )))) ;) (expression_statement "*ppiVar37 = piVar39;" (assignment_expression "*ppiVar37 = piVar39" (pointer_expression "*ppiVar37" * identifier) = identifier) ;) (expression_statement "*pppppppuVar16 = ppppppuVar20;" (assignment_expression "*pppppppuVar16 = ppppppuVar20" (pointer_expression "*pppppppuVar16" * identifier) = identifier) ;) (expression_statement "uVar34 = uVar34 | (uint)piVar39;" (assignment_expression "uVar34 = uVar34 | (uint)piVar39" identifier = (binary_expression "uVar34 | (uint)piVar39" identifier | (cast_expression "(uint)piVar39" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "uVar26 = uVar26 | (uint)ppppppuVar20;" (assignment_expression "uVar26 = uVar26 | (uint)ppppppuVar20" identifier = (binary_expression "uVar26 | (uint)ppppppuVar20" identifier | (cast_expression "(uint)ppppppuVar20" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pppppppuVar16 = pppppppuVar16 + 1;" (assignment_expression "pppppppuVar16 = pppppppuVar16 + 1" identifier = (binary_expression "pppppppuVar16 + 1" identifier + number_literal)) ;) (expression_statement "ppiVar37 = ppiVar37 + 1;" (assignment_expression "ppiVar37 = ppiVar37 + 1" identifier = (binary_expression "ppiVar37 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 + 8 != puVar33)" ( (binary_expression "puVar14 + 8 != puVar33" (binary_expression "puVar14 + 8" identifier + number_literal) != identifier) )) ;) (expression_statement "pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);" (assignment_expression "pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc)" identifier = (cast_expression "(uint *******)(iVar25 + (int)pppppppuVar40 * 0xc)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(iVar25 + (int)pppppppuVar40 * 0xc)" ( (binary_expression "iVar25 + (int)pppppppuVar40 * 0xc" identifier + (binary_expression "(int)pppppppuVar40 * 0xc" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (if_statement "if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }" if (parenthesized_expression "(uVar34 != 0)" ( (binary_expression "uVar34 != 0" identifier != number_literal) )) (compound_statement "{\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }" { (expression_statement "iStack_178 = (int)pppppppuVar24 * 2;" (assignment_expression "iStack_178 = (int)pppppppuVar24 * 2" identifier = (binary_expression "(int)pppppppuVar24 * 2" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "puVar33 = puVar7 + (int)pppppppuVar24 * 8;" (assignment_expression "puVar33 = puVar7 + (int)pppppppuVar24 * 8" identifier = (binary_expression "puVar7 + (int)pppppppuVar24 * 8" identifier + (binary_expression "(int)pppppppuVar24 * 8" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "*puVar33 = (uint)piStack_104;" (assignment_expression "*puVar33 = (uint)piStack_104" (pointer_expression "*puVar33" * identifier) = (cast_expression "(uint)piStack_104" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar33[1] = uStack_100;" (assignment_expression "puVar33[1] = uStack_100" (subscript_expression "puVar33[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[2] = uStack_fc;" (assignment_expression "puVar33[2] = uStack_fc" (subscript_expression "puVar33[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[3] = uStack_f8;" (assignment_expression "puVar33[3] = uStack_f8" (subscript_expression "puVar33[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[4] = uStack_f4;" (assignment_expression "puVar33[4] = uStack_f4" (subscript_expression "puVar33[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[5] = uStack_f0;" (assignment_expression "puVar33[5] = uStack_f0" (subscript_expression "puVar33[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[6] = uStack_ec;" (assignment_expression "puVar33[6] = uStack_ec" (subscript_expression "puVar33[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[7] = uStack_e8;" (assignment_expression "puVar33[7] = uStack_e8" (subscript_expression "puVar33[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[1] = uStack_120;" (assignment_expression "puVar14[1] = uStack_120" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[2] = uStack_11c;" (assignment_expression "puVar14[2] = uStack_11c" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar14 = (uint)ppppppuStack_124;" (assignment_expression "*puVar14 = (uint)ppppppuStack_124" (pointer_expression "*puVar14" * identifier) = (cast_expression "(uint)ppppppuStack_124" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar14[3] = uStack_118;" (assignment_expression "puVar14[3] = uStack_118" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[4] = uStack_114;" (assignment_expression "puVar14[4] = uStack_114" (subscript_expression "puVar14[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[5] = uStack_110;" (assignment_expression "puVar14[5] = uStack_110" (subscript_expression "puVar14[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[6] = uStack_10c;" (assignment_expression "puVar14[6] = uStack_10c" (subscript_expression "puVar14[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[7] = uStack_108;" (assignment_expression "puVar14[7] = uStack_108" (subscript_expression "puVar14[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppuVar28 = pppppppuVar16;" (assignment_expression "pppppppuVar28 = pppppppuVar16" identifier = identifier) ;) (expression_statement "iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);" (assignment_expression "iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc)" identifier = (call_expression "(*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc)" (parenthesized_expression "(*(code *)(iVar35 + -0x4580))" ( (pointer_expression "*(code *)(iVar35 + -0x4580)" * (cast_expression "(code *)(iVar35 + -0x4580)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + -0x4580)" ( (binary_expression "iVar35 + -0x4580" identifier + number_literal) )))) )) (argument_list "(iVar25 + (int)pppppppuVar24 * 0xc)" ( (binary_expression "iVar25 + (int)pppppppuVar24 * 0xc" identifier + (binary_expression "(int)pppppppuVar24 * 0xc" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (if_statement "if (iVar41 != 0) goto LAB_0001e458;" if (parenthesized_expression "(iVar41 != 0)" ( (binary_expression "iVar41 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001e458;" goto statement_identifier ;)) (expression_statement "pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);" (assignment_expression "pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar24 + 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar24 + 1)" ( (binary_expression "(int)pppppppuVar24 + 1" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];" (assignment_expression "pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184]" identifier = (cast_expression "(uint *******)pppppppuVar18[3][iStack_184]" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppuVar18[3][iStack_184]" (subscript_expression "pppppppuVar18[3]" identifier [ number_literal ]) [ identifier ]))) ;) (expression_statement "iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);" (assignment_expression "iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16)" identifier = (call_expression "(*(code *)(iVar5 + -0x7b38))(pppppppuVar16)" (parenthesized_expression "(*(code *)(iVar5 + -0x7b38))" ( (pointer_expression "*(code *)(iVar5 + -0x7b38)" * (cast_expression "(code *)(iVar5 + -0x7b38)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + -0x7b38)" ( (binary_expression "iVar5 + -0x7b38" identifier + number_literal) )))) )) (argument_list "(pppppppuVar16)" ( identifier )))) ;) (if_statement "if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }" if (parenthesized_expression "(iVar41 == 0)" ( (binary_expression "iVar41 == 0" identifier == number_literal) )) (compound_statement "{\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }" { (expression_statement "iStack_178 = (int)pppppppuVar24 << 1;" (assignment_expression "iStack_178 = (int)pppppppuVar24 << 1" identifier = (binary_expression "(int)pppppppuVar24 << 1" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) (goto_statement "goto LAB_0001e458;" goto statement_identifier ;) })) (if_statement "if (uVar26 == 0) break;" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) })) })) (expression_statement "puVar14 = puVar14 + 8;" (assignment_expression "puVar14 = puVar14 + 8" identifier = (binary_expression "puVar14 + 8" identifier + number_literal)) ;) (expression_statement "pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);" (assignment_expression "pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar40 + 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar40 + 1)" ( (binary_expression "(int)pppppppuVar40 + 1" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int)pppppppuVar40 < (int)pppppppuVar24)" ( (binary_expression "(int)pppppppuVar40 < (int)pppppppuVar24" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "iStack_178 = (int)pppppppuVar24 * 2;" (assignment_expression "iStack_178 = (int)pppppppuVar24 * 2" identifier = (binary_expression "(int)pppppppuVar24 * 2" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }" if (parenthesized_expression "(pppppppuVar24 == pppppppuVar40)" ( (binary_expression "pppppppuVar24 == pppppppuVar40" identifier == identifier) )) (compound_statement "{\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }" { (expression_statement "ppppppuVar20 = pppppppuVar18[3];" (assignment_expression "ppppppuVar20 = pppppppuVar18[3]" identifier = (subscript_expression "pppppppuVar18[3]" identifier [ number_literal ])) ;) (expression_statement "pcVar10 = *(code **)(pcVar46 + 0x1e724);" (assignment_expression "pcVar10 = *(code **)(pcVar46 + 0x1e724)" identifier = (pointer_expression "*(code **)(pcVar46 + 0x1e724)" * (cast_expression "(code **)(pcVar46 + 0x1e724)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e724)" ( (binary_expression "pcVar46 + 0x1e724" identifier + number_literal) ))))) ;) (expression_statement "puVar14 = puVar7 + (int)pppppppuVar24 * 8;" (assignment_expression "puVar14 = puVar7 + (int)pppppppuVar24 * 8" identifier = (binary_expression "puVar7 + (int)pppppppuVar24 * 8" identifier + (binary_expression "(int)pppppppuVar24 * 8" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "*puVar14 = (uint)pppppppuStack_144;" (assignment_expression "*puVar14 = (uint)pppppppuStack_144" (pointer_expression "*puVar14" * identifier) = (cast_expression "(uint)pppppppuStack_144" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);" (assignment_expression "pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184)" identifier = (cast_expression "(uint *******)(ppppppuVar20 + iStack_184)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(ppppppuVar20 + iStack_184)" ( (binary_expression "ppppppuVar20 + iStack_184" identifier + identifier) )))) ;) (expression_statement "puVar14[1] = uStack_140;" (assignment_expression "puVar14[1] = uStack_140" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);" (assignment_expression "puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc)" identifier = (cast_expression "(undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + (int)pppppppuVar24 * 0xc)" ( (binary_expression "iVar25 + (int)pppppppuVar24 * 0xc" identifier + (binary_expression "(int)pppppppuVar24 * 0xc" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "puVar14[2] = uStack_13c;" (assignment_expression "puVar14[2] = uStack_13c" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[3] = uStack_138;" (assignment_expression "puVar14[3] = uStack_138" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[4] = uStack_134;" (assignment_expression "puVar14[4] = uStack_134" (subscript_expression "puVar14[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[5] = uStack_130;" (assignment_expression "puVar14[5] = uStack_130" (subscript_expression "puVar14[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[6] = uStack_12c;" (assignment_expression "puVar14[6] = uStack_12c" (subscript_expression "puVar14[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[7] = uStack_128;" (assignment_expression "puVar14[7] = uStack_128" (subscript_expression "puVar14[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppppuVar36 = *pppppppuVar28;" (assignment_expression "ppppppuVar36 = *pppppppuVar28" identifier = (pointer_expression "*pppppppuVar28" * identifier)) ;) (expression_statement "*puVar9 = 1;" (assignment_expression "*puVar9 = 1" (pointer_expression "*puVar9" * identifier) = number_literal) ;) (expression_statement "puVar9[1] = 1;" (assignment_expression "puVar9[1] = 1" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14 = (uint *)(*pcVar10)(4);" (assignment_expression "puVar14 = (uint *)(*pcVar10)(4)" identifier = (cast_expression "(uint *)(*pcVar10)(4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar10)(4)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "puVar9[2] = puVar14;" (assignment_expression "puVar9[2] = puVar14" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }" if (parenthesized_expression "(puVar14 != (uint *)0x0)" ( (binary_expression "puVar14 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }" { (expression_statement "ppppppuVar20 = pppppppuVar18[2];" (assignment_expression "ppppppuVar20 = pppppppuVar18[2]" identifier = (subscript_expression "pppppppuVar18[2]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);" (assignment_expression "pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar24 + 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar24 + 1)" ( (binary_expression "(int)pppppppuVar24 + 1" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*puVar14 = (uint)ppppppuVar36;" (assignment_expression "*puVar14 = (uint)ppppppuVar36" (pointer_expression "*puVar14" * identifier) = (cast_expression "(uint)ppppppuVar36" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pppppppuStack_144 = (uint *******)0x0;" (assignment_expression "pppppppuStack_144 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "uStack_140 = 0;" (assignment_expression "uStack_140 = 0" identifier = number_literal) ;) (expression_statement "uStack_13c = 0;" (assignment_expression "uStack_13c = 0" identifier = number_literal) ;) (expression_statement "uStack_138 = 0;" (assignment_expression "uStack_138 = 0" identifier = number_literal) ;) (expression_statement "uStack_134 = 0;" (assignment_expression "uStack_134 = 0" identifier = number_literal) ;) (expression_statement "uStack_130 = 0;" (assignment_expression "uStack_130 = 0" identifier = number_literal) ;) (expression_statement "uStack_12c = 0;" (assignment_expression "uStack_12c = 0" identifier = number_literal) ;) (expression_statement "uStack_128 = 0;" (assignment_expression "uStack_128 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0001dcc8;" goto statement_identifier ;) })) (expression_statement "puVar9[1] = 0;" (assignment_expression "puVar9[1] = 0" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar9 = 0;" (assignment_expression "*puVar9 = 0" (pointer_expression "*puVar9" * identifier) = number_literal) ;) (if_statement "if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }" if (parenthesized_expression "(pppppppuVar24 == (uint *******)0x0)" ( (binary_expression "pppppppuVar24 == (uint *******)0x0" identifier == (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }" { (expression_statement "(**(code **)(pcVar46 + 0x1e790))(iVar25);" (call_expression "(**(code **)(pcVar46 + 0x1e790))(iVar25)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e790)" * (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier ))) ;) }) (else_clause "else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }" else (compound_statement "{\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }" { (labeled_statement "LAB_0001e458:\n              iVar5 = iVar25;" statement_identifier : (expression_statement "iVar5 = iVar25;" (assignment_expression "iVar5 = iVar25" identifier = identifier) ;)) (do_statement "do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);" do (compound_statement "{\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              }" { (expression_statement "iVar35 = iVar5 + 0xc;" (assignment_expression "iVar35 = iVar5 + 0xc" identifier = (binary_expression "iVar5 + 0xc" identifier + number_literal)) ;) (expression_statement "(**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));" (call_expression "(**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8))" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e790)" * (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar5 + 8))" ( (pointer_expression "*(undefined4 *)(iVar5 + 8)" * (cast_expression "(undefined4 *)(iVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "iVar5 = iVar35;" (assignment_expression "iVar5 = iVar35" identifier = identifier) ;) }) while (parenthesized_expression "((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35)" ( (binary_expression "(int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35" (binary_expression "(int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25" (binary_expression "(int)(iStack_178 + (int)pppppppuVar24) * 4" (cast_expression "(int)(iStack_178 + (int)pppppppuVar24)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iStack_178 + (int)pppppppuVar24)" ( (binary_expression "iStack_178 + (int)pppppppuVar24" identifier + (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ))) * number_literal) + identifier) != identifier) )) ;) (expression_statement "(**(code **)(pcVar46 + 0x1e790))(iVar25);" (call_expression "(**(code **)(pcVar46 + 0x1e790))(iVar25)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e790)" * (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier ))) ;) }))) (goto_statement "goto LAB_0001dffc;" goto statement_identifier ;) })) (expression_statement "ppppppuVar20 = pppppppuVar18[2];" (assignment_expression "ppppppuVar20 = pppppppuVar18[2]" identifier = (subscript_expression "pppppppuVar18[2]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0001dcc8;" goto statement_identifier ;) })) (if_statement "if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }" if (parenthesized_expression "((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0))" ( (binary_expression "(bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)" (parenthesized_expression "(bVar2 != 1)" ( (binary_expression "bVar2 != 1" identifier != number_literal) )) || (parenthesized_expression "(((uint)ppppppuVar36[1] & 0x200) == 0)" ( (binary_expression "((uint)ppppppuVar36[1] & 0x200) == 0" (parenthesized_expression "((uint)ppppppuVar36[1] & 0x200)" ( (binary_expression "(uint)ppppppuVar36[1] & 0x200" (cast_expression "(uint)ppppppuVar36[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppuVar36[1]" identifier [ number_literal ])) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }" { (expression_statement "pppppppuVar40 = pppppppuVar19 + 0x18;" (assignment_expression "pppppppuVar40 = pppppppuVar19 + 0x18" identifier = (binary_expression "pppppppuVar19 + 0x18" identifier + number_literal)) ;) (if_statement "if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }" if (parenthesized_expression "((int)pppppppuVar19[0x17] < 2)" ( (binary_expression "(int)pppppppuVar19[0x17] < 2" (cast_expression "(int)pppppppuVar19[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppuVar19[0x17]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }" { (expression_statement "pppppppuVar28 = (uint *******)0x0;" (assignment_expression "pppppppuVar28 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "pppppppuVar16 = (uint *******)&pppppppuStack_144;" (assignment_expression "pppppppuVar16 = (uint *******)&pppppppuStack_144" identifier = (cast_expression "(uint *******)&pppppppuStack_144" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&pppppppuStack_144" & identifier))) ;) (do_statement "do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);" do (compound_statement "{\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            }" { (expression_statement "pppppppuVar22 = pppppppuVar16 + 1;" (assignment_expression "pppppppuVar22 = pppppppuVar16 + 1" identifier = (binary_expression "pppppppuVar16 + 1" identifier + number_literal)) ;) (expression_statement "ppppppuVar13 = *pppppppuVar40;" (assignment_expression "ppppppuVar13 = *pppppppuVar40" identifier = (pointer_expression "*pppppppuVar40" * identifier)) ;) (expression_statement "ppppppuVar32 = *pppppppuVar16;" (assignment_expression "ppppppuVar32 = *pppppppuVar16" identifier = (pointer_expression "*pppppppuVar16" * identifier)) ;) (expression_statement "pppppppuVar40 = pppppppuVar40 + 1;" (assignment_expression "pppppppuVar40 = pppppppuVar40 + 1" identifier = (binary_expression "pppppppuVar40 + 1" identifier + number_literal)) ;) (expression_statement "*pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);" (assignment_expression "*pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32)" (pointer_expression "*pppppppuVar16" * identifier) = (cast_expression "(uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(~(uint)ppppppuVar13 & (uint)ppppppuVar32)" ( (binary_expression "~(uint)ppppppuVar13 & (uint)ppppppuVar32" (unary_expression "~(uint)ppppppuVar13" ~ (cast_expression "(uint)ppppppuVar13" ( (type_descriptor "uint" type_identifier) ) identifier)) & (cast_expression "(uint)ppppppuVar32" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);" (assignment_expression "pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32)" identifier = (cast_expression "(uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32)" ( (binary_expression "(uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32" (cast_expression "(uint)pppppppuVar28" ( (type_descriptor "uint" type_identifier) ) identifier) | (binary_expression "~(uint)ppppppuVar13 & (uint)ppppppuVar32" (unary_expression "~(uint)ppppppuVar13" ~ (cast_expression "(uint)ppppppuVar13" ( (type_descriptor "uint" type_identifier) ) identifier)) & (cast_expression "(uint)ppppppuVar32" ( (type_descriptor "uint" type_identifier) ) identifier))) )))) ;) (expression_statement "pppppppuVar16 = pppppppuVar22;" (assignment_expression "pppppppuVar16 = pppppppuVar22" identifier = identifier) ;) }) while (parenthesized_expression "(pppppppuVar22 != &ppppppuStack_124)" ( (binary_expression "pppppppuVar22 != &ppppppuStack_124" identifier != (pointer_expression "&ppppppuStack_124" & identifier)) )) ;) }) (else_clause "else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }" else (compound_statement "{\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }" { (expression_statement "ppppppuVar13 = pppppppuVar19[0xf];" (assignment_expression "ppppppuVar13 = pppppppuVar19[0xf]" identifier = (subscript_expression "pppppppuVar19[0xf]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar28 = (uint *******)0x0;" (assignment_expression "pppppppuVar28 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "pppppppuVar16 = (uint *******)&pppppppuStack_144;" (assignment_expression "pppppppuVar16 = (uint *******)&pppppppuStack_144" identifier = (cast_expression "(uint *******)&pppppppuStack_144" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&pppppppuStack_144" & identifier))) ;) (do_statement "do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);" do (compound_statement "{\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            }" { (expression_statement "pppppppuVar22 = pppppppuVar16 + 1;" (assignment_expression "pppppppuVar22 = pppppppuVar16 + 1" identifier = (binary_expression "pppppppuVar16 + 1" identifier + number_literal)) ;) (expression_statement "pppppuVar31 = *ppppppuVar13;" (assignment_expression "pppppuVar31 = *ppppppuVar13" identifier = (pointer_expression "*ppppppuVar13" * identifier)) ;) (expression_statement "ppppppuVar32 = *pppppppuVar40;" (assignment_expression "ppppppuVar32 = *pppppppuVar40" identifier = (pointer_expression "*pppppppuVar40" * identifier)) ;) (expression_statement "ppppppuVar13 = ppppppuVar13 + 1;" (assignment_expression "ppppppuVar13 = ppppppuVar13 + 1" identifier = (binary_expression "ppppppuVar13 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar40 = pppppppuVar40 + 1;" (assignment_expression "pppppppuVar40 = pppppppuVar40 + 1" identifier = (binary_expression "pppppppuVar40 + 1" identifier + number_literal)) ;) (expression_statement "ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);" (assignment_expression "ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16)" identifier = (cast_expression "(uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16)" ( (binary_expression "~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16" (unary_expression "~((uint)ppppppuVar32 & (uint)pppppuVar31)" ~ (parenthesized_expression "((uint)ppppppuVar32 & (uint)pppppuVar31)" ( (binary_expression "(uint)ppppppuVar32 & (uint)pppppuVar31" (cast_expression "(uint)ppppppuVar32" ( (type_descriptor "uint" type_identifier) ) identifier) & (cast_expression "(uint)pppppuVar31" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) & (binary_expression "(uint)*pppppppuVar16" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )))) ;) (expression_statement "*pppppppuVar16 = ppppppuVar32;" (assignment_expression "*pppppppuVar16 = ppppppuVar32" (pointer_expression "*pppppppuVar16" * identifier) = identifier) ;) (expression_statement "pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);" (assignment_expression "pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32)" identifier = (cast_expression "(uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)pppppppuVar28 | (uint)ppppppuVar32)" ( (binary_expression "(uint)pppppppuVar28 | (uint)ppppppuVar32" (cast_expression "(uint)pppppppuVar28" ( (type_descriptor "uint" type_identifier) ) identifier) | (cast_expression "(uint)ppppppuVar32" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "pppppppuVar16 = pppppppuVar22;" (assignment_expression "pppppppuVar16 = pppppppuVar22" identifier = identifier) ;) }) while (parenthesized_expression "(&ppppppuStack_124 != pppppppuVar22)" ( (binary_expression "&ppppppuStack_124 != pppppppuVar22" (pointer_expression "&ppppppuStack_124" & identifier) != identifier) )) ;) }))) (if_statement "if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;" if (parenthesized_expression "(pppppppuVar28 == (uint *******)0x0)" ( (binary_expression "pppppppuVar28 == (uint *******)0x0" identifier == (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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_0001dcc8;" goto statement_identifier ;)) (goto_statement "goto LAB_0001e15c;" goto statement_identifier ;) })) (expression_statement "pppppppuStack_144 = (uint *******)0x0;" (assignment_expression "pppppppuStack_144 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }" else (compound_statement "{\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }" { (expression_statement "uStack_140 = 0;" (assignment_expression "uStack_140 = 0" identifier = number_literal) ;) (expression_statement "pppppppuStack_144 = (uint *******)0x0;" (assignment_expression "pppppppuStack_144 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "uStack_13c = 0;" (assignment_expression "uStack_13c = 0" identifier = number_literal) ;) (expression_statement "uStack_138 = 0;" (assignment_expression "uStack_138 = 0" identifier = number_literal) ;) (expression_statement "uStack_134 = 0;" (assignment_expression "uStack_134 = 0" identifier = number_literal) ;) (expression_statement "uStack_130 = 0;" (assignment_expression "uStack_130 = 0" identifier = number_literal) ;) (expression_statement "uStack_12c = 0;" (assignment_expression "uStack_12c = 0" identifier = number_literal) ;) (expression_statement "uStack_128 = 0;" (assignment_expression "uStack_128 = 0" identifier = number_literal) ;) (if_statement "if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;" if (parenthesized_expression "(((uint)pppppppuVar40 & 0x400) == 0)" ( (binary_expression "((uint)pppppppuVar40 & 0x400) == 0" (parenthesized_expression "((uint)pppppppuVar40 & 0x400)" ( (binary_expression "(uint)pppppppuVar40 & 0x400" (cast_expression "(uint)pppppppuVar40" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001dcc8;" goto statement_identifier ;)) (expression_statement "pppppppuStack_144 = (uint *******)0x400;" (assignment_expression "pppppppuStack_144 = (uint *******)0x400" identifier = (cast_expression "(uint *******)0x400" ( (type_descriptor "uint *******" type_identifier (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 ((uVar34 & 0x80) == 0) goto LAB_0001e07c;" if (parenthesized_expression "((uVar34 & 0x80) == 0)" ( (binary_expression "(uVar34 & 0x80) == 0" (parenthesized_expression "(uVar34 & 0x80)" ( (binary_expression "uVar34 & 0x80" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001e07c;" goto statement_identifier ;)) (labeled_statement "LAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;" statement_identifier : (expression_statement "pppppppuStack_144 = (uint *******)0x0;" (assignment_expression "pppppppuStack_144 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "pppppppuStack_144 = (uint *******)0x0;" (assignment_expression "pppppppuStack_144 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "uStack_140 = 0;" (assignment_expression "uStack_140 = 0" identifier = number_literal) ;) (expression_statement "uStack_13c = 0;" (assignment_expression "uStack_13c = 0" identifier = number_literal) ;) (expression_statement "uStack_138 = 0;" (assignment_expression "uStack_138 = 0" identifier = number_literal) ;) (expression_statement "uStack_134 = 0;" (assignment_expression "uStack_134 = 0" identifier = number_literal) ;) (expression_statement "uStack_130 = 0;" (assignment_expression "uStack_130 = 0" identifier = number_literal) ;) (expression_statement "uStack_12c = 0;" (assignment_expression "uStack_12c = 0" identifier = number_literal) ;) (expression_statement "uStack_128 = 0;" (assignment_expression "uStack_128 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if (bVar2 == 3) {\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }\n      if (bVar2 == 5) {\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      pppppppuVar28 = (uint *******)0xffffffff;\n      if (bVar2 == 7) {\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }" else (compound_statement "{\n      if (bVar2 == 3) {\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }\n      if (bVar2 == 5) {\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      pppppppuVar28 = (uint *******)0xffffffff;\n      if (bVar2 == 7) {\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }" { (if_statement "if (bVar2 == 3) {\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }" if (parenthesized_expression "(bVar2 == 3)" ( (binary_expression "bVar2 == 3" identifier == number_literal) )) (compound_statement "{\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }" { (expression_statement "pppppuVar31 = *ppppppuVar36;" (assignment_expression "pppppuVar31 = *ppppppuVar36" identifier = (pointer_expression "*ppppppuVar36" * identifier)) ;) (expression_statement "pppppppuVar40 = (uint *******)&pppppppuStack_144;" (assignment_expression "pppppppuVar40 = (uint *******)&pppppppuStack_144" identifier = (cast_expression "(uint *******)&pppppppuStack_144" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&pppppppuStack_144" & identifier))) ;) (do_statement "do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);" do (compound_statement "{\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        }" { (expression_statement "pppppppuVar16 = pppppppuVar40 + 1;" (assignment_expression "pppppppuVar16 = pppppppuVar40 + 1" identifier = (binary_expression "pppppppuVar40 + 1" identifier + number_literal)) ;) (expression_statement "ppppuVar30 = *pppppuVar31;" (assignment_expression "ppppuVar30 = *pppppuVar31" identifier = (pointer_expression "*pppppuVar31" * identifier)) ;) (expression_statement "pppppuVar31 = pppppuVar31 + 1;" (assignment_expression "pppppuVar31 = pppppuVar31 + 1" identifier = (binary_expression "pppppuVar31 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);" (assignment_expression "pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30)" identifier = (cast_expression "(uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)*pppppppuVar40 | (uint)ppppuVar30)" ( (binary_expression "(uint)*pppppppuVar40 | (uint)ppppuVar30" (binary_expression "(uint)*pppppppuVar40" (parenthesized_expression "(uint)" ( identifier )) * identifier) | (cast_expression "(uint)ppppuVar30" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "*pppppppuVar40 = (uint ******)pppppppuVar28;" (assignment_expression "*pppppppuVar40 = (uint ******)pppppppuVar28" (pointer_expression "*pppppppuVar40" * identifier) = (cast_expression "(uint ******)pppppppuVar28" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "pppppppuVar40 = pppppppuVar16;" (assignment_expression "pppppppuVar40 = pppppppuVar16" identifier = identifier) ;) }) while (parenthesized_expression "(&ppppppuStack_124 != pppppppuVar16)" ( (binary_expression "&ppppppuStack_124 != pppppppuVar16" (pointer_expression "&ppppppuStack_124" & identifier) != identifier) )) ;) (goto_statement "goto LAB_0001e060;" goto statement_identifier ;) })) (if_statement "if (bVar2 == 5) {\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }" if (parenthesized_expression "(bVar2 == 5)" ( (binary_expression "bVar2 == 5" identifier == number_literal) )) (compound_statement "{\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }" { (if_statement "if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }" if (parenthesized_expression "((int)pppppppuVar19[0x17] < 2)" ( (binary_expression "(int)pppppppuVar19[0x17] < 2" (cast_expression "(int)pppppppuVar19[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppuVar19[0x17]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }" { (expression_statement "pppppppuStack_144 = (uint *******)0xffffffff;" (assignment_expression "pppppppuStack_144 = (uint *******)0xffffffff" identifier = (cast_expression "(uint *******)0xffffffff" ( (type_descriptor "uint *******" type_identifier (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 "uStack_140 = 0xffffffff;" (assignment_expression "uStack_140 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uStack_13c = 0xffffffff;" (assignment_expression "uStack_13c = 0xffffffff" identifier = number_literal) ;) (expression_statement "uStack_138 = 0xffffffff;" (assignment_expression "uStack_138 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uStack_134 = 0xffffffff;" (assignment_expression "uStack_134 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uStack_130 = 0xffffffff;" (assignment_expression "uStack_130 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uStack_12c = 0xffffffff;" (assignment_expression "uStack_12c = 0xffffffff" identifier = number_literal) ;) (expression_statement "uStack_128 = 0xffffffff;" (assignment_expression "uStack_128 = 0xffffffff" identifier = number_literal) ;) }) (else_clause "else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }" else (compound_statement "{\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }" { (expression_statement "ppppppuVar13 = pppppppuVar19[0xf];" (assignment_expression "ppppppuVar13 = pppppppuVar19[0xf]" identifier = (subscript_expression "pppppppuVar19[0xf]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar40 = (uint *******)&pppppppuStack_144;" (assignment_expression "pppppppuVar40 = (uint *******)&pppppppuStack_144" identifier = (cast_expression "(uint *******)&pppppppuStack_144" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&pppppppuStack_144" & identifier))) ;) (do_statement "do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);" do (compound_statement "{\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          }" { (expression_statement "pppppppuVar16 = pppppppuVar40 + 1;" (assignment_expression "pppppppuVar16 = pppppppuVar40 + 1" identifier = (binary_expression "pppppppuVar40 + 1" identifier + number_literal)) ;) (expression_statement "pppppuVar31 = *ppppppuVar13;" (assignment_expression "pppppuVar31 = *ppppppuVar13" identifier = (pointer_expression "*ppppppuVar13" * identifier)) ;) (expression_statement "ppppppuVar13 = ppppppuVar13 + 1;" (assignment_expression "ppppppuVar13 = ppppppuVar13 + 1" identifier = (binary_expression "ppppppuVar13 + 1" identifier + number_literal)) ;) (expression_statement "*pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);" (assignment_expression "*pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31)" (pointer_expression "*pppppppuVar40" * identifier) = (cast_expression "(uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((uint)*pppppppuVar40 | (uint)pppppuVar31)" ( (binary_expression "(uint)*pppppppuVar40 | (uint)pppppuVar31" (binary_expression "(uint)*pppppppuVar40" (parenthesized_expression "(uint)" ( identifier )) * identifier) | (cast_expression "(uint)pppppuVar31" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "pppppppuVar40 = pppppppuVar16;" (assignment_expression "pppppppuVar40 = pppppppuVar16" identifier = identifier) ;) }) while (parenthesized_expression "(&ppppppuStack_124 != pppppppuVar16)" ( (binary_expression "&ppppppuStack_124 != pppppppuVar16" (pointer_expression "&ppppppuStack_124" & identifier) != identifier) )) ;) }))) (expression_statement "ppppppuVar13 = pppppppuVar19[0x20];" (assignment_expression "ppppppuVar13 = pppppppuVar19[0x20]" identifier = (subscript_expression "pppppppuVar19[0x20]" identifier [ number_literal ])) ;) (labeled_statement "joined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }" statement_identifier : (if_statement "if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }" if (parenthesized_expression "(((uint)ppppppuVar13 & 0x40) == 0)" ( (binary_expression "((uint)ppppppuVar13 & 0x40) == 0" (parenthesized_expression "((uint)ppppppuVar13 & 0x40)" ( (binary_expression "(uint)ppppppuVar13 & 0x40" (cast_expression "(uint)ppppppuVar13" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }" { (expression_statement "pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);" (assignment_expression "pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff)" identifier = (cast_expression "(uint *******)((uint)pppppppuStack_144 & 0xfffffbff)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)pppppppuStack_144 & 0xfffffbff)" ( (binary_expression "(uint)pppppppuStack_144 & 0xfffffbff" (cast_expression "(uint)pppppppuStack_144" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) }))) (expression_statement "pppppppuVar28 = pppppppuStack_144;" (assignment_expression "pppppppuVar28 = pppppppuStack_144" identifier = identifier) ;) (if_statement "if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }" if (parenthesized_expression "(((uint)ppppppuVar13 & 0x80) != 0)" ( (binary_expression "((uint)ppppppuVar13 & 0x80) != 0" (parenthesized_expression "((uint)ppppppuVar13 & 0x80)" ( (binary_expression "(uint)ppppppuVar13 & 0x80" (cast_expression "(uint)ppppppuVar13" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }" { (expression_statement "pppppppuVar28 = (uint *******)&SUB_fffffffe;" (assignment_expression "pppppppuVar28 = (uint *******)&SUB_fffffffe" identifier = (cast_expression "(uint *******)&SUB_fffffffe" ( (type_descriptor "uint *******" type_identifier (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))) ;) (expression_statement "pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);" (assignment_expression "pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe)" identifier = (cast_expression "(uint *******)((uint)pppppppuStack_144 & 0xfffffffe)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)pppppppuStack_144 & 0xfffffffe)" ( (binary_expression "(uint)pppppppuStack_144 & 0xfffffffe" (cast_expression "(uint)pppppppuStack_144" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) })) (goto_statement "goto LAB_0001e060;" goto statement_identifier ;) })) (expression_statement "pppppppuVar28 = (uint *******)0xffffffff;" (assignment_expression "pppppppuVar28 = (uint *******)0xffffffff" identifier = (cast_expression "(uint *******)0xffffffff" ( (type_descriptor "uint *******" type_identifier (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 (bVar2 == 7) {\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }" if (parenthesized_expression "(bVar2 == 7)" ( (binary_expression "bVar2 == 7" identifier == number_literal) )) (compound_statement "{\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }" { (expression_statement "ppppppuVar13 = pppppppuVar19[0x20];" (assignment_expression "ppppppuVar13 = pppppppuVar19[0x20]" identifier = (subscript_expression "pppppppuVar19[0x20]" identifier [ number_literal ])) ;) (expression_statement "pppppppuStack_144 = (uint *******)0xffffffff;" (assignment_expression "pppppppuStack_144 = (uint *******)0xffffffff" identifier = (cast_expression "(uint *******)0xffffffff" ( (type_descriptor "uint *******" type_identifier (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 "uStack_140 = 0xffffffff;" (assignment_expression "uStack_140 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uStack_13c = 0xffffffff;" (assignment_expression "uStack_13c = 0xffffffff" identifier = number_literal) ;) (expression_statement "uStack_138 = 0xffffffff;" (assignment_expression "uStack_138 = 0xffffffff" identifier = number_literal) ;) (goto_statement "goto joined_r0x0001e3b8;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_0001dcc8:\n    iStack_184 = iStack_184 + 1;" statement_identifier : (expression_statement "iStack_184 = iStack_184 + 1;" (assignment_expression "iStack_184 = iStack_184 + 1" identifier = (binary_expression "iStack_184 + 1" identifier + number_literal)) ;)) (if_statement "if ((int)ppppppuVar20 <= iStack_184) goto code_r0x0001dcdc;" if (parenthesized_expression "((int)ppppppuVar20 <= iStack_184)" ( (binary_expression "(int)ppppppuVar20 <= iStack_184" (cast_expression "(int)ppppppuVar20" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (goto_statement "goto code_r0x0001dcdc;" goto statement_identifier ;)) (goto_statement "goto LAB_0001dc74;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar46 + 0x1e790))(iVar25);" (call_expression "(**(code **)(pcVar46 + 0x1e790))(iVar25)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e790)" * (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier ))) ;) (goto_statement "goto LAB_0001e824;" goto statement_identifier ;) (labeled_statement "code_r0x0001dcdc:\n  if (0 < (int)pppppppuVar24) {\n    pbVar8 = (byte *)((int)pppppppuVar24 + 1);\n    uStack_14c = 0;\n    pbStack_150 = pbVar8;\n    iVar5 = (**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4);\n    iStack_148 = iVar5;\n    if ((iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)) {\n      iStack_178 = (int)pppppppuVar24 << 1;\n    }\n    else {\n      iStack_178 = (int)pppppppuVar24 * 2;\n      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);\n      if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }\n    }\nLAB_0001e674:\n    (**(code **)(pcVar46 + 0x1e790))(iVar5);\n    iVar5 = iVar25;\n    do {\n      iVar35 = iVar5 + 0xc;\n      (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n      iVar5 = iVar35;\n    } while (iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25);\n    (**(code **)(pcVar46 + 0x1e790))(iVar25);\nLAB_0001dffc:\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }" statement_identifier : (if_statement "if (0 < (int)pppppppuVar24) {\n    pbVar8 = (byte *)((int)pppppppuVar24 + 1);\n    uStack_14c = 0;\n    pbStack_150 = pbVar8;\n    iVar5 = (**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4);\n    iStack_148 = iVar5;\n    if ((iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)) {\n      iStack_178 = (int)pppppppuVar24 << 1;\n    }\n    else {\n      iStack_178 = (int)pppppppuVar24 * 2;\n      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);\n      if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }\n    }\nLAB_0001e674:\n    (**(code **)(pcVar46 + 0x1e790))(iVar5);\n    iVar5 = iVar25;\n    do {\n      iVar35 = iVar5 + 0xc;\n      (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n      iVar5 = iVar35;\n    } while (iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25);\n    (**(code **)(pcVar46 + 0x1e790))(iVar25);\nLAB_0001dffc:\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }" if (parenthesized_expression "(0 < (int)pppppppuVar24)" ( (binary_expression "0 < (int)pppppppuVar24" number_literal < (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    pbVar8 = (byte *)((int)pppppppuVar24 + 1);\n    uStack_14c = 0;\n    pbStack_150 = pbVar8;\n    iVar5 = (**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4);\n    iStack_148 = iVar5;\n    if ((iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)) {\n      iStack_178 = (int)pppppppuVar24 << 1;\n    }\n    else {\n      iStack_178 = (int)pppppppuVar24 * 2;\n      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);\n      if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }\n    }\nLAB_0001e674:\n    (**(code **)(pcVar46 + 0x1e790))(iVar5);\n    iVar5 = iVar25;\n    do {\n      iVar35 = iVar5 + 0xc;\n      (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n      iVar5 = iVar35;\n    } while (iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25);\n    (**(code **)(pcVar46 + 0x1e790))(iVar25);\nLAB_0001dffc:\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }" { (expression_statement "pbVar8 = (byte *)((int)pppppppuVar24 + 1);" (assignment_expression "pbVar8 = (byte *)((int)pppppppuVar24 + 1)" identifier = (cast_expression "(byte *)((int)pppppppuVar24 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppuVar24 + 1)" ( (binary_expression "(int)pppppppuVar24 + 1" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uStack_14c = 0;" (assignment_expression "uStack_14c = 0" identifier = number_literal) ;) (expression_statement "pbStack_150 = pbVar8;" (assignment_expression "pbStack_150 = pbVar8" identifier = identifier) ;) (expression_statement "iVar5 = (**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4);" (assignment_expression "iVar5 = (**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4)" identifier = (call_expression "(**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e724))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e724)" * (pointer_expression "*(code **)(pcVar46 + 0x1e724)" * (cast_expression "(code **)(pcVar46 + 0x1e724)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e724)" ( (binary_expression "pcVar46 + 0x1e724" identifier + number_literal) ))))) )) (argument_list "((int)pbVar8 * 4)" ( (binary_expression "(int)pbVar8 * 4" (cast_expression "(int)pbVar8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "iStack_148 = iVar5;" (assignment_expression "iStack_148 = iVar5" identifier = identifier) ;) (if_statement "if ((iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)) {\n      iStack_178 = (int)pppppppuVar24 << 1;\n    }\n    else {\n      iStack_178 = (int)pppppppuVar24 * 2;\n      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);\n      if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }\n    }" if (parenthesized_expression "((iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24))" ( (binary_expression "(iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)" ( (comma_expression "iStack_154 = 0, 0x155551aa < (int)pppppppuVar24" (assignment_expression "iStack_154 = 0" identifier = number_literal) , (binary_expression "0x155551aa < (int)pppppppuVar24" number_literal < (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n      iStack_178 = (int)pppppppuVar24 << 1;\n    }" { (expression_statement "iStack_178 = (int)pppppppuVar24 << 1;" (assignment_expression "iStack_178 = (int)pppppppuVar24 << 1" identifier = (binary_expression "(int)pppppppuVar24 << 1" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) }) (else_clause "else {\n      iStack_178 = (int)pppppppuVar24 * 2;\n      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);\n      if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }\n    }" else (compound_statement "{\n      iStack_178 = (int)pppppppuVar24 * 2;\n      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);\n      if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }\n    }" { (expression_statement "iStack_178 = (int)pppppppuVar24 * 2;" (assignment_expression "iStack_178 = (int)pppppppuVar24 * 2" identifier = (binary_expression "(int)pppppppuVar24 * 2" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);" (assignment_expression "puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e724))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e724)" * (pointer_expression "*(code **)(pcVar46 + 0x1e724)" * (cast_expression "(code **)(pcVar46 + 0x1e724)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e724)" ( (binary_expression "pcVar46 + 0x1e724" identifier + number_literal) ))))) )) (argument_list "((int)pppppppuVar24 * 0xc)" ( (binary_expression "(int)pppppppuVar24 * 0xc" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))))) ;) (if_statement "if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }" if (parenthesized_expression "(puVar9 != (undefined4 *)0x0)" ( (binary_expression "puVar9 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }" { (expression_statement "iVar5 = (int)pbVar8 * 4 + -4;" (assignment_expression "iVar5 = (int)pbVar8 * 4 + -4" identifier = (binary_expression "(int)pbVar8 * 4 + -4" (binary_expression "(int)pbVar8 * 4" (cast_expression "(int)pbVar8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal)) ;) (expression_statement "ppiVar37 = &piStack_104;" (assignment_expression "ppiVar37 = &piStack_104" identifier = (pointer_expression "&piStack_104" & identifier)) ;) (expression_statement "iVar41 = 0;" (assignment_expression "iVar41 = 0" identifier = number_literal) ;) (expression_statement "puVar17 = puVar9 + (int)pppppppuVar24;" (assignment_expression "puVar17 = puVar9 + (int)pppppppuVar24" identifier = (binary_expression "puVar9 + (int)pppppppuVar24" identifier + (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "piStack_104 = (int *)0x0;" (assignment_expression "piStack_104 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar39 = (int *)(iVar25 + 4);" (assignment_expression "piVar39 = (int *)(iVar25 + 4)" identifier = (cast_expression "(int *)(iVar25 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 4)" ( (binary_expression "iVar25 + 4" identifier + number_literal) )))) ;) (expression_statement "uStack_100 = 0;" (assignment_expression "uStack_100 = 0" identifier = number_literal) ;) (expression_statement "uStack_fc = 0;" (assignment_expression "uStack_fc = 0" identifier = number_literal) ;) (expression_statement "iVar35 = *(int *)(pcVar46 + 0x1e658);" (assignment_expression "iVar35 = *(int *)(pcVar46 + 0x1e658)" identifier = (pointer_expression "*(int *)(pcVar46 + 0x1e658)" * (cast_expression "(int *)(pcVar46 + 0x1e658)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar46 + 0x1e658)" ( (binary_expression "pcVar46 + 0x1e658" identifier + number_literal) ))))) ;) (expression_statement "uStack_f8 = 0;" (assignment_expression "uStack_f8 = 0" identifier = number_literal) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (expression_statement "uStack_f4 = 0;" (assignment_expression "uStack_f4 = 0" identifier = number_literal) ;) (expression_statement "uStack_f0 = 0;" (assignment_expression "uStack_f0 = 0" identifier = number_literal) ;) (expression_statement "uStack_ec = 0;" (assignment_expression "uStack_ec = 0" identifier = number_literal) ;) (expression_statement "uStack_e8 = 0;" (assignment_expression "uStack_e8 = 0" identifier = number_literal) ;) (expression_statement "pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);" (assignment_expression "pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4)" identifier = (cast_expression "(code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar46 + 0x1e658) + -0x42b4)" ( (binary_expression "*(int *)(pcVar46 + 0x1e658) + -0x42b4" (pointer_expression "*(int *)(pcVar46 + 0x1e658)" * (cast_expression "(int *)(pcVar46 + 0x1e658)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar46 + 0x1e658)" ( (binary_expression "pcVar46 + 0x1e658" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);" do (compound_statement "{\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        }" { (expression_statement "iVar23 = *piVar39;" (assignment_expression "iVar23 = *piVar39" identifier = (pointer_expression "*piVar39" * identifier)) ;) (expression_statement "iVar42 = 0;" (assignment_expression "iVar42 = 0" identifier = number_literal) ;) (expression_statement "uStack_14c = 0;" (assignment_expression "uStack_14c = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }" if (parenthesized_expression "(0 < iVar23)" ( (binary_expression "0 < iVar23" number_literal < identifier) )) (compound_statement "{\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }" { (do_statement "do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);" do (compound_statement "{\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            }" { (if_statement "if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }" if (parenthesized_expression "(pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff)" ( (binary_expression "pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff" (subscript_expression "pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)]" (subscript_expression "pppppppuVar19[3]" identifier [ number_literal ]) [ (pointer_expression "*(int *)(piVar39[1] + iVar42 * 4)" * (cast_expression "(int *)(piVar39[1] + iVar42 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar39[1] + iVar42 * 4)" ( (binary_expression "piVar39[1] + iVar42 * 4" (subscript_expression "piVar39[1]" identifier [ number_literal ]) + (binary_expression "iVar42 * 4" identifier * number_literal)) )))) ]) != (cast_expression "(uint *****)0xffffffff" ( (type_descriptor "uint *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }" { (expression_statement "pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);" (assignment_expression "pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3)" identifier = (cast_expression "(uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3)" ( (binary_expression "pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3" (subscript_expression "pppppppuVar19[6]" identifier [ number_literal ]) + (binary_expression "(int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3" (cast_expression "(int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)]" (subscript_expression "pppppppuVar19[3]" identifier [ number_literal ]) [ (pointer_expression "*(int *)(piVar39[1] + iVar42 * 4)" * (cast_expression "(int *)(piVar39[1] + iVar42 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar39[1] + iVar42 * 4)" ( (binary_expression "piVar39[1] + iVar42 * 4" (subscript_expression "piVar39[1]" identifier [ number_literal ]) + (binary_expression "iVar42 * 4" identifier * number_literal)) )))) ])) * number_literal)) )))) ;) (expression_statement "iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);" (assignment_expression "iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150)" identifier = (call_expression "(*(code *)(iVar35 + -0x55b4))(&pbStack_150)" (parenthesized_expression "(*(code *)(iVar35 + -0x55b4))" ( (pointer_expression "*(code *)(iVar35 + -0x55b4)" * (cast_expression "(code *)(iVar35 + -0x55b4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + -0x55b4)" ( (binary_expression "iVar35 + -0x55b4" identifier + number_literal) )))) )) (argument_list "(&pbStack_150)" ( (pointer_expression "&pbStack_150" & identifier) )))) ;) (if_statement "if (iStack_154 != 0) goto LAB_0001e660;" if (parenthesized_expression "(iStack_154 != 0)" ( (binary_expression "iStack_154 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001e660;" goto statement_identifier ;)) (expression_statement "iVar23 = *piVar39;" (assignment_expression "iVar23 = *piVar39" identifier = (pointer_expression "*piVar39" * identifier)) ;) })) (expression_statement "iVar42 = iVar42 + 1;" (assignment_expression "iVar42 = iVar42 + 1" identifier = (binary_expression "iVar42 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar42 < iVar23)" ( (binary_expression "iVar42 < iVar23" identifier < identifier) )) ;) })) (expression_statement "pppppppuVar28 = pppppppuVar19;" (assignment_expression "pppppppuVar28 = pppppppuVar19" identifier = identifier) ;) (expression_statement "iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);" (assignment_expression "iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0)" identifier = (call_expression "(*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(&iStack_154,pppppppuVar19,&pbStack_150,0)" ( (pointer_expression "&iStack_154" & identifier) , identifier , (pointer_expression "&pbStack_150" & identifier) , number_literal )))) ;) (expression_statement "*(int *)((int)puVar9 + iVar41) = iVar23;" (assignment_expression "*(int *)((int)puVar9 + iVar41) = iVar23" (pointer_expression "*(int *)((int)puVar9 + iVar41)" * (cast_expression "(int *)((int)puVar9 + iVar41)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + iVar41)" ( (binary_expression "(int)puVar9 + iVar41" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (if_statement "if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;" if (parenthesized_expression "((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))" ( (binary_expression "(iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0)" (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) && (parenthesized_expression "(pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0)" ( (comma_expression "pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0" (assignment_expression "pcVar44 = *(code **)(pcVar46 + 0x1e790)" identifier = (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) , (binary_expression "iStack_154 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0001e664;" goto statement_identifier ;)) (if_statement "if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }" if (parenthesized_expression "((*(byte *)(iVar23 + 0x34) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar23 + 0x34) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar23 + 0x34) & 1)" ( (binary_expression "*(byte *)(iVar23 + 0x34) & 1" (pointer_expression "*(byte *)(iVar23 + 0x34)" * (cast_expression "(byte *)(iVar23 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x34)" ( (binary_expression "iVar23 + 0x34" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }" { (expression_statement "*(int *)((int)puVar17 + iVar41) = iVar23;" (assignment_expression "*(int *)((int)puVar17 + iVar41) = iVar23" (pointer_expression "*(int *)((int)puVar17 + iVar41)" * (cast_expression "(int *)((int)puVar17 + iVar41)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + iVar41)" ( (binary_expression "(int)puVar17 + iVar41" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "*(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;" (assignment_expression "*(int *)((int)puVar17 + iVar41 + iVar5) = iVar23" (pointer_expression "*(int *)((int)puVar17 + iVar41 + iVar5)" * (cast_expression "(int *)((int)puVar17 + iVar41 + iVar5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + iVar41 + iVar5)" ( (binary_expression "(int)puVar17 + iVar41 + iVar5" (binary_expression "(int)puVar17 + iVar41" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) )))) = identifier) ;) }) (else_clause "else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }" else (compound_statement "{\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }" { (expression_statement "pppppppuVar28 = pppppppuVar19;" (assignment_expression "pppppppuVar28 = pppppppuVar19" identifier = identifier) ;) (expression_statement "iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);" (assignment_expression "iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1)" identifier = (call_expression "(*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(&iStack_154,pppppppuVar19,&pbStack_150,1)" ( (pointer_expression "&iStack_154" & identifier) , identifier , (pointer_expression "&pbStack_150" & identifier) , number_literal )))) ;) (expression_statement "*(int *)((int)puVar17 + iVar41) = iVar23;" (assignment_expression "*(int *)((int)puVar17 + iVar41) = iVar23" (pointer_expression "*(int *)((int)puVar17 + iVar41)" * (cast_expression "(int *)((int)puVar17 + iVar41)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + iVar41)" ( (binary_expression "(int)puVar17 + iVar41" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (if_statement "if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;" if (parenthesized_expression "((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))" ( (binary_expression "(iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0)" (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) && (parenthesized_expression "(pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0)" ( (comma_expression "pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0" (assignment_expression "pcVar44 = *(code **)(pcVar46 + 0x1e790)" identifier = (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) , (binary_expression "iStack_154 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0001e664;" goto statement_identifier ;)) (if_statement "if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }" if (parenthesized_expression "((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17]))" ( (binary_expression "(iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])" (parenthesized_expression "(iVar23 != *(int *)((int)puVar9 + iVar41))" ( (binary_expression "iVar23 != *(int *)((int)puVar9 + iVar41)" identifier != (pointer_expression "*(int *)((int)puVar9 + iVar41)" * (cast_expression "(int *)((int)puVar9 + iVar41)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + iVar41)" ( (binary_expression "(int)puVar9 + iVar41" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) )) && (parenthesized_expression "(1 < (int)pppppppuVar19[0x17])" ( (binary_expression "1 < (int)pppppppuVar19[0x17]" number_literal < (cast_expression "(int)pppppppuVar19[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppuVar19[0x17]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n              bVar3 = true;\n            }" { (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) })) (expression_statement "pppppppuVar28 = pppppppuVar19;" (assignment_expression "pppppppuVar28 = pppppppuVar19" identifier = identifier) ;) (expression_statement "iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);" (assignment_expression "iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2)" identifier = (call_expression "(*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(&iStack_154,pppppppuVar19,&pbStack_150,2)" ( (pointer_expression "&iStack_154" & identifier) , identifier , (pointer_expression "&pbStack_150" & identifier) , number_literal )))) ;) (expression_statement "*(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;" (assignment_expression "*(int *)((int)puVar17 + iVar41 + iVar5) = iVar23" (pointer_expression "*(int *)((int)puVar17 + iVar41 + iVar5)" * (cast_expression "(int *)((int)puVar17 + iVar41 + iVar5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + iVar41 + iVar5)" ( (binary_expression "(int)puVar17 + iVar41 + iVar5" (binary_expression "(int)puVar17 + iVar41" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) )))) = identifier) ;) (if_statement "if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;" if (parenthesized_expression "((iVar23 == 0) && (iStack_154 != 0))" ( (binary_expression "(iVar23 == 0) && (iStack_154 != 0)" (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) && (parenthesized_expression "(iStack_154 != 0)" ( (binary_expression "iStack_154 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_0001e660;" goto statement_identifier ;)) }))) (expression_statement "iVar23 = iVar41 * 8 + iVar25;" (assignment_expression "iVar23 = iVar41 * 8 + iVar25" identifier = (binary_expression "iVar41 * 8 + iVar25" (binary_expression "iVar41 * 8" identifier * number_literal) + identifier)) ;) (expression_statement "ppiVar11 = ppiVar37;" (assignment_expression "ppiVar11 = ppiVar37" identifier = identifier) ;) (do_statement "do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);" do (compound_statement "{\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          }" { (expression_statement "ppiVar12 = ppiVar11 + 1;" (assignment_expression "ppiVar12 = ppiVar11 + 1" identifier = (binary_expression "ppiVar11 + 1" identifier + number_literal)) ;) (expression_statement "puVar14 = (uint *)(iVar23 + 0xc00);" (assignment_expression "puVar14 = (uint *)(iVar23 + 0xc00)" identifier = (cast_expression "(uint *)(iVar23 + 0xc00)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0xc00)" ( (binary_expression "iVar23 + 0xc00" identifier + number_literal) )))) ;) (expression_statement "iVar23 = iVar23 + 4;" (assignment_expression "iVar23 = iVar23 + 4" identifier = (binary_expression "iVar23 + 4" identifier + number_literal)) ;) (expression_statement "*ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);" (assignment_expression "*ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14)" (pointer_expression "*ppiVar11" * identifier) = (cast_expression "(int *)((uint)*ppiVar11 | *puVar14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)*ppiVar11 | *puVar14)" ( (binary_expression "(uint)*ppiVar11 | *puVar14" (binary_expression "(uint)*ppiVar11" (parenthesized_expression "(uint)" ( identifier )) * identifier) | (pointer_expression "*puVar14" * identifier)) )))) ;) (expression_statement "ppiVar11 = ppiVar12;" (assignment_expression "ppiVar11 = ppiVar12" identifier = identifier) ;) }) while (parenthesized_expression "(&piStack_e4 != ppiVar12)" ( (binary_expression "&piStack_e4 != ppiVar12" (pointer_expression "&piStack_e4" & identifier) != identifier) )) ;) (expression_statement "iVar41 = iVar41 + 4;" (assignment_expression "iVar41 = iVar41 + 4" identifier = (binary_expression "iVar41 + 4" identifier + number_literal)) ;) (expression_statement "piVar39 = piVar39 + 3;" (assignment_expression "piVar39 = piVar39 + 3" identifier = (binary_expression "piVar39 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 != iVar41)" ( (binary_expression "iVar5 != iVar41" identifier != identifier) )) ;) (if_statement "if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }" { (expression_statement "pppppppuVar28 = (uint *******)0x200;" (assignment_expression "pppppppuVar28 = (uint *******)0x200" identifier = (cast_expression "(uint *******)0x200" ( (type_descriptor "uint *******" type_identifier (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 "ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);" (assignment_expression "ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4)" identifier = (cast_expression "(uint ******)(**(code **)(pcVar46 + 0x1e688))(4)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(pcVar46 + 0x1e688))(4)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e688))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e688)" * (pointer_expression "*(code **)(pcVar46 + 0x1e688)" * (cast_expression "(code **)(pcVar46 + 0x1e688)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e688)" ( (binary_expression "pcVar46 + 0x1e688" identifier + number_literal) ))))) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "pppppppuVar18[0xc] = ppppppuVar20;" (assignment_expression "pppppppuVar18[0xc] = ppppppuVar20" (subscript_expression "pppppppuVar18[0xc]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;" if (parenthesized_expression "(ppppppuVar20 == (uint ******)0x0)" ( (binary_expression "ppppppuVar20 == (uint ******)0x0" identifier == (cast_expression "(uint ******)0x0" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_0001e660;" goto statement_identifier ;)) (expression_statement "iVar5 = iVar25;" (assignment_expression "iVar5 = iVar25" identifier = identifier) ;) (expression_statement "ppppppuVar36 = ppppppuVar20;" (assignment_expression "ppppppuVar36 = ppppppuVar20" identifier = identifier) ;) (do_statement "do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);" do (compound_statement "{\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          }" { (expression_statement "piVar39 = *ppiVar37;" (assignment_expression "piVar39 = *ppiVar37" identifier = (pointer_expression "*ppiVar37" * identifier)) ;) (if_statement "if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }" if (parenthesized_expression "(piVar39 != (int *)0x0)" ( (binary_expression "piVar39 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }" { (expression_statement "pppppppuVar28 = (uint *******)0x1;" (assignment_expression "pppppppuVar28 = (uint *******)0x1" identifier = (cast_expression "(uint *******)0x1" ( (type_descriptor "uint *******" type_identifier (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 "ppppppuVar13 = ppppppuVar36;" (assignment_expression "ppppppuVar13 = ppppppuVar36" identifier = identifier) ;) (do_statement "do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);" do (compound_statement "{\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              }" { (if_statement "if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }" if (parenthesized_expression "(((uint)piVar39 & 1) != 0)" ( (binary_expression "((uint)piVar39 & 1) != 0" (parenthesized_expression "((uint)piVar39 & 1)" ( (binary_expression "(uint)piVar39 & 1" (cast_expression "(uint)piVar39" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }" { (expression_statement "iVar41 = 0;" (assignment_expression "iVar41 = 0" identifier = number_literal) ;) (expression_statement "puVar21 = puVar17;" (assignment_expression "puVar21 = puVar17" identifier = identifier) ;) (expression_statement "puVar27 = puVar9;" (assignment_expression "puVar27 = puVar9" identifier = identifier) ;) (expression_statement "iVar35 = iVar5;" (assignment_expression "iVar35 = iVar5" identifier = identifier) ;) (if_statement "if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }" if (parenthesized_expression "(((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0)" ( (binary_expression "((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0" (parenthesized_expression "((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00))" ( (binary_expression "(uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)" (cast_expression "(uint)pppppppuVar28" ( (type_descriptor "uint" type_identifier) ) identifier) & (pointer_expression "*(uint *)(iVar5 + 0xc00)" * (cast_expression "(uint *)(iVar5 + 0xc00)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc00)" ( (binary_expression "iVar5 + 0xc00" identifier + number_literal) ))))) )) == number_literal) )) (compound_statement "{\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }" { (do_statement "do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);" do (compound_statement "{\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    }" { (expression_statement "puVar14 = (uint *)(iVar35 + 0xc20);" (assignment_expression "puVar14 = (uint *)(iVar35 + 0xc20)" identifier = (cast_expression "(uint *)(iVar35 + 0xc20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + 0xc20)" ( (binary_expression "iVar35 + 0xc20" identifier + number_literal) )))) ;) (expression_statement "iVar41 = iVar41 + 1;" (assignment_expression "iVar41 = iVar41 + 1" identifier = (binary_expression "iVar41 + 1" identifier + number_literal)) ;) (expression_statement "iVar35 = iVar35 + 0x20;" (assignment_expression "iVar35 = iVar35 + 0x20" identifier = (binary_expression "iVar35 + 0x20" identifier + number_literal)) ;) }) while (parenthesized_expression "(((uint)pppppppuVar28 & *puVar14) == 0)" ( (binary_expression "((uint)pppppppuVar28 & *puVar14) == 0" (parenthesized_expression "((uint)pppppppuVar28 & *puVar14)" ( (binary_expression "(uint)pppppppuVar28 & *puVar14" (cast_expression "(uint)pppppppuVar28" ( (type_descriptor "uint" type_identifier) ) identifier) & (pointer_expression "*puVar14" * identifier)) )) == number_literal) )) ;) (expression_statement "puVar21 = puVar17 + iVar41;" (assignment_expression "puVar21 = puVar17 + iVar41" identifier = (binary_expression "puVar17 + iVar41" identifier + identifier)) ;) (expression_statement "puVar27 = puVar9 + iVar41;" (assignment_expression "puVar27 = puVar9 + iVar41" identifier = (binary_expression "puVar9 + iVar41" identifier + identifier)) ;) })) (expression_statement "*ppppppuVar13 = (uint *****)*puVar27;" (assignment_expression "*ppppppuVar13 = (uint *****)*puVar27" (pointer_expression "*ppppppuVar13" * identifier) = (cast_expression "(uint *****)*puVar27" ( (type_descriptor "uint *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*puVar27" * identifier))) ;) (expression_statement "ppppppuVar13[0x100] = (uint *****)*puVar21;" (assignment_expression "ppppppuVar13[0x100] = (uint *****)*puVar21" (subscript_expression "ppppppuVar13[0x100]" identifier [ number_literal ]) = (cast_expression "(uint *****)*puVar21" ( (type_descriptor "uint *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*puVar21" * identifier))) ;) })) (expression_statement "piVar39 = (int *)((uint)piVar39 >> 1);" (assignment_expression "piVar39 = (int *)((uint)piVar39 >> 1)" identifier = (cast_expression "(int *)((uint)piVar39 >> 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)piVar39 >> 1)" ( (binary_expression "(uint)piVar39 >> 1" (cast_expression "(uint)piVar39" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);" (assignment_expression "pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar28 << 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar28 << 1)" ( (binary_expression "(int)pppppppuVar28 << 1" (cast_expression "(int)pppppppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "ppppppuVar13 = ppppppuVar13 + 1;" (assignment_expression "ppppppuVar13 = ppppppuVar13 + 1" identifier = (binary_expression "ppppppuVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar39 != (int *)0x0)" ( (binary_expression "piVar39 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "ppppppuVar36 = ppppppuVar36 + 0x20;" (assignment_expression "ppppppuVar36 = ppppppuVar36 + 0x20" identifier = (binary_expression "ppppppuVar36 + 0x20" identifier + number_literal)) ;) (expression_statement "ppiVar37 = ppiVar37 + 1;" (assignment_expression "ppiVar37 = ppiVar37 + 1" identifier = (binary_expression "ppiVar37 + 1" identifier + number_literal)) ;) (expression_statement "iVar5 = iVar5 + 4;" (assignment_expression "iVar5 = iVar5 + 4" identifier = (binary_expression "iVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppppppuVar20 + 0x100 != ppppppuVar36)" ( (binary_expression "ppppppuVar20 + 0x100 != ppppppuVar36" (binary_expression "ppppppuVar20 + 0x100" identifier + number_literal) != identifier) )) ;) }) (else_clause "else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }" else (compound_statement "{\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }" { (expression_statement "pppppppuVar28 = (uint *******)0x100;" (assignment_expression "pppppppuVar28 = (uint *******)0x100" identifier = (cast_expression "(uint *******)0x100" ( (type_descriptor "uint *******" type_identifier (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 "ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);" (assignment_expression "ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4)" identifier = (cast_expression "(uint ******)(**(code **)(pcVar46 + 0x1e688))(4)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(pcVar46 + 0x1e688))(4)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e688))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e688)" * (pointer_expression "*(code **)(pcVar46 + 0x1e688)" * (cast_expression "(code **)(pcVar46 + 0x1e688)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e688)" ( (binary_expression "pcVar46 + 0x1e688" identifier + number_literal) ))))) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "pppppppuVar18[0xb] = ppppppuVar20;" (assignment_expression "pppppppuVar18[0xb] = ppppppuVar20" (subscript_expression "pppppppuVar18[0xb]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }" if (parenthesized_expression "(ppppppuVar20 == (uint ******)0x0)" ( (binary_expression "ppppppuVar20 == (uint ******)0x0" identifier == (cast_expression "(uint ******)0x0" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }" { (labeled_statement "LAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);" statement_identifier : (expression_statement "pcVar44 = *(code **)(pcVar46 + 0x1e790);" (assignment_expression "pcVar44 = *(code **)(pcVar46 + 0x1e790)" identifier = (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0001e664:\n            (*pcVar44)(puVar9);" statement_identifier : (expression_statement "(*pcVar44)(puVar9);" (call_expression "(*pcVar44)(puVar9)" (parenthesized_expression "(*pcVar44)" ( (pointer_expression "*pcVar44" * identifier) )) (argument_list "(puVar9)" ( identifier ))) ;)) (expression_statement "iVar5 = iStack_148;" (assignment_expression "iVar5 = iStack_148" identifier = identifier) ;) (goto_statement "goto LAB_0001e674;" goto statement_identifier ;) })) (expression_statement "pppppppuVar19 = pppppppuVar19 + 0x18;" (assignment_expression "pppppppuVar19 = pppppppuVar19 + 0x18" identifier = (binary_expression "pppppppuVar19 + 0x18" identifier + number_literal)) ;) (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = iVar25;" (assignment_expression "iVar5 = iVar25" identifier = identifier) ;) (do_statement "do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);" do (compound_statement "{\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          }" { (expression_statement "pppppppuVar28 = (uint *******)0x1;" (assignment_expression "pppppppuVar28 = (uint *******)0x1" identifier = (cast_expression "(uint *******)0x1" ( (type_descriptor "uint *******" type_identifier (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 "iVar41 = iVar35;" (assignment_expression "iVar41 = iVar35" identifier = identifier) ;) (for_statement "for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }" for ( (assignment_expression "piVar39 = *ppiVar37" identifier = (pointer_expression "*ppiVar37" * identifier)) ; (binary_expression "piVar39 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "piVar39 = (int *)((uint)piVar39 >> 1)" identifier = (cast_expression "(int *)((uint)piVar39 >> 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)piVar39 >> 1)" ( (binary_expression "(uint)piVar39 >> 1" (cast_expression "(uint)piVar39" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ) (compound_statement "{\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }" { (if_statement "if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }" if (parenthesized_expression "(((uint)piVar39 & 1) != 0)" ( (binary_expression "((uint)piVar39 & 1) != 0" (parenthesized_expression "((uint)piVar39 & 1)" ( (binary_expression "(uint)piVar39 & 1" (cast_expression "(uint)piVar39" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }" { (expression_statement "iVar42 = 0;" (assignment_expression "iVar42 = 0" identifier = number_literal) ;) (expression_statement "iVar23 = iVar5;" (assignment_expression "iVar23 = iVar5" identifier = identifier) ;) (if_statement "if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }" if (parenthesized_expression "(((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0)" ( (binary_expression "((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0" (parenthesized_expression "((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00))" ( (binary_expression "(uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)" (cast_expression "(uint)pppppppuVar28" ( (type_descriptor "uint" type_identifier) ) identifier) & (pointer_expression "*(uint *)(iVar5 + 0xc00)" * (cast_expression "(uint *)(iVar5 + 0xc00)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc00)" ( (binary_expression "iVar5 + 0xc00" identifier + number_literal) ))))) )) == number_literal) )) (compound_statement "{\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }" { (do_statement "do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);" do (compound_statement "{\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  }" { (expression_statement "puVar14 = (uint *)(iVar23 + 0xc20);" (assignment_expression "puVar14 = (uint *)(iVar23 + 0xc20)" identifier = (cast_expression "(uint *)(iVar23 + 0xc20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0xc20)" ( (binary_expression "iVar23 + 0xc20" identifier + number_literal) )))) ;) (expression_statement "iVar42 = iVar42 + 1;" (assignment_expression "iVar42 = iVar42 + 1" identifier = (binary_expression "iVar42 + 1" identifier + number_literal)) ;) (expression_statement "iVar23 = iVar23 + 0x20;" (assignment_expression "iVar23 = iVar23 + 0x20" identifier = (binary_expression "iVar23 + 0x20" identifier + number_literal)) ;) }) while (parenthesized_expression "(((uint)pppppppuVar28 & *puVar14) == 0)" ( (binary_expression "((uint)pppppppuVar28 & *puVar14) == 0" (parenthesized_expression "((uint)pppppppuVar28 & *puVar14)" ( (binary_expression "(uint)pppppppuVar28 & *puVar14" (cast_expression "(uint)pppppppuVar28" ( (type_descriptor "uint" type_identifier) ) identifier) & (pointer_expression "*puVar14" * identifier)) )) == number_literal) )) ;) (expression_statement "iVar42 = iVar42 * 4;" (assignment_expression "iVar42 = iVar42 * 4" identifier = (binary_expression "iVar42 * 4" identifier * number_literal)) ;) })) (if_statement "if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }" if (parenthesized_expression "(((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0)" ( (binary_expression "((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0" (parenthesized_expression "((uint)pppppppuVar28 & (uint)*pppppppuVar19)" ( (binary_expression "(uint)pppppppuVar28 & (uint)*pppppppuVar19" (cast_expression "(uint)pppppppuVar28" ( (type_descriptor "uint" type_identifier) ) identifier) & (binary_expression "(uint)*pppppppuVar19" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )) == number_literal) )) (compound_statement "{\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }" { (expression_statement "ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);" (assignment_expression "ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42)" (subscript_expression "ppppppuVar20[iVar41]" identifier [ identifier ]) = (pointer_expression "*(uint ******)((int)puVar9 + iVar42)" * (cast_expression "(uint ******)((int)puVar9 + iVar42)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)puVar9 + iVar42)" ( (binary_expression "(int)puVar9 + iVar42" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) }) (else_clause "else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }" else (compound_statement "{\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }" { (expression_statement "ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);" (assignment_expression "ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42)" (subscript_expression "ppppppuVar20[iVar41]" identifier [ identifier ]) = (pointer_expression "*(uint ******)((int)puVar17 + iVar42)" * (cast_expression "(uint ******)((int)puVar17 + iVar42)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)puVar17 + iVar42)" ( (binary_expression "(int)puVar17 + iVar42" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) }))) })) (expression_statement "pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);" (assignment_expression "pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar28 << 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar28 << 1)" ( (binary_expression "(int)pppppppuVar28 << 1" (cast_expression "(int)pppppppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "iVar41 = iVar41 + 1;" (assignment_expression "iVar41 = iVar41 + 1" identifier = (binary_expression "iVar41 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar35 = iVar35 + 0x20;" (assignment_expression "iVar35 = iVar35 + 0x20" identifier = (binary_expression "iVar35 + 0x20" identifier + number_literal)) ;) (expression_statement "ppiVar37 = ppiVar37 + 1;" (assignment_expression "ppiVar37 = ppiVar37 + 1" identifier = (binary_expression "ppiVar37 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar19 = pppppppuVar19 + 1;" (assignment_expression "pppppppuVar19 = pppppppuVar19 + 1" identifier = (binary_expression "pppppppuVar19 + 1" identifier + number_literal)) ;) (expression_statement "iVar5 = iVar5 + 4;" (assignment_expression "iVar5 = iVar5 + 4" identifier = (binary_expression "iVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar35 != 0x100)" ( (binary_expression "iVar35 != 0x100" identifier != number_literal) )) ;) }))) (expression_statement "pcVar10 = *(code **)(pcVar46 + 0x1e790);" (assignment_expression "pcVar10 = *(code **)(pcVar46 + 0x1e790)" identifier = (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) ;) (if_statement "if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }" if (parenthesized_expression "((int)piStack_104 << 0x15 < 0)" ( (binary_expression "(int)piStack_104 << 0x15 < 0" (binary_expression "(int)piStack_104 << 0x15" (cast_expression "(int)piStack_104" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) < number_literal) )) (compound_statement "{\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }" { (expression_statement "pppppppuVar28 = (uint *******)0x0;" (assignment_expression "pppppppuVar28 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);" do (compound_statement "{\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          }" { (if_statement "if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }" if (parenthesized_expression "((*puVar7 & 0x400) != 0)" ( (binary_expression "(*puVar7 & 0x400) != 0" (parenthesized_expression "(*puVar7 & 0x400)" ( (binary_expression "*puVar7 & 0x400" (pointer_expression "*puVar7" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }" { (expression_statement "pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];" (assignment_expression "pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))]" identifier = (cast_expression "(uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))]" ( (type_descriptor "uint *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))]" identifier [ (cast_expression "(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar8 + (int)((int)pppppppuVar28 + -1))" ( (binary_expression "pbVar8 + (int)((int)pppppppuVar28 + -1)" identifier + (cast_expression "(int)((int)pppppppuVar28 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppppuVar28 + -1)" ( (binary_expression "(int)pppppppuVar28 + -1" (cast_expression "(int)pppppppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ]))) ;) (expression_statement "ppppppuVar20[10] = pppppuVar31;" (assignment_expression "ppppppuVar20[10] = pppppuVar31" (subscript_expression "ppppppuVar20[10]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }" { (expression_statement "ppppppuVar20[0x10a] = pppppuVar31;" (assignment_expression "ppppppuVar20[0x10a] = pppppuVar31" (subscript_expression "ppppppuVar20[0x10a]" identifier [ number_literal ]) = identifier) ;) })) (break_statement "break;" break ;) })) (expression_statement "pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);" (assignment_expression "pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar28 + 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar28 + 1)" ( (binary_expression "(int)pppppppuVar28 + 1" (cast_expression "(int)pppppppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar7 = puVar7 + 8;" (assignment_expression "puVar7 = puVar7 + 8" identifier = (binary_expression "puVar7 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(pppppppuVar28 != pppppppuVar24)" ( (binary_expression "pppppppuVar28 != pppppppuVar24" identifier != identifier) )) ;) (expression_statement "pcVar10 = *(code **)(pcVar46 + 0x1e790);" (assignment_expression "pcVar10 = *(code **)(pcVar46 + 0x1e790)" identifier = (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) ;) })) (expression_statement "(*pcVar10)(puVar9);" (call_expression "(*pcVar10)(puVar9)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(puVar9)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar46 + 0x1e790))(iStack_148);" (call_expression "(**(code **)(pcVar46 + 0x1e790))(iStack_148)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e790)" * (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(iStack_148)" ( identifier ))) ;) (expression_statement "iVar5 = iVar25;" (assignment_expression "iVar5 = iVar25" identifier = identifier) ;) (do_statement "do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);" do (compound_statement "{\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        }" { (expression_statement "iVar35 = iVar5 + 0xc;" (assignment_expression "iVar35 = iVar5 + 0xc" identifier = (binary_expression "iVar5 + 0xc" identifier + number_literal)) ;) (expression_statement "(**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));" (call_expression "(**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8))" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e790)" * (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar5 + 8))" ( (pointer_expression "*(undefined4 *)(iVar5 + 8)" * (cast_expression "(undefined4 *)(iVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "iVar5 = iVar35;" (assignment_expression "iVar5 = iVar35" identifier = identifier) ;) }) while (parenthesized_expression "(iVar25 + (int)pppppppuVar24 * 0xc != iVar35)" ( (binary_expression "iVar25 + (int)pppppppuVar24 * 0xc != iVar35" (binary_expression "iVar25 + (int)pppppppuVar24 * 0xc" identifier + (binary_expression "(int)pppppppuVar24 * 0xc" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) != identifier) )) ;) (expression_statement "(**(code **)(pcVar46 + 0x1e790))(iVar25);" (call_expression "(**(code **)(pcVar46 + 0x1e790))(iVar25)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e790)" * (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier ))) ;) (expression_statement "pppppppuVar24 = (uint *******)0x1;" (assignment_expression "pppppppuVar24 = (uint *******)0x1" identifier = (cast_expression "(uint *******)0x1" ( (type_descriptor "uint *******" type_identifier (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_0001e000;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_0001e674:\n    (**(code **)(pcVar46 + 0x1e790))(iVar5);" statement_identifier : (expression_statement "(**(code **)(pcVar46 + 0x1e790))(iVar5);" (call_expression "(**(code **)(pcVar46 + 0x1e790))(iVar5)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e790)" * (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier ))) ;)) (expression_statement "iVar5 = iVar25;" (assignment_expression "iVar5 = iVar25" identifier = identifier) ;) (do_statement "do {\n      iVar35 = iVar5 + 0xc;\n      (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n      iVar5 = iVar35;\n    } while (iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25);" do (compound_statement "{\n      iVar35 = iVar5 + 0xc;\n      (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n      iVar5 = iVar35;\n    }" { (expression_statement "iVar35 = iVar5 + 0xc;" (assignment_expression "iVar35 = iVar5 + 0xc" identifier = (binary_expression "iVar5 + 0xc" identifier + number_literal)) ;) (expression_statement "(**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));" (call_expression "(**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8))" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e790)" * (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar5 + 8))" ( (pointer_expression "*(undefined4 *)(iVar5 + 8)" * (cast_expression "(undefined4 *)(iVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "iVar5 = iVar35;" (assignment_expression "iVar5 = iVar35" identifier = identifier) ;) }) while (parenthesized_expression "(iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25)" ( (binary_expression "iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25" identifier != (binary_expression "(int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25" (binary_expression "(int)(iStack_178 + (int)pppppppuVar24) * 4" (cast_expression "(int)(iStack_178 + (int)pppppppuVar24)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iStack_178 + (int)pppppppuVar24)" ( (binary_expression "iStack_178 + (int)pppppppuVar24" identifier + (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ))) * number_literal) + identifier)) )) ;) (expression_statement "(**(code **)(pcVar46 + 0x1e790))(iVar25);" (call_expression "(**(code **)(pcVar46 + 0x1e790))(iVar25)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e790)" * (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier ))) ;) (labeled_statement "LAB_0001dffc:\n    pppppppuVar24 = (uint *******)0x0;" statement_identifier : (expression_statement "pppppppuVar24 = (uint *******)0x0;" (assignment_expression "pppppppuVar24 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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_0001e000;" goto statement_identifier ;) }))) (expression_statement "(**(code **)(pcVar46 + 0x1e790))(iVar25);" (call_expression "(**(code **)(pcVar46 + 0x1e790))(iVar25)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e790)" * (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier ))) ;) (if_statement "if (pppppppuVar24 != (uint *******)0x0) {\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }" if (parenthesized_expression "(pppppppuVar24 != (uint *******)0x0)" ( (binary_expression "pppppppuVar24 != (uint *******)0x0" identifier != (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }" { (expression_statement "pppppppuVar24 = (uint *******)0x0;" (assignment_expression "pppppppuVar24 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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_0001e000;" goto statement_identifier ;) })) (labeled_statement "LAB_0001e824:\n  pppppppuVar28 = (uint *******)0x100;" statement_identifier : (expression_statement "pppppppuVar28 = (uint *******)0x100;" (assignment_expression "pppppppuVar28 = (uint *******)0x100" identifier = (cast_expression "(uint *******)0x100" ( (type_descriptor "uint *******" type_identifier (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 "ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);" (assignment_expression "ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4)" identifier = (cast_expression "(uint ******)(**(code **)(pcVar46 + 0x1e688))(4)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(pcVar46 + 0x1e688))(4)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e688))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e688)" * (pointer_expression "*(code **)(pcVar46 + 0x1e688)" * (cast_expression "(code **)(pcVar46 + 0x1e688)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e688)" ( (binary_expression "pcVar46 + 0x1e688" identifier + number_literal) ))))) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "pppppppuVar18[0xb] = ppppppuVar20;" (assignment_expression "pppppppuVar18[0xb] = ppppppuVar20" (subscript_expression "pppppppuVar18[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppuVar24 = (uint *******)(uint)(ppppppuVar20 != (uint ******)0x0);" (assignment_expression "pppppppuVar24 = (uint *******)(uint)(ppppppuVar20 != (uint ******)0x0)" identifier = (cast_expression "(uint *******)(uint)(ppppppuVar20 != (uint ******)0x0)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)(ppppppuVar20 != (uint ******)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ppppppuVar20 != (uint ******)0x0)" ( (binary_expression "ppppppuVar20 != (uint ******)0x0" identifier != (cast_expression "(uint ******)0x0" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))))) ;) (labeled_statement "LAB_0001e000:\n  if (piStack_e4 == (int *)*piVar6) {\n    return pppppppuVar24;\n  }" statement_identifier : (if_statement "if (piStack_e4 == (int *)*piVar6) {\n    return pppppppuVar24;\n  }" if (parenthesized_expression "(piStack_e4 == (int *)*piVar6)" ( (binary_expression "piStack_e4 == (int *)*piVar6" identifier == (cast_expression "(int *)*piVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) )) (compound_statement "{\n    return pppppppuVar24;\n  }" { (return_statement "return pppppppuVar24;" return identifier ;) }))) (expression_statement "piVar6 = piStack_e4;" (assignment_expression "piVar6 = piStack_e4" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar46 + 0x1e764))();" (call_expression "(**(code **)(pcVar46 + 0x1e764))()" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e764))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e764)" * (pointer_expression "*(code **)(pcVar46 + 0x1e764)" * (cast_expression "(code **)(pcVar46 + 0x1e764)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e764)" ( (binary_expression "pcVar46 + 0x1e764" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (if_statement "if (*(byte *)(pppppppuVar28 + 6) == 0x10) {\n    ppppppuVar20 = (uint ******)pppppppuVar28[1][7];\n    pppppppuVar28[3] = (uint ******)pppppppuVar28[1][3];\n    pppppppuVar28[7] = ppppppuVar20;\n    return (uint *******)0x0;\n  }" if (parenthesized_expression "(*(byte *)(pppppppuVar28 + 6) == 0x10)" ( (binary_expression "*(byte *)(pppppppuVar28 + 6) == 0x10" (pointer_expression "*(byte *)(pppppppuVar28 + 6)" * (cast_expression "(byte *)(pppppppuVar28 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppuVar28 + 6)" ( (binary_expression "pppppppuVar28 + 6" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    ppppppuVar20 = (uint ******)pppppppuVar28[1][7];\n    pppppppuVar28[3] = (uint ******)pppppppuVar28[1][3];\n    pppppppuVar28[7] = ppppppuVar20;\n    return (uint *******)0x0;\n  }" { (expression_statement "ppppppuVar20 = (uint ******)pppppppuVar28[1][7];" (assignment_expression "ppppppuVar20 = (uint ******)pppppppuVar28[1][7]" identifier = (cast_expression "(uint ******)pppppppuVar28[1][7]" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "pppppppuVar28[1][7]" (subscript_expression "pppppppuVar28[1]" identifier [ number_literal ]) [ number_literal ]))) ;) (expression_statement "pppppppuVar28[3] = (uint ******)pppppppuVar28[1][3];" (assignment_expression "pppppppuVar28[3] = (uint ******)pppppppuVar28[1][3]" (subscript_expression "pppppppuVar28[3]" identifier [ number_literal ]) = (cast_expression "(uint ******)pppppppuVar28[1][3]" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "pppppppuVar28[1][3]" (subscript_expression "pppppppuVar28[1]" identifier [ number_literal ]) [ number_literal ]))) ;) (expression_statement "pppppppuVar28[7] = ppppppuVar20;" (assignment_expression "pppppppuVar28[7] = ppppppuVar20" (subscript_expression "pppppppuVar28[7]" identifier [ number_literal ]) = identifier) ;) (return_statement "return (uint *******)0x0;" return (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "pppppppuVar28[3] = (uint ******)pppppppuVar28;" (assignment_expression "pppppppuVar28[3] = (uint ******)pppppppuVar28" (subscript_expression "pppppppuVar28[3]" identifier [ number_literal ]) = (cast_expression "(uint ******)pppppppuVar28" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "ppppppuVar20 = (uint ******)FUN_00019660();" (assignment_expression "ppppppuVar20 = (uint ******)FUN_00019660()" identifier = (cast_expression "(uint ******)FUN_00019660()" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_00019660()" identifier (argument_list "()" ( ))))) ;) (expression_statement "pppppppuVar28[7] = ppppppuVar20;" (assignment_expression "pppppppuVar28[7] = ppppppuVar20" (subscript_expression "pppppppuVar28[7]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (ppppppuVar20 == (uint ******)0xffffffff) {\n    pppppppuVar24 = (uint *******)0xc;\n  }\n  else {\n    if (*(byte *)(pppppppuVar28 + 6) == 0xc) {\n      iVar25 = *piVar6 + (int)ppppppuVar20 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;\n      return (uint *******)0x0;\n    }\n    pppppppuVar24 = (uint *******)0x0;\n  }" if (parenthesized_expression "(ppppppuVar20 == (uint ******)0xffffffff)" ( (binary_expression "ppppppuVar20 == (uint ******)0xffffffff" identifier == (cast_expression "(uint ******)0xffffffff" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n    pppppppuVar24 = (uint *******)0xc;\n  }" { (expression_statement "pppppppuVar24 = (uint *******)0xc;" (assignment_expression "pppppppuVar24 = (uint *******)0xc" identifier = (cast_expression "(uint *******)0xc" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n    if (*(byte *)(pppppppuVar28 + 6) == 0xc) {\n      iVar25 = *piVar6 + (int)ppppppuVar20 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;\n      return (uint *******)0x0;\n    }\n    pppppppuVar24 = (uint *******)0x0;\n  }" else (compound_statement "{\n    if (*(byte *)(pppppppuVar28 + 6) == 0xc) {\n      iVar25 = *piVar6 + (int)ppppppuVar20 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;\n      return (uint *******)0x0;\n    }\n    pppppppuVar24 = (uint *******)0x0;\n  }" { (if_statement "if (*(byte *)(pppppppuVar28 + 6) == 0xc) {\n      iVar25 = *piVar6 + (int)ppppppuVar20 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;\n      return (uint *******)0x0;\n    }" if (parenthesized_expression "(*(byte *)(pppppppuVar28 + 6) == 0xc)" ( (binary_expression "*(byte *)(pppppppuVar28 + 6) == 0xc" (pointer_expression "*(byte *)(pppppppuVar28 + 6)" * (cast_expression "(byte *)(pppppppuVar28 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppuVar28 + 6)" ( (binary_expression "pppppppuVar28 + 6" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar25 = *piVar6 + (int)ppppppuVar20 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;\n      return (uint *******)0x0;\n    }" { (expression_statement "iVar25 = *piVar6 + (int)ppppppuVar20 * 8;" (assignment_expression "iVar25 = *piVar6 + (int)ppppppuVar20 * 8" identifier = (binary_expression "*piVar6 + (int)ppppppuVar20 * 8" (pointer_expression "*piVar6" * identifier) + (binary_expression "(int)ppppppuVar20 * 8" (cast_expression "(int)ppppppuVar20" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "*(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;" (assignment_expression "*(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe" (pointer_expression "*(uint *)(iVar25 + 4)" * (cast_expression "(uint *)(iVar25 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 4)" ( (binary_expression "iVar25 + 4" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe" (binary_expression "*(uint *)(iVar25 + 4) & 0xff003fff" (pointer_expression "*(uint *)(iVar25 + 4)" * (cast_expression "(uint *)(iVar25 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 4)" ( (binary_expression "iVar25 + 4" identifier + number_literal) )))) & number_literal) | (binary_expression "((uint)pppppppuVar28[5] & 0x3ff) << 0xe" (parenthesized_expression "((uint)pppppppuVar28[5] & 0x3ff)" ( (binary_expression "(uint)pppppppuVar28[5] & 0x3ff" (cast_expression "(uint)pppppppuVar28[5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppuVar28[5]" identifier [ number_literal ])) & number_literal) )) << number_literal))) ;) (return_statement "return (uint *******)0x0;" return (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "pppppppuVar24 = (uint *******)0x0;" (assignment_expression "pppppppuVar24 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }))) (return_statement "return pppppppuVar24;" return identifier ;) })))
(translation_unit "reg_errcode_t re_string_reconstruct(re_string_t *pstr,Idx idx,int eflags)\n\n{\n  byte bVar1;\n  re_token_t token;\n  bool bVar2;\n  undefined *puVar3;\n  uint uVar4;\n  uchar uVar16;\n  reg_errcode_t rVar5;\n  size_t sVar6;\n  re_node_set *prVar7;\n  int *piVar8;\n  uint *puVar9;\n  int iVar10;\n  re_dfa_t **pprVar11;\n  re_dfa_t **pprVar12;\n  Idx *pIVar13;\n  uint uVar14;\n  Idx *pIVar15;\n  re_node_set *prVar17;\n  re_node_set *prVar18;\n  wint_t *pwVar19;\n  uchar *puVar20;\n  re_dfa_t *prVar21;\n  Idx IVar22;\n  uchar *puVar23;\n  Idx *pIVar24;\n  Idx *pIVar25;\n  re_node_set *prVar26;\n  re_node_set *idx_00;\n  int iVar27;\n  re_node_set *prVar28;\n  int iVar29;\n  uint uVar30;\n  Idx *pIVar31;\n  re_node_set *prVar32;\n  wint_t wVar33;\n  Idx *pIVar34;\n  re_node_set *prVar35;\n  uint *puVar36;\n  Idx *pIVar37;\n  int iVar38;\n  re_node_set *set;\n  re_dfa_t **pprVar39;\n  uint *puVar40;\n  undefined4 *puVar41;\n  re_string_t *prVar42;\n  int *piVar43;\n  re_node_set *prVar44;\n  re_node_set *unaff_s2;\n  re_node_set *unaff_s3;\n  int iVar45;\n  int iVar46;\n  re_node_set *unaff_s7;\n  byte *pbVar47;\n  int iVar48;\n  undefined *puVar49;\n  code *pcVar50;\n  undefined *puVar51;\n  re_node_set *unaff_s8;\n  code *pcVar52;\n  code *pcVar53;\n  undefined4 in_stack_fffffe4c;\n  int iStack_184;\n  int iStack_178;\n  int iStack_154;\n  byte *pbStack_150;\n  undefined4 uStack_14c;\n  int iStack_148;\n  re_node_set rStack_144;\n  uint uStack_138;\n  uint uStack_134;\n  uint uStack_130;\n  uint uStack_12c;\n  uint uStack_128;\n  re_node_set rStack_124;\n  uint uStack_118;\n  uint uStack_114;\n  uint uStack_110;\n  uint uStack_10c;\n  uint uStack_108;\n  re_dfa_t *prStack_104;\n  uint uStack_100;\n  uint uStack_fc;\n  uint uStack_f8;\n  uint uStack_f4;\n  uint uStack_f0;\n  uint uStack_ec;\n  uint uStack_e8;\n  re_dfa_t *prStack_e4;\n  re_string_t *prStack_e0;\n  int iStack_dc;\n  re_node_set *prStack_d8;\n  re_node_set *prStack_d4;\n  int iStack_d0;\n  re_node_set *prStack_cc;\n  int iStack_c8;\n  re_node_set *prStack_c4;\n  re_node_set *prStack_c0;\n  code *pcStack_bc;\n  undefined *puStack_a8;\n  re_node_set *prStack_a0;\n  undefined4 *puStack_9c;\n  undefined1 auStack_98 [12];\n  re_node_set *prStack_8c;\n  re_string_t *prStack_88;\n  re_node_set *prStack_84;\n  re_node_set *prStack_80;\n  re_node_set *prStack_7c;\n  undefined *puStack_78;\n  re_node_set *prStack_74;\n  int iStack_70;\n  re_node_set *prStack_6c;\n  re_node_set *prStack_68;\n  code *pcStack_64;\n  wchar_t wc2;\n  mbstate_t cur_state;\n  uchar buf [6];\n  \n  puVar3 = PTR___stack_chk_guard_0003c314;\n  prVar17 = *(re_node_set **)PTR___stack_chk_guard_0003c314;\n  prVar28 = (re_node_set *)eflags;\n  prVar44 = (re_node_set *)(idx - pstr->raw_mbs_idx);\n  if (idx < pstr->raw_mbs_idx) {\n    if (1 < pstr->mb_cur_max) {\n      (pstr->cur_state).__count = 0;\n      (pstr->cur_state).__value.__wch = 0;\n    }\n    prVar28 = (re_node_set *)0x6;\n    if ((eflags & 1U) != 0) {\n      prVar28 = (re_node_set *)0x4;\n    }\n    pstr->len = pstr->raw_len;\n    pstr->stop = pstr->raw_stop;\n    pstr->valid_len = 0;\n    pstr->raw_mbs_idx = 0;\n    pstr->valid_raw_len = 0;\n    pstr->offsets_needed = '\0';\n    pstr->tip_context = (uint)prVar28;\n    prVar44 = (re_node_set *)idx;\n    if (pstr->mbs_allocated == '\0') {\n      pstr->mbs = pstr->raw_mbs;\n      goto LAB_0001d010;\n    }\n    if (idx == 0) goto LAB_0001d128;\nLAB_0001d018:\n    iVar29 = pstr->valid_raw_len;\n    unaff_s2 = (re_node_set *)pstr->valid_len;\n    if ((int)prVar44 < iVar29) {\n      if (pstr->offsets_needed == '\0') {\n        uVar4 = re_string_context_at(pstr,(Idx)((int)&prVar44[-1].elems + 3),eflags);\n        prVar28 = (re_node_set *)((int)unaff_s2 - (int)prVar44);\n        pstr->tip_context = uVar4;\n        if (1 < pstr->mb_cur_max) {\n          (*(code *)PTR_memmove_0003c324)(pstr->wcs,pstr->wcs + (int)prVar44,(int)prVar28 * 4);\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n        }\n        uVar16 = pstr->mbs_allocated;\n        if (uVar16 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44);\n          uVar16 = pstr->mbs_allocated;\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n        }\n        prVar32 = (re_node_set *)pstr->mb_cur_max;\n        prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n        pstr->valid_len = (Idx)prVar28;\n        IVar22 = pstr->stop - (int)prVar44;\n        pstr->valid_raw_len = pstr->valid_raw_len - (int)prVar44;\n      }\n      else {\n        unaff_s7 = (re_node_set *)pstr->offsets;\n        puVar23 = (uchar *)0x0;\n        prVar28 = unaff_s2;\n        do {\n          unaff_s3 = (re_node_set *)((int)(puVar23 + (int)prVar28) / 2);\n          iVar29 = (&unaff_s7->alloc)[(int)unaff_s3];\n          prVar18 = unaff_s3;\n          if ((iVar29 <= (int)prVar44) &&\n             (puVar23 = (uchar *)((int)&unaff_s3->alloc + 1), prVar18 = prVar28,\n             (int)prVar44 <= iVar29)) goto LAB_0001d460;\n          prVar28 = prVar18;\n        } while ((int)puVar23 < (int)prVar18);\n        if (iVar29 < (int)prVar44) {\n          prVar28 = unaff_s3;\n          unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n        }\n        else {\nLAB_0001d460:\n          prVar28 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n        }\n        uVar4 = re_string_context_at(pstr,(Idx)prVar28,eflags);\n        pstr->tip_context = uVar4;\n        if ((((int)prVar44 < (int)unaff_s2) && (eflags = (int)prVar44 * 4, prVar44 == unaff_s3)) &&\n           ((re_node_set *)(&unaff_s7->alloc)[(int)prVar44] == prVar44)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (pstr->wcs,pstr->wcs + (int)prVar44,((int)unaff_s2 - (int)prVar44) * 4);\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n          (*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44);\n          iVar29 = pstr->valid_len - (int)prVar44;\n          pstr->valid_len = iVar29;\n          pstr->valid_raw_len = pstr->valid_raw_len - (int)prVar44;\n          if (0 < iVar29) {\n            iVar29 = 0;\n            prVar28 = (re_node_set *)((int)prVar44 * -4);\n            piVar8 = pstr->offsets + (int)prVar44;\n            do {\n              iVar29 = iVar29 + 1;\n              piVar8[-(int)prVar44] = *piVar8 - (int)prVar44;\n              piVar8 = piVar8 + 1;\n            } while (iVar29 < pstr->valid_len);\n          }\n          prVar32 = (re_node_set *)pstr->mb_cur_max;\n          uVar16 = pstr->mbs_allocated;\n          prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n          IVar22 = pstr->stop - (int)prVar44;\n        }\n        else {\n          pstr->offsets_needed = '\0';\n          prVar18 = (re_node_set *)(pstr->raw_len - idx);\n          IVar22 = pstr->raw_stop - idx;\n          pstr->len = (Idx)((int)&prVar44->alloc + (int)&prVar18->alloc);\n          pstr->stop = (Idx)(IVar22 + (int)prVar44);\n          if ((0 < (int)unaff_s3) &&\n             (prVar44 == *(re_node_set **)((int)unaff_s7 + (int)unaff_s3 * 4 + -4))) {\n            pIVar24 = &unaff_s7->alloc + (int)unaff_s3;\n            do {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n              if (unaff_s3 == (re_node_set *)0x0) break;\n              pIVar15 = pIVar24 + -2;\n              pIVar24 = pIVar24 + -1;\n            } while ((re_node_set *)*pIVar15 == prVar44);\n          }\n          iVar29 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            pwVar19 = pstr->wcs + (int)unaff_s3;\n            wVar33 = *pwVar19;\n            while (wVar33 == 0xffffffff) {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n              pwVar19 = pwVar19 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar29 = (int)unaff_s3 * 4;\n              wVar33 = *pwVar19;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (re_node_set *)((int)&unaff_s7->alloc + iVar29);\n            prVar28 = (re_node_set *)(unaff_s7->alloc - (int)prVar44);\n            pstr->valid_len = (Idx)prVar28;\n            if (prVar28 != (re_node_set *)0x0) {\n              if (0 < (int)prVar28) {\n                pwVar19 = pstr->wcs;\n                iVar29 = 0;\n                do {\n                  *pwVar19 = 0xffffffff;\n                  iVar29 = iVar29 + 1;\n                  pwVar19 = pwVar19 + 1;\n                } while (iVar29 < pstr->valid_len);\n              }\n              (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n              prVar28 = (re_node_set *)pstr->valid_len;\n              prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n              IVar22 = pstr->stop - (int)prVar44;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            prVar28 = (re_node_set *)0x0;\n            pstr->valid_len = 0;\n          }\n          prVar32 = (re_node_set *)pstr->mb_cur_max;\n          uVar16 = pstr->mbs_allocated;\n          pstr->valid_raw_len = (Idx)prVar28;\n        }\n      }\nLAB_0001d090:\n      prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);\n      if (uVar16 == '\0') {\nLAB_0001d098:\n        prVar44 = (re_node_set *)(pstr->mbs + (int)prVar44);\n        pstr->mbs = (uchar *)prVar44;\n      }\n      pstr->raw_mbs_idx = idx;\n      pstr->len = (Idx)prVar18;\n      pstr->stop = IVar22;\n      if (prVar26 == (re_node_set *)0x0) goto LAB_0001d0b4;\nLAB_0001d148:\n      uVar16 = pstr->mbs_allocated;\n    }\n    else {\n      if (pstr->offsets_needed != '\0') {\n        pstr->offsets_needed = '\0';\n        pstr->len = (Idx)((pstr->raw_len - idx) + (int)prVar44);\n        pstr->stop = (Idx)((pstr->raw_stop - idx) + (int)prVar44);\n      }\n      prVar32 = (re_node_set *)pstr->mb_cur_max;\n      unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n      prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);\n      pstr->valid_len = 0;\n      if (prVar26 == (re_node_set *)0x0) {\n        if (pstr->is_utf8 == '\0') {\nLAB_0001d228:\n          puVar23 = (uchar *)((int)&unaff_s8->alloc + iVar29);\n          if ((int)puVar23 < idx) {\n            unaff_s7 = (re_node_set *)&wc2;\n            do {\n              cur_state.__count = (pstr->cur_state).__count;\n              cur_state.__value = (pstr->cur_state).__value;\n              prVar18 = (re_node_set *)(pstr->raw_len - (int)puVar23);\n              prVar28 = prVar18;\n              sVar6 = rpl_mbrtowc((wchar_t *)unaff_s7,(char *)(puVar23 + (int)pstr->raw_mbs),\n                                  (size_t)prVar18,&pstr->cur_state);\n              unaff_s3 = (re_node_set *)wc2;\n              if (0xfffffffc < sVar6 - 1) {\n                if ((sVar6 == 0) || (prVar18 == (re_node_set *)0x0)) {\n                  unaff_s3 = (re_node_set *)0x0;\n                }\n                else {\n                  unaff_s3 = (re_node_set *)(uint)puVar23[(int)pstr->raw_mbs];\n                }\n                sVar6 = 1;\n                (pstr->cur_state).__count = cur_state.__count;\n                (pstr->cur_state).__value = cur_state.__value;\n              }\n              puVar23 = puVar23 + sVar6;\n            } while ((int)puVar23 < idx);\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n            if (unaff_s3 != (re_node_set *)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n          }\n          prVar28 = (re_node_set *)eflags;\n          uVar4 = re_string_context_at(pstr,(Idx)((int)&unaff_s2[-1].elems + 3),eflags);\n          pstr->tip_context = uVar4;\n        }\n        else {\n          prVar18 = (re_node_set *)pstr->raw_mbs;\n          unaff_s7 = (re_node_set *)((int)&unaff_s8->alloc + (int)&prVar18->alloc);\n          prVar28 = (re_node_set *)((int)unaff_s7 + ((int)prVar44 - (int)prVar32));\n          unaff_s3 = (re_node_set *)\n                     ((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)&unaff_s7->alloc);\n          if (prVar28 <= prVar18) {\n            prVar28 = prVar18;\n          }\n          if (unaff_s3 < prVar28) goto LAB_0001d228;\n          bVar1 = *(byte *)&unaff_s3->alloc;\n          while ((bVar1 & 0xc0) == 0x80) {\n            unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n            if (unaff_s3 < prVar28) goto LAB_0001d228;\n            bVar1 = *(byte *)&unaff_s3->alloc;\n          }\n          puVar23 = pstr->trans;\n          prVar28 = (re_node_set *)((int)unaff_s7 + (pstr->len - (int)unaff_s3));\n          prVar18 = unaff_s3;\n          if (puVar23 != (uchar *)0x0) {\n            prVar26 = (re_node_set *)0x6;\n            if ((int)prVar28 < 7) {\n              prVar26 = prVar28;\n            }\n            prVar18 = (re_node_set *)buf;\n            if (0 < (int)prVar28) {\n              puVar20 = (uchar *)((int)&prVar26->alloc + (int)&unaff_s3->alloc);\n              prVar26 = (re_node_set *)((int)&prVar26->alloc + (int)&prVar18->alloc);\n              do {\n                pbVar47 = puVar20 + -1;\n                prVar26 = (re_node_set *)((int)&prVar26[-1].elems + 3);\n                puVar20 = puVar20 + -1;\n                *(uchar *)&prVar26->alloc = puVar23[*pbVar47];\n              } while (prVar18 != prVar26);\n            }\n          }\n          cur_state.__count = 0;\n          cur_state.__value.__wch = 0;\n          puVar23 = (uchar *)rpl_mbrtowc(&wc2,(char *)prVar18,(size_t)prVar28,&cur_state);\n          puVar20 = (uchar *)((int)prVar44 + ((int)unaff_s7 - (int)unaff_s3));\n          if ((puVar23 < puVar20) || ((uchar *)0xfffffffd < puVar23)) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (re_node_set *)(puVar23 + -(int)puVar20);\n          (pstr->cur_state).__count = 0;\n          (pstr->cur_state).__value.__wch = 0;\n          pstr->valid_len = (Idx)unaff_s8;\n          unaff_s3 = (re_node_set *)wc2;\n          if (wc2 == -1) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((pstr->word_ops_used == '\0') ||\n             ((iVar29 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar29 == 0 &&\n              (unaff_s3 != (re_node_set *)0x5f)))) {\n            uVar4 = 2;\n            if (unaff_s3 == (re_node_set *)0xa) {\n              if (pstr->newline_anchor == '\0') {\n                uVar4 = 0;\n              }\n            }\n            else {\n              uVar4 = 0;\n            }\n          }\n          else {\n            uVar4 = 1;\n          }\n          pstr->tip_context = uVar4;\n        }\n        prVar18 = prVar28;\n        if (unaff_s8 == (re_node_set *)0x0) {\nLAB_0001d2cc:\n          uVar16 = pstr->mbs_allocated;\n          prVar28 = prVar18;\n        }\n        else {\n          iVar29 = 0;\n          prVar18 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            pwVar19 = pstr->wcs;\n            do {\n              *pwVar19 = 0xffffffff;\n              iVar29 = iVar29 + 1;\n              prVar18 = (re_node_set *)pstr->valid_len;\n              pwVar19 = pwVar19 + 1;\n            } while (iVar29 < (int)prVar18);\n          }\n          if (pstr->mbs_allocated != '\0') {\n            (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n            unaff_s8 = (re_node_set *)pstr->valid_len;\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (re_node_set *)pstr->valid_len;\n          uVar16 = '\0';\n        }\n        prVar32 = (re_node_set *)pstr->mb_cur_max;\n        pstr->valid_raw_len = (Idx)unaff_s8;\n        prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n        IVar22 = pstr->stop - (int)prVar44;\n        goto LAB_0001d090;\n      }\n      uVar4 = (uint)(byte)((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)pstr->raw_mbs)\n                          [(int)unaff_s8];\n      pstr->valid_raw_len = 0;\n      if (pstr->trans != (uchar *)0x0) {\n        uVar4 = (uint)pstr->trans[uVar4];\n      }\n      prVar28 = (re_node_set *)(pstr->word_char[(int)uVar4 >> 5] >> (uVar4 & 0x1f) & 1);\n      if (((prVar28 == (re_node_set *)0x0) && (uVar4 == 10)) &&\n         (prVar28 = (re_node_set *)0x2, pstr->newline_anchor == '\0')) {\n        prVar28 = (re_node_set *)0x0;\n      }\n      uVar16 = pstr->mbs_allocated;\n      pstr->tip_context = (uint)prVar28;\n      prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n      IVar22 = pstr->stop - (int)prVar44;\n      if (uVar16 == '\0') goto LAB_0001d098;\n      pstr->raw_mbs_idx = idx;\n      pstr->len = (Idx)prVar18;\n      pstr->stop = IVar22;\n    }\n    if (uVar16 == '\0') {\n      pstr->valid_len = (Idx)prVar18;\n    }\n    else if (pstr->icase == '\0') {\n      prVar26 = (re_node_set *)pstr->trans;\n      if (prVar26 != (re_node_set *)0x0) {\n        prVar28 = (re_node_set *)pstr->bufs_len;\n        prVar35 = (re_node_set *)pstr->valid_len;\n        if ((int)prVar28 <= (int)prVar18) {\n          prVar18 = prVar28;\n        }\n        if ((int)prVar35 < (int)prVar18) {\n          while( true ) {\n            prVar28 = (re_node_set *)(pstr->mbs + (int)prVar35);\n            idx = (int)&prVar35->alloc + (int)(pstr->raw_mbs + idx);\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            prVar26 = (re_node_set *)\n                      ((int)&prVar26->alloc + (uint)*(byte *)&((re_node_set *)idx)->alloc);\n            *(uchar *)&prVar28->alloc = *(uchar *)&prVar26->alloc;\n            if (prVar18 == prVar35) break;\n            idx = pstr->raw_mbs_idx;\n            prVar26 = (re_node_set *)pstr->trans;\n          }\n          pstr->valid_len = (Idx)prVar18;\n          pstr->valid_raw_len = (Idx)prVar18;\n        }\n        else {\n          pstr->valid_len = (Idx)prVar35;\n          pstr->valid_raw_len = (Idx)prVar35;\n        }\n      }\n    }\n    else {\n      build_upper_buffer(pstr);\n    }\nLAB_0001d0dc:\n    rVar5 = _REG_NOERROR;\n    pstr->cur_idx = 0;\n  }\n  else {\nLAB_0001d010:\n    if (prVar44 != (re_node_set *)0x0) goto LAB_0001d018;\nLAB_0001d128:\n    prVar32 = (re_node_set *)pstr->mb_cur_max;\n    prVar18 = (re_node_set *)pstr->len;\n    prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);\n    pstr->raw_mbs_idx = idx;\n    pstr->len = (Idx)prVar18;\n    pstr->stop = pstr->stop;\n    if (prVar26 != (re_node_set *)0x0) goto LAB_0001d148;\nLAB_0001d0b4:\n    if (pstr->icase == '\0') {\n      build_wcs_buffer(pstr);\n      goto LAB_0001d0dc;\n    }\n    rVar5 = build_wcs_upper_buffer(pstr);\n    if (rVar5 == _REG_NOERROR) goto LAB_0001d0dc;\n  }\n  if (prVar17 == *(re_node_set **)puVar3) {\n    return rVar5;\n  }\n  pcVar52 = sub_epsilon_src_nodes;\n  puVar49 = PTR___stack_chk_fail_0003c2f4;\n  (*(code *)PTR___stack_chk_fail_0003c2f4)();\n  puVar51 = puVar49 + 0x26830;\n  puStack_9c = *(undefined4 **)(puVar49 + 0x1ea74);\n  auStack_98._0_4_ = 0;\n  auStack_98._4_4_ = (re_node_set *)0x0;\n  auStack_98._8_4_ = (Idx *)0x0;\n  iVar29 = prVar17[2].nelem + (int)prVar26 * 0xc;\n  puStack_78 = puVar3;\n  prStack_8c = (re_node_set *)*puStack_9c;\n  prVar35 = *(re_node_set **)(iVar29 + 4);\n  iVar45 = *(int *)(puVar49 + 0x1e948);\n  prVar18 = prVar26;\n  puStack_a8 = puVar51;\n  prStack_a0 = prVar32;\n  prStack_88 = pstr;\n  prStack_84 = prVar44;\n  prStack_80 = unaff_s2;\n  prStack_7c = unaff_s3;\n  prStack_74 = (re_node_set *)idx;\n  iStack_70 = eflags;\n  prStack_6c = unaff_s7;\n  prStack_68 = unaff_s8;\n  pcStack_64 = pcVar52;\n  if (0 < (int)prVar35) {\n    prVar32 = (re_node_set *)auStack_98;\n    prVar42 = (re_string_t *)0x0;\n    prVar44 = (re_node_set *)(iVar29 + 8);\n    iVar45 = iVar45 + -0x5d30;\n    iVar46 = *(int *)(puVar49 + 0x1e948) + -20000;\n    do {\n      prVar7 = *(re_node_set **)(*(int *)(iVar29 + 8) + (int)prVar42 * 4);\n      if ((prVar26 != prVar7) && ((*(byte *)(prVar17->alloc + (int)prVar7 * 8 + 4) & 8) != 0)) {\n        iVar38 = (int)prVar7 * 0xc;\n        pIVar24 = prVar17[1].elems + (int)prVar7 * 3;\n        puVar41 = (undefined4 *)pIVar24[2];\n        prVar7 = (re_node_set *)*puVar41;\n        prVar18 = prVar44;\n        IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7);\n        if (pIVar24[1] < 2) {\n          puVar51 = puStack_a8;\n          if (IVar22 == 0) {\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((IVar22 == 0) &&\n                (IVar22 = re_node_set_contains\n                                    ((re_node_set *)prVar28->nelem,(Idx)&prVar28->elems,prVar7),\n                IVar22 != 0)) {\nLAB_0001d960:\n          iVar27 = prVar17[2].nelem;\nLAB_0001d964:\n          prVar18 = prStack_a0;\n          prVar35 = (re_node_set *)\n                    re_node_set_add_intersect(prVar32,prStack_a0,(re_node_set *)(iVar27 + iVar38));\n          if (prVar35 != (re_node_set *)0x0) {\n            prStack_a0 = prVar35;\n            (**(code **)(puStack_a8 + -0x7db0))(auStack_98._8_4_);\n            prVar35 = prStack_a0;\n            goto LAB_0001db20;\n          }\n          prVar35 = *(re_node_set **)(iVar29 + 4);\n          puVar51 = puStack_a8;\n        }\n        else {\n          prVar7 = (re_node_set *)puVar41[1];\n          prVar18 = prVar44;\n          puVar51 = puStack_a8;\n          if ((0 < (int)prVar7) &&\n             (IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7), puVar51 = puStack_a8,\n             IVar22 == 0)) {\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) {\n              iVar27 = prVar17[2].nelem;\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }\n      prVar42 = (re_string_t *)((int)&prVar42->raw_mbs + 1);\n    } while ((int)prVar42 < (int)prVar35);\n    pstr = prVar42;\n    unaff_s2 = prVar26;\n    unaff_s3 = prVar28;\n    idx = (Idx)prVar44;\n    eflags = iVar46;\n    unaff_s7 = prVar32;\n    unaff_s8 = prVar17;\n    if (0 < (int)prVar35) {\n      iVar46 = 0;\n      prVar26 = (re_node_set *)&prVar28->nelem;\n      prVar17 = (re_node_set *)&prVar28->elems;\n      prVar44 = (re_node_set *)(auStack_98 + 8);\n      do {\n        prVar18 = *(re_node_set **)(*(int *)(iVar29 + 8) + iVar46 * 4);\n        prVar7 = prVar44;\n        IVar22 = re_node_set_contains((re_node_set *)auStack_98._4_4_,(Idx)prVar44,prVar18);\n        prVar32 = prVar17;\n        if (IVar22 == 0) {\n          set = (re_node_set *)prVar28->nelem;\n          idx_00 = prVar17;\n          IVar22 = re_node_set_contains(set,(Idx)prVar17,prVar18);\n          prVar18 = (re_node_set *)(IVar22 + -1);\n          prVar44 = prVar17;\n          prVar32 = idx_00;\n          if ((-1 < (int)prVar18) && ((int)prVar18 < (int)set)) {\n            prVar28->nelem = (Idx)((int)&set[-1].elems + 3);\n            re_node_set_remove_at(prVar26,(Idx)idx_00,prVar18);\n            prVar35 = *(re_node_set **)(iVar29 + 4);\n            prVar44 = idx_00;\n          }\n        }\n        iVar46 = iVar46 + 1;\n        prVar18 = prVar44;\n        prVar17 = prVar32;\n        prVar44 = prVar7;\n        puVar51 = puStack_a8;\n      } while (iVar46 < (int)prVar35);\n    }\n  }\n  (**(code **)(puVar51 + -0x7db0))(auStack_98._8_4_);\n  prVar35 = (re_node_set *)0x0;\n  prVar42 = pstr;\n  prVar26 = unaff_s2;\n  prVar28 = unaff_s3;\n  prVar44 = (re_node_set *)idx;\n  iVar46 = eflags;\n  prVar32 = unaff_s7;\n  prVar17 = unaff_s8;\nLAB_0001db20:\n  if (prStack_8c == (re_node_set *)*puStack_9c) {\n    return (reg_errcode_t)prVar35;\n  }\n  pcVar52 = *(code **)(puStack_a8 + -0x7ddc);\n  pcVar53 = build_trtable;\n  prVar7 = prStack_8c;\n  (*pcVar52)();\n  piVar8 = *(int **)(pcVar52 + 0x1e784);\n  prStack_e4 = (re_dfa_t *)*piVar8;\n  prVar35 = prVar18;\n  prStack_e0 = prVar42;\n  iStack_dc = iVar29;\n  prStack_d8 = prVar26;\n  prStack_d4 = prVar28;\n  iStack_d0 = iVar45;\n  prStack_cc = prVar44;\n  iStack_c8 = iVar46;\n  prStack_c4 = prVar32;\n  prStack_c0 = prVar17;\n  pcStack_bc = pcVar53;\n  iVar29 = (**(code **)(pcVar52 + 0x1e724))(0x2c00);\n  if (iVar29 == 0) goto LAB_0001dffc;\n  pIVar24 = prVar18->elems;\n  prVar18[3].elems = (Idx *)0x0;\n  puVar9 = (uint *)(iVar29 + 0xc00);\n  prVar18[4].alloc = 0;\n  rStack_144.alloc = 0;\n  rStack_144.nelem = 0;\n  rStack_144.elems = (Idx *)0x0;\n  uStack_138 = 0;\n  uStack_134 = 0;\n  uStack_130 = 0;\n  uStack_12c = 0;\n  uStack_128 = 0;\n  if (0 < (int)pIVar24) {\n    iVar45 = *(int *)(pcVar52 + 0x1e658);\n    iStack_184 = 0;\n    iVar46 = *(int *)(pcVar52 + 0x1e658);\n    prVar28 = (re_node_set *)0x0;\nLAB_0001dc74:\n    iVar38 = iStack_184 * 4;\n    pbVar47 = (byte *)(prVar7->alloc + *(int *)(prVar18[1].alloc + iVar38) * 8);\n    bVar1 = pbVar47[4];\n    uVar4 = (uint)(*(int *)(pbVar47 + 4) << 8) >> 0x16;\n    if (bVar1 == 1) {\n      pIVar15 = &rStack_144.alloc + ((int)(uint)*pbVar47 >> 5);\n      prVar35 = (re_node_set *)(*pIVar15 | 1 << (*pbVar47 & 0x1f));\n      *pIVar15 = (Idx)prVar35;\nLAB_0001e060:\n      IVar22 = rStack_144.alloc;\n      if (uVar4 == 0) goto LAB_0001e15c;\n      if ((uVar4 & 0x20) == 0) {\n        if ((uVar4 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar4 & 4) != 0) {\n          if (bVar1 == 1) {\n            if ((*(uint *)(pbVar47 + 4) & 0x200) == 0) goto LAB_0001e428;\n            pIVar15 = prVar7[7].elems;\n          }\n          else {\n            pIVar15 = prVar7[7].elems;\n          }\n          if ((int)pIVar15 < 2) {\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              pIVar13 = &prVar44->nelem;\n              pIVar15 = &prVar17->alloc;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              prVar35 = (re_node_set *)(prVar44->alloc & *pIVar15);\n              prVar44->alloc = (Idx)prVar35;\n              uVar30 = uVar30 | (uint)prVar35;\n              prVar44 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }\n          else {\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              prVar35 = (re_node_set *)&prVar44->nelem;\n              uVar14 = *puVar40;\n              pIVar15 = &prVar17->alloc;\n              puVar40 = puVar40 + 1;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              uVar14 = (~uVar14 | *pIVar15) & prVar44->alloc;\n              prVar44->alloc = uVar14;\n              uVar30 = uVar30 | uVar14;\n              prVar44 = prVar35;\n            } while (&rStack_124 != prVar35);\n          }\n          if (uVar30 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar4 & 8) == 0) {\nLAB_0001e15c:\n          prVar44 = (re_node_set *)0x0;\n          if (0 < (int)prVar28) {\n            prVar44 = (re_node_set *)0x0;\n            puVar40 = puVar9;\n            do {\n              prVar35 = (re_node_set *)((int)prVar44 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar9 + ((int)(uint)*pbVar47 >> 5))[(int)prVar44 * 8] >> (*pbVar47 & 0x1f) & 1)\n                  != 0)) {\n                uVar4 = 0;\n                prVar17 = &rStack_144;\n                prVar26 = &rStack_124;\n                puVar36 = puVar40;\n                do {\n                  pIVar24 = &prVar17->nelem;\n                  uVar30 = *puVar36;\n                  puVar36 = puVar36 + 1;\n                  uVar30 = prVar17->alloc & uVar30;\n                  prVar26->alloc = uVar30;\n                  uVar4 = uVar4 | uVar30;\n                  prVar17 = (re_node_set *)pIVar24;\n                  prVar26 = (re_node_set *)&prVar26->nelem;\n                } while (&rStack_124 != (re_node_set *)pIVar24);\n                prVar35 = &rStack_144;\n                if (uVar4 != 0) {\n                  uVar30 = 0;\n                  uVar4 = 0;\n                  prVar17 = &rStack_144;\n                  puVar36 = puVar40;\n                  pprVar39 = &prStack_104;\n                  do {\n                    uVar14 = *puVar36;\n                    puVar36 = puVar36 + 1;\n                    prVar21 = (re_dfa_t *)(~prVar17->alloc & uVar14);\n                    uVar14 = ~uVar14 & prVar17->alloc;\n                    *pprVar39 = prVar21;\n                    prVar17->alloc = uVar14;\n                    uVar4 = uVar4 | (uint)prVar21;\n                    uVar30 = uVar30 | uVar14;\n                    prVar17 = (re_node_set *)&prVar17->nelem;\n                    pprVar39 = pprVar39 + 1;\n                  } while (puVar40 + 8 != puVar36);\n                  prVar17 = (re_node_set *)(iVar29 + (int)prVar44 * 0xc);\n                  if (uVar4 != 0) {\n                    iStack_178 = (int)prVar28 * 2;\n                    puVar36 = puVar9 + (int)prVar28 * 8;\n                    *puVar36 = (uint)prStack_104;\n                    puVar36[1] = uStack_100;\n                    puVar36[2] = uStack_fc;\n                    puVar36[3] = uStack_f8;\n                    puVar36[4] = uStack_f4;\n                    puVar36[5] = uStack_f0;\n                    puVar36[6] = uStack_ec;\n                    puVar36[7] = uStack_e8;\n                    puVar40[1] = rStack_124.nelem;\n                    puVar40[2] = (uint)rStack_124.elems;\n                    *puVar40 = rStack_124.alloc;\n                    puVar40[3] = uStack_118;\n                    puVar40[4] = uStack_114;\n                    puVar40[5] = uStack_110;\n                    puVar40[6] = uStack_10c;\n                    puVar40[7] = uStack_108;\n                    prVar35 = prVar17;\n                    iVar27 = (*(code *)(iVar46 + -0x4580))(iVar29 + (int)prVar28 * 0xc);\n                    if (iVar27 != 0) goto LAB_0001e458;\n                    prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n                  }\n                  prVar35 = *(re_node_set **)(prVar18[1].alloc + iVar38);\n                  iVar27 = (*(code *)(iVar45 + -0x7b38))(prVar17);\n                  if (iVar27 == 0) {\n                    iStack_178 = (int)prVar28 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar30 == 0) break;\n                }\n              }\n              puVar40 = puVar40 + 8;\n              prVar44 = (re_node_set *)((int)&prVar44->alloc + 1);\n            } while ((int)prVar44 < (int)prVar28);\n          }\n          iStack_178 = (int)prVar28 * 2;\n          if (prVar28 == prVar44) {\n            iVar27 = prVar18[1].alloc;\n            pcVar53 = *(code **)(pcVar52 + 0x1e724);\n            puVar40 = puVar9 + (int)prVar28 * 8;\n            *puVar40 = rStack_144.alloc;\n            prVar35 = (re_node_set *)(iVar27 + iVar38);\n            puVar40[1] = rStack_144.nelem;\n            puVar41 = (undefined4 *)(iVar29 + (int)prVar28 * 0xc);\n            puVar40[2] = (uint)rStack_144.elems;\n            puVar40[3] = uStack_138;\n            puVar40[4] = uStack_134;\n            puVar40[5] = uStack_130;\n            puVar40[6] = uStack_12c;\n            puVar40[7] = uStack_128;\n            IVar22 = prVar35->alloc;\n            *puVar41 = 1;\n            puVar41[1] = 1;\n            pIVar15 = (Idx *)(*pcVar53)(4);\n            puVar41[2] = pIVar15;\n            if (pIVar15 != (Idx *)0x0) {\n              pIVar24 = prVar18->elems;\n              prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n              *pIVar15 = IVar22;\n              rStack_144.alloc = 0;\n              rStack_144.nelem = 0;\n              rStack_144.elems = (Idx *)0x0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar41[1] = 0;\n            *puVar41 = 0;\n            if (prVar28 == (re_node_set *)0x0) {\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }\n            else {\nLAB_0001e458:\n              iVar45 = iVar29;\n              do {\n                iVar46 = iVar45 + 0xc;\n                (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n                iVar45 = iVar46;\n              } while ((int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29 != iVar46);\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }\n            goto LAB_0001dffc;\n          }\n          pIVar24 = prVar18->elems;\n          goto LAB_0001dcc8;\n        }\n        if ((bVar1 != 1) || ((*(uint *)(pbVar47 + 4) & 0x200) == 0)) {\n          prVar44 = prVar7 + 8;\n          if ((int)prVar7[7].elems < 2) {\n            prVar35 = (re_node_set *)0x0;\n            prVar17 = &rStack_144;\n            do {\n              pIVar13 = &prVar17->nelem;\n              pIVar15 = &prVar44->alloc;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~*pIVar15 & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while ((re_node_set *)pIVar13 != &rStack_124);\n          }\n          else {\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar35 = (re_node_set *)0x0;\n            prVar17 = &rStack_144;\n            do {\n              pIVar13 = &prVar17->nelem;\n              uVar4 = *puVar40;\n              pIVar15 = &prVar44->alloc;\n              puVar40 = puVar40 + 1;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~(*pIVar15 & uVar4) & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }\n          if (prVar35 == (re_node_set *)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        rStack_144.alloc = 0;\n      }\n      else {\n        rStack_144.nelem = 0;\n        rStack_144.alloc = 0;\n        rStack_144.elems = (Idx *)0x0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if ((IVar22 & 0x400U) == 0) goto LAB_0001dcc8;\n        rStack_144.alloc = 0x400;\n        if ((uVar4 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        rStack_144.alloc = 0;\n      }\n      rStack_144.alloc = 0;\n      rStack_144.nelem = 0;\n      rStack_144.elems = (Idx *)0x0;\n      uStack_138 = 0;\n      uStack_134 = 0;\n      uStack_130 = 0;\n      uStack_12c = 0;\n      uStack_128 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        puVar40 = *(uint **)pbVar47;\n        prVar44 = &rStack_144;\n        do {\n          pIVar15 = &prVar44->nelem;\n          uVar30 = *puVar40;\n          puVar40 = puVar40 + 1;\n          prVar35 = (re_node_set *)(prVar44->alloc | uVar30);\n          prVar44->alloc = (Idx)prVar35;\n          prVar44 = (re_node_set *)pIVar15;\n        } while (&rStack_124 != (re_node_set *)pIVar15);\n        goto LAB_0001e060;\n      }\n      if (bVar1 == 5) {\n        if ((int)prVar7[7].elems < 2) {\n          rStack_144.alloc = -1;\n          rStack_144.nelem = 0xffffffff;\n          rStack_144.elems = (Idx *)0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          puVar40 = (uint *)prVar7[5].alloc;\n          prVar44 = &rStack_144;\n          do {\n            pIVar15 = &prVar44->nelem;\n            uVar30 = *puVar40;\n            puVar40 = puVar40 + 1;\n            prVar44->alloc = prVar44->alloc | uVar30;\n            prVar44 = (re_node_set *)pIVar15;\n          } while (&rStack_124 != (re_node_set *)pIVar15);\n        }\n        pIVar15 = prVar7[10].elems;\njoined_r0x0001e3b8:\n        if (((uint)pIVar15 & 0x40) == 0) {\n          rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffbff);\n        }\n        prVar35 = (re_node_set *)rStack_144.alloc;\n        if (((uint)pIVar15 & 0x80) != 0) {\n          prVar35 = (re_node_set *)&SUB_fffffffe;\n          rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      prVar35 = (re_node_set *)0xffffffff;\n      if (bVar1 == 7) {\n        pIVar15 = prVar7[10].elems;\n        rStack_144.alloc = -1;\n        rStack_144.nelem = 0xffffffff;\n        rStack_144.elems = (Idx *)0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }\nLAB_0001dcc8:\n    iStack_184 = iStack_184 + 1;\n    if ((int)pIVar24 <= iStack_184) goto code_r0x0001dcdc;\n    goto LAB_0001dc74;\n  }\n  (**(code **)(pcVar52 + 0x1e790))(iVar29);\n  goto LAB_0001e824;\ncode_r0x0001dcdc:\n  if (0 < (int)prVar28) {\n    pbVar47 = (byte *)((int)&prVar28->alloc + 1);\n    uStack_14c = 0;\n    pbStack_150 = pbVar47;\n    iVar45 = (**(code **)(pcVar52 + 0x1e724))((int)pbVar47 * 4);\n    iStack_148 = iVar45;\n    if ((iVar45 == 0) || (iStack_154 = 0, 0x155551aa < (int)prVar28)) {\n      iStack_178 = (int)prVar28 << 1;\n    }\n    else {\n      iStack_178 = (int)prVar28 * 2;\n      pIVar24 = (Idx *)(**(code **)(pcVar52 + 0x1e724))((int)prVar28 * 0xc);\n      if (pIVar24 != (Idx *)0x0) {\n        iVar45 = (int)pbVar47 * 4 + -4;\n        pprVar39 = &prStack_104;\n        iVar38 = 0;\n        pIVar15 = pIVar24 + (int)&prVar28->alloc;\n        prStack_104 = (re_dfa_t *)0x0;\n        piVar43 = (int *)(iVar29 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar46 = *(int *)(pcVar52 + 0x1e658);\n        uStack_f8 = 0;\n        bVar2 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar53 = (code *)(*(int *)(pcVar52 + 0x1e658) + -0x42b4);\n        do {\n          iVar27 = *piVar43;\n          iVar48 = 0;\n          uStack_14c = 0;\n          if (0 < iVar27) {\n            do {\n              iVar10 = *(int *)(prVar7[1].alloc + *(int *)(piVar43[1] + iVar48 * 4) * 4);\n              if (iVar10 != -1) {\n                prVar35 = (re_node_set *)(prVar7[2].alloc + iVar10 * 0xc);\n                iStack_154 = (*(code *)(iVar46 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar27 = *piVar43;\n              }\n              iVar48 = iVar48 + 1;\n            } while (iVar48 < iVar27);\n          }\n          prVar35 = prVar7;\n          iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,0);\n          *(int *)((int)pIVar24 + iVar38) = iVar27;\n          if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar27 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n          }\n          else {\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,1);\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar27 != *(int *)((int)pIVar24 + iVar38)) && (1 < (int)prVar7[7].elems)) {\n              bVar2 = true;\n            }\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,2);\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n            if ((iVar27 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar27 = iVar38 * 8 + iVar29;\n          pprVar11 = pprVar39;\n          do {\n            pprVar12 = pprVar11 + 1;\n            puVar40 = (uint *)(iVar27 + 0xc00);\n            iVar27 = iVar27 + 4;\n            *pprVar11 = (re_dfa_t *)((uint)*pprVar11 | *puVar40);\n            pprVar11 = pprVar12;\n          } while (&prStack_e4 != pprVar12);\n          iVar38 = iVar38 + 4;\n          piVar43 = piVar43 + 3;\n        } while (iVar45 != iVar38);\n        if (bVar2) {\n          prVar35 = (re_node_set *)0x200;\n          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n          prVar18[4].alloc = (Idx)pIVar13;\n          if (pIVar13 == (Idx *)0x0) goto LAB_0001e660;\n          iVar45 = iVar29;\n          pIVar37 = pIVar13;\n          do {\n            prVar21 = *pprVar39;\n            if (prVar21 != (re_dfa_t *)0x0) {\n              prVar35 = (re_node_set *)0x1;\n              pIVar34 = pIVar37;\n              do {\n                if (((uint)prVar21 & 1) != 0) {\n                  iVar38 = 0;\n                  pIVar25 = pIVar15;\n                  pIVar31 = pIVar24;\n                  iVar46 = iVar45;\n                  if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                    do {\n                      puVar40 = (uint *)(iVar46 + 0xc20);\n                      iVar38 = iVar38 + 1;\n                      iVar46 = iVar46 + 0x20;\n                    } while (((uint)prVar35 & *puVar40) == 0);\n                    pIVar25 = pIVar15 + iVar38;\n                    pIVar31 = pIVar24 + iVar38;\n                  }\n                  *pIVar34 = *pIVar31;\n                  pIVar34[0x100] = *pIVar25;\n                }\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1);\n                prVar35 = (re_node_set *)((int)prVar35 << 1);\n                pIVar34 = pIVar34 + 1;\n              } while (prVar21 != (re_dfa_t *)0x0);\n            }\n            pIVar37 = pIVar37 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            iVar45 = iVar45 + 4;\n          } while (pIVar13 + 0x100 != pIVar37);\n        }\n        else {\n          prVar35 = (re_node_set *)0x100;\n          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n          prVar18[3].elems = pIVar13;\n          if (pIVar13 == (Idx *)0x0) {\nLAB_0001e660:\n            pcVar50 = *(code **)(pcVar52 + 0x1e790);\nLAB_0001e664:\n            (*pcVar50)(pIVar24);\n            iVar45 = iStack_148;\n            goto LAB_0001e674;\n          }\n          prVar7 = prVar7 + 8;\n          iVar46 = 0;\n          iVar45 = iVar29;\n          do {\n            prVar35 = (re_node_set *)0x1;\n            iVar38 = iVar46;\n            for (prVar21 = *pprVar39; prVar21 != (re_dfa_t *)0x0;\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1)) {\n              if (((uint)prVar21 & 1) != 0) {\n                iVar48 = 0;\n                iVar27 = iVar45;\n                if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                  do {\n                    puVar40 = (uint *)(iVar27 + 0xc20);\n                    iVar48 = iVar48 + 1;\n                    iVar27 = iVar27 + 0x20;\n                  } while (((uint)prVar35 & *puVar40) == 0);\n                  iVar48 = iVar48 * 4;\n                }\n                if (((uint)prVar35 & prVar7->alloc) == 0) {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar24 + iVar48);\n                }\n                else {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar15 + iVar48);\n                }\n              }\n              prVar35 = (re_node_set *)((int)prVar35 << 1);\n              iVar38 = iVar38 + 1;\n            }\n            iVar46 = iVar46 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            prVar7 = (re_node_set *)&prVar7->nelem;\n            iVar45 = iVar45 + 4;\n          } while (iVar46 != 0x100);\n        }\n        pcVar53 = *(code **)(pcVar52 + 0x1e790);\n        if ((int)prStack_104 << 0x15 < 0) {\n          prVar35 = (re_node_set *)0x0;\n          do {\n            if ((*puVar9 & 0x400) != 0) {\n              IVar22 = pIVar15[(int)(pbVar47 + (int)((int)&prVar35[-1].elems + 3))];\n              pIVar13[10] = IVar22;\n              if (bVar2) {\n                pIVar13[0x10a] = IVar22;\n              }\n              break;\n            }\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            puVar9 = puVar9 + 8;\n          } while (prVar35 != prVar28);\n          pcVar53 = *(code **)(pcVar52 + 0x1e790);\n        }\n        (*pcVar53)(pIVar24);\n        (**(code **)(pcVar52 + 0x1e790))(iStack_148);\n        iVar45 = iVar29;\n        do {\n          iVar46 = iVar45 + 0xc;\n          (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n          iVar45 = iVar46;\n        } while (iVar29 + (int)prVar28 * 0xc != iVar46);\n        (**(code **)(pcVar52 + 0x1e790))(iVar29);\n        rVar5 = _REG_NOMATCH;\n        goto LAB_0001e000;\n      }\n    }\nLAB_0001e674:\n    (**(code **)(pcVar52 + 0x1e790))(iVar45);\n    iVar45 = iVar29;\n    do {\n      iVar46 = iVar45 + 0xc;\n      (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n      iVar45 = iVar46;\n    } while (iVar46 != (int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29);\n    (**(code **)(pcVar52 + 0x1e790))(iVar29);\nLAB_0001dffc:\n    rVar5 = _REG_NOERROR;\n    goto LAB_0001e000;\n  }\n  (**(code **)(pcVar52 + 0x1e790))(iVar29);\n  if (prVar28 != (re_node_set *)0x0) {\n    rVar5 = _REG_NOERROR;\n    goto LAB_0001e000;\n  }\nLAB_0001e824:\n  prVar35 = (re_node_set *)0x100;\n  pIVar24 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n  prVar18[3].elems = pIVar24;\n  rVar5 = (reg_errcode_t)(pIVar24 != (Idx *)0x0);\nLAB_0001e000:\n  if (prStack_e4 == (re_dfa_t *)*piVar8) {\n    return rVar5;\n  }\n  pcVar52 = *(code **)(pcVar52 + 0x1e764);\n  prVar21 = prStack_e4;\n  (*pcVar52)();\n  if (*(uchar *)&prVar35[2].alloc == '\x10') {\n    IVar22 = ((Idx *)prVar35->nelem)[7];\n    prVar35[1].alloc = ((Idx *)prVar35->nelem)[3];\n    prVar35[2].nelem = IVar22;\n    return _REG_NOERROR;\n  }\n  prVar35[1].alloc = (Idx)prVar35;\n  token.opr.sbcset = (re_bitset_ptr_t)(pcVar52 + 0x25764);\n  token._4_4_ = in_stack_fffffe4c;\n  IVar22 = re_dfa_add_node(prVar21,token);\n  prVar35[2].nelem = IVar22;\n  if (IVar22 == -1) {\n    rVar5 = _REG_ESPACE;\n  }\n  else {\n    if (*(uchar *)&prVar35[2].alloc == '\f') {\n      *(uint *)&prVar21->nodes[IVar22].field_0x4 =\n           *(uint *)&prVar21->nodes[IVar22].field_0x4 & 0xff003fff |\n           ((uint)prVar35[1].elems & 0x3ff) << 0xe;\n      return _REG_NOERROR;\n    }\n    rVar5 = _REG_NOERROR;\n  }\n  return rVar5;\n}\n\n" (function_definition "reg_errcode_t re_string_reconstruct(re_string_t *pstr,Idx idx,int eflags)\n\n{\n  byte bVar1;\n  re_token_t token;\n  bool bVar2;\n  undefined *puVar3;\n  uint uVar4;\n  uchar uVar16;\n  reg_errcode_t rVar5;\n  size_t sVar6;\n  re_node_set *prVar7;\n  int *piVar8;\n  uint *puVar9;\n  int iVar10;\n  re_dfa_t **pprVar11;\n  re_dfa_t **pprVar12;\n  Idx *pIVar13;\n  uint uVar14;\n  Idx *pIVar15;\n  re_node_set *prVar17;\n  re_node_set *prVar18;\n  wint_t *pwVar19;\n  uchar *puVar20;\n  re_dfa_t *prVar21;\n  Idx IVar22;\n  uchar *puVar23;\n  Idx *pIVar24;\n  Idx *pIVar25;\n  re_node_set *prVar26;\n  re_node_set *idx_00;\n  int iVar27;\n  re_node_set *prVar28;\n  int iVar29;\n  uint uVar30;\n  Idx *pIVar31;\n  re_node_set *prVar32;\n  wint_t wVar33;\n  Idx *pIVar34;\n  re_node_set *prVar35;\n  uint *puVar36;\n  Idx *pIVar37;\n  int iVar38;\n  re_node_set *set;\n  re_dfa_t **pprVar39;\n  uint *puVar40;\n  undefined4 *puVar41;\n  re_string_t *prVar42;\n  int *piVar43;\n  re_node_set *prVar44;\n  re_node_set *unaff_s2;\n  re_node_set *unaff_s3;\n  int iVar45;\n  int iVar46;\n  re_node_set *unaff_s7;\n  byte *pbVar47;\n  int iVar48;\n  undefined *puVar49;\n  code *pcVar50;\n  undefined *puVar51;\n  re_node_set *unaff_s8;\n  code *pcVar52;\n  code *pcVar53;\n  undefined4 in_stack_fffffe4c;\n  int iStack_184;\n  int iStack_178;\n  int iStack_154;\n  byte *pbStack_150;\n  undefined4 uStack_14c;\n  int iStack_148;\n  re_node_set rStack_144;\n  uint uStack_138;\n  uint uStack_134;\n  uint uStack_130;\n  uint uStack_12c;\n  uint uStack_128;\n  re_node_set rStack_124;\n  uint uStack_118;\n  uint uStack_114;\n  uint uStack_110;\n  uint uStack_10c;\n  uint uStack_108;\n  re_dfa_t *prStack_104;\n  uint uStack_100;\n  uint uStack_fc;\n  uint uStack_f8;\n  uint uStack_f4;\n  uint uStack_f0;\n  uint uStack_ec;\n  uint uStack_e8;\n  re_dfa_t *prStack_e4;\n  re_string_t *prStack_e0;\n  int iStack_dc;\n  re_node_set *prStack_d8;\n  re_node_set *prStack_d4;\n  int iStack_d0;\n  re_node_set *prStack_cc;\n  int iStack_c8;\n  re_node_set *prStack_c4;\n  re_node_set *prStack_c0;\n  code *pcStack_bc;\n  undefined *puStack_a8;\n  re_node_set *prStack_a0;\n  undefined4 *puStack_9c;\n  undefined1 auStack_98 [12];\n  re_node_set *prStack_8c;\n  re_string_t *prStack_88;\n  re_node_set *prStack_84;\n  re_node_set *prStack_80;\n  re_node_set *prStack_7c;\n  undefined *puStack_78;\n  re_node_set *prStack_74;\n  int iStack_70;\n  re_node_set *prStack_6c;\n  re_node_set *prStack_68;\n  code *pcStack_64;\n  wchar_t wc2;\n  mbstate_t cur_state;\n  uchar buf [6];\n  \n  puVar3 = PTR___stack_chk_guard_0003c314;\n  prVar17 = *(re_node_set **)PTR___stack_chk_guard_0003c314;\n  prVar28 = (re_node_set *)eflags;\n  prVar44 = (re_node_set *)(idx - pstr->raw_mbs_idx);\n  if (idx < pstr->raw_mbs_idx) {\n    if (1 < pstr->mb_cur_max) {\n      (pstr->cur_state).__count = 0;\n      (pstr->cur_state).__value.__wch = 0;\n    }\n    prVar28 = (re_node_set *)0x6;\n    if ((eflags & 1U) != 0) {\n      prVar28 = (re_node_set *)0x4;\n    }\n    pstr->len = pstr->raw_len;\n    pstr->stop = pstr->raw_stop;\n    pstr->valid_len = 0;\n    pstr->raw_mbs_idx = 0;\n    pstr->valid_raw_len = 0;\n    pstr->offsets_needed = '\0';\n    pstr->tip_context = (uint)prVar28;\n    prVar44 = (re_node_set *)idx;\n    if (pstr->mbs_allocated == '\0') {\n      pstr->mbs = pstr->raw_mbs;\n      goto LAB_0001d010;\n    }\n    if (idx == 0) goto LAB_0001d128;\nLAB_0001d018:\n    iVar29 = pstr->valid_raw_len;\n    unaff_s2 = (re_node_set *)pstr->valid_len;\n    if ((int)prVar44 < iVar29) {\n      if (pstr->offsets_needed == '\0') {\n        uVar4 = re_string_context_at(pstr,(Idx)((int)&prVar44[-1].elems + 3),eflags);\n        prVar28 = (re_node_set *)((int)unaff_s2 - (int)prVar44);\n        pstr->tip_context = uVar4;\n        if (1 < pstr->mb_cur_max) {\n          (*(code *)PTR_memmove_0003c324)(pstr->wcs,pstr->wcs + (int)prVar44,(int)prVar28 * 4);\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n        }\n        uVar16 = pstr->mbs_allocated;\n        if (uVar16 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44);\n          uVar16 = pstr->mbs_allocated;\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n        }\n        prVar32 = (re_node_set *)pstr->mb_cur_max;\n        prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n        pstr->valid_len = (Idx)prVar28;\n        IVar22 = pstr->stop - (int)prVar44;\n        pstr->valid_raw_len = pstr->valid_raw_len - (int)prVar44;\n      }\n      else {\n        unaff_s7 = (re_node_set *)pstr->offsets;\n        puVar23 = (uchar *)0x0;\n        prVar28 = unaff_s2;\n        do {\n          unaff_s3 = (re_node_set *)((int)(puVar23 + (int)prVar28) / 2);\n          iVar29 = (&unaff_s7->alloc)[(int)unaff_s3];\n          prVar18 = unaff_s3;\n          if ((iVar29 <= (int)prVar44) &&\n             (puVar23 = (uchar *)((int)&unaff_s3->alloc + 1), prVar18 = prVar28,\n             (int)prVar44 <= iVar29)) goto LAB_0001d460;\n          prVar28 = prVar18;\n        } while ((int)puVar23 < (int)prVar18);\n        if (iVar29 < (int)prVar44) {\n          prVar28 = unaff_s3;\n          unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n        }\n        else {\nLAB_0001d460:\n          prVar28 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n        }\n        uVar4 = re_string_context_at(pstr,(Idx)prVar28,eflags);\n        pstr->tip_context = uVar4;\n        if ((((int)prVar44 < (int)unaff_s2) && (eflags = (int)prVar44 * 4, prVar44 == unaff_s3)) &&\n           ((re_node_set *)(&unaff_s7->alloc)[(int)prVar44] == prVar44)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (pstr->wcs,pstr->wcs + (int)prVar44,((int)unaff_s2 - (int)prVar44) * 4);\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n          (*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44);\n          iVar29 = pstr->valid_len - (int)prVar44;\n          pstr->valid_len = iVar29;\n          pstr->valid_raw_len = pstr->valid_raw_len - (int)prVar44;\n          if (0 < iVar29) {\n            iVar29 = 0;\n            prVar28 = (re_node_set *)((int)prVar44 * -4);\n            piVar8 = pstr->offsets + (int)prVar44;\n            do {\n              iVar29 = iVar29 + 1;\n              piVar8[-(int)prVar44] = *piVar8 - (int)prVar44;\n              piVar8 = piVar8 + 1;\n            } while (iVar29 < pstr->valid_len);\n          }\n          prVar32 = (re_node_set *)pstr->mb_cur_max;\n          uVar16 = pstr->mbs_allocated;\n          prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n          IVar22 = pstr->stop - (int)prVar44;\n        }\n        else {\n          pstr->offsets_needed = '\0';\n          prVar18 = (re_node_set *)(pstr->raw_len - idx);\n          IVar22 = pstr->raw_stop - idx;\n          pstr->len = (Idx)((int)&prVar44->alloc + (int)&prVar18->alloc);\n          pstr->stop = (Idx)(IVar22 + (int)prVar44);\n          if ((0 < (int)unaff_s3) &&\n             (prVar44 == *(re_node_set **)((int)unaff_s7 + (int)unaff_s3 * 4 + -4))) {\n            pIVar24 = &unaff_s7->alloc + (int)unaff_s3;\n            do {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n              if (unaff_s3 == (re_node_set *)0x0) break;\n              pIVar15 = pIVar24 + -2;\n              pIVar24 = pIVar24 + -1;\n            } while ((re_node_set *)*pIVar15 == prVar44);\n          }\n          iVar29 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            pwVar19 = pstr->wcs + (int)unaff_s3;\n            wVar33 = *pwVar19;\n            while (wVar33 == 0xffffffff) {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n              pwVar19 = pwVar19 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar29 = (int)unaff_s3 * 4;\n              wVar33 = *pwVar19;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (re_node_set *)((int)&unaff_s7->alloc + iVar29);\n            prVar28 = (re_node_set *)(unaff_s7->alloc - (int)prVar44);\n            pstr->valid_len = (Idx)prVar28;\n            if (prVar28 != (re_node_set *)0x0) {\n              if (0 < (int)prVar28) {\n                pwVar19 = pstr->wcs;\n                iVar29 = 0;\n                do {\n                  *pwVar19 = 0xffffffff;\n                  iVar29 = iVar29 + 1;\n                  pwVar19 = pwVar19 + 1;\n                } while (iVar29 < pstr->valid_len);\n              }\n              (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n              prVar28 = (re_node_set *)pstr->valid_len;\n              prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n              IVar22 = pstr->stop - (int)prVar44;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            prVar28 = (re_node_set *)0x0;\n            pstr->valid_len = 0;\n          }\n          prVar32 = (re_node_set *)pstr->mb_cur_max;\n          uVar16 = pstr->mbs_allocated;\n          pstr->valid_raw_len = (Idx)prVar28;\n        }\n      }\nLAB_0001d090:\n      prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);\n      if (uVar16 == '\0') {\nLAB_0001d098:\n        prVar44 = (re_node_set *)(pstr->mbs + (int)prVar44);\n        pstr->mbs = (uchar *)prVar44;\n      }\n      pstr->raw_mbs_idx = idx;\n      pstr->len = (Idx)prVar18;\n      pstr->stop = IVar22;\n      if (prVar26 == (re_node_set *)0x0) goto LAB_0001d0b4;\nLAB_0001d148:\n      uVar16 = pstr->mbs_allocated;\n    }\n    else {\n      if (pstr->offsets_needed != '\0') {\n        pstr->offsets_needed = '\0';\n        pstr->len = (Idx)((pstr->raw_len - idx) + (int)prVar44);\n        pstr->stop = (Idx)((pstr->raw_stop - idx) + (int)prVar44);\n      }\n      prVar32 = (re_node_set *)pstr->mb_cur_max;\n      unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n      prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);\n      pstr->valid_len = 0;\n      if (prVar26 == (re_node_set *)0x0) {\n        if (pstr->is_utf8 == '\0') {\nLAB_0001d228:\n          puVar23 = (uchar *)((int)&unaff_s8->alloc + iVar29);\n          if ((int)puVar23 < idx) {\n            unaff_s7 = (re_node_set *)&wc2;\n            do {\n              cur_state.__count = (pstr->cur_state).__count;\n              cur_state.__value = (pstr->cur_state).__value;\n              prVar18 = (re_node_set *)(pstr->raw_len - (int)puVar23);\n              prVar28 = prVar18;\n              sVar6 = rpl_mbrtowc((wchar_t *)unaff_s7,(char *)(puVar23 + (int)pstr->raw_mbs),\n                                  (size_t)prVar18,&pstr->cur_state);\n              unaff_s3 = (re_node_set *)wc2;\n              if (0xfffffffc < sVar6 - 1) {\n                if ((sVar6 == 0) || (prVar18 == (re_node_set *)0x0)) {\n                  unaff_s3 = (re_node_set *)0x0;\n                }\n                else {\n                  unaff_s3 = (re_node_set *)(uint)puVar23[(int)pstr->raw_mbs];\n                }\n                sVar6 = 1;\n                (pstr->cur_state).__count = cur_state.__count;\n                (pstr->cur_state).__value = cur_state.__value;\n              }\n              puVar23 = puVar23 + sVar6;\n            } while ((int)puVar23 < idx);\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n            if (unaff_s3 != (re_node_set *)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n          }\n          prVar28 = (re_node_set *)eflags;\n          uVar4 = re_string_context_at(pstr,(Idx)((int)&unaff_s2[-1].elems + 3),eflags);\n          pstr->tip_context = uVar4;\n        }\n        else {\n          prVar18 = (re_node_set *)pstr->raw_mbs;\n          unaff_s7 = (re_node_set *)((int)&unaff_s8->alloc + (int)&prVar18->alloc);\n          prVar28 = (re_node_set *)((int)unaff_s7 + ((int)prVar44 - (int)prVar32));\n          unaff_s3 = (re_node_set *)\n                     ((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)&unaff_s7->alloc);\n          if (prVar28 <= prVar18) {\n            prVar28 = prVar18;\n          }\n          if (unaff_s3 < prVar28) goto LAB_0001d228;\n          bVar1 = *(byte *)&unaff_s3->alloc;\n          while ((bVar1 & 0xc0) == 0x80) {\n            unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n            if (unaff_s3 < prVar28) goto LAB_0001d228;\n            bVar1 = *(byte *)&unaff_s3->alloc;\n          }\n          puVar23 = pstr->trans;\n          prVar28 = (re_node_set *)((int)unaff_s7 + (pstr->len - (int)unaff_s3));\n          prVar18 = unaff_s3;\n          if (puVar23 != (uchar *)0x0) {\n            prVar26 = (re_node_set *)0x6;\n            if ((int)prVar28 < 7) {\n              prVar26 = prVar28;\n            }\n            prVar18 = (re_node_set *)buf;\n            if (0 < (int)prVar28) {\n              puVar20 = (uchar *)((int)&prVar26->alloc + (int)&unaff_s3->alloc);\n              prVar26 = (re_node_set *)((int)&prVar26->alloc + (int)&prVar18->alloc);\n              do {\n                pbVar47 = puVar20 + -1;\n                prVar26 = (re_node_set *)((int)&prVar26[-1].elems + 3);\n                puVar20 = puVar20 + -1;\n                *(uchar *)&prVar26->alloc = puVar23[*pbVar47];\n              } while (prVar18 != prVar26);\n            }\n          }\n          cur_state.__count = 0;\n          cur_state.__value.__wch = 0;\n          puVar23 = (uchar *)rpl_mbrtowc(&wc2,(char *)prVar18,(size_t)prVar28,&cur_state);\n          puVar20 = (uchar *)((int)prVar44 + ((int)unaff_s7 - (int)unaff_s3));\n          if ((puVar23 < puVar20) || ((uchar *)0xfffffffd < puVar23)) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (re_node_set *)(puVar23 + -(int)puVar20);\n          (pstr->cur_state).__count = 0;\n          (pstr->cur_state).__value.__wch = 0;\n          pstr->valid_len = (Idx)unaff_s8;\n          unaff_s3 = (re_node_set *)wc2;\n          if (wc2 == -1) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((pstr->word_ops_used == '\0') ||\n             ((iVar29 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar29 == 0 &&\n              (unaff_s3 != (re_node_set *)0x5f)))) {\n            uVar4 = 2;\n            if (unaff_s3 == (re_node_set *)0xa) {\n              if (pstr->newline_anchor == '\0') {\n                uVar4 = 0;\n              }\n            }\n            else {\n              uVar4 = 0;\n            }\n          }\n          else {\n            uVar4 = 1;\n          }\n          pstr->tip_context = uVar4;\n        }\n        prVar18 = prVar28;\n        if (unaff_s8 == (re_node_set *)0x0) {\nLAB_0001d2cc:\n          uVar16 = pstr->mbs_allocated;\n          prVar28 = prVar18;\n        }\n        else {\n          iVar29 = 0;\n          prVar18 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            pwVar19 = pstr->wcs;\n            do {\n              *pwVar19 = 0xffffffff;\n              iVar29 = iVar29 + 1;\n              prVar18 = (re_node_set *)pstr->valid_len;\n              pwVar19 = pwVar19 + 1;\n            } while (iVar29 < (int)prVar18);\n          }\n          if (pstr->mbs_allocated != '\0') {\n            (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n            unaff_s8 = (re_node_set *)pstr->valid_len;\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (re_node_set *)pstr->valid_len;\n          uVar16 = '\0';\n        }\n        prVar32 = (re_node_set *)pstr->mb_cur_max;\n        pstr->valid_raw_len = (Idx)unaff_s8;\n        prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n        IVar22 = pstr->stop - (int)prVar44;\n        goto LAB_0001d090;\n      }\n      uVar4 = (uint)(byte)((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)pstr->raw_mbs)\n                          [(int)unaff_s8];\n      pstr->valid_raw_len = 0;\n      if (pstr->trans != (uchar *)0x0) {\n        uVar4 = (uint)pstr->trans[uVar4];\n      }\n      prVar28 = (re_node_set *)(pstr->word_char[(int)uVar4 >> 5] >> (uVar4 & 0x1f) & 1);\n      if (((prVar28 == (re_node_set *)0x0) && (uVar4 == 10)) &&\n         (prVar28 = (re_node_set *)0x2, pstr->newline_anchor == '\0')) {\n        prVar28 = (re_node_set *)0x0;\n      }\n      uVar16 = pstr->mbs_allocated;\n      pstr->tip_context = (uint)prVar28;\n      prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n      IVar22 = pstr->stop - (int)prVar44;\n      if (uVar16 == '\0') goto LAB_0001d098;\n      pstr->raw_mbs_idx = idx;\n      pstr->len = (Idx)prVar18;\n      pstr->stop = IVar22;\n    }\n    if (uVar16 == '\0') {\n      pstr->valid_len = (Idx)prVar18;\n    }\n    else if (pstr->icase == '\0') {\n      prVar26 = (re_node_set *)pstr->trans;\n      if (prVar26 != (re_node_set *)0x0) {\n        prVar28 = (re_node_set *)pstr->bufs_len;\n        prVar35 = (re_node_set *)pstr->valid_len;\n        if ((int)prVar28 <= (int)prVar18) {\n          prVar18 = prVar28;\n        }\n        if ((int)prVar35 < (int)prVar18) {\n          while( true ) {\n            prVar28 = (re_node_set *)(pstr->mbs + (int)prVar35);\n            idx = (int)&prVar35->alloc + (int)(pstr->raw_mbs + idx);\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            prVar26 = (re_node_set *)\n                      ((int)&prVar26->alloc + (uint)*(byte *)&((re_node_set *)idx)->alloc);\n            *(uchar *)&prVar28->alloc = *(uchar *)&prVar26->alloc;\n            if (prVar18 == prVar35) break;\n            idx = pstr->raw_mbs_idx;\n            prVar26 = (re_node_set *)pstr->trans;\n          }\n          pstr->valid_len = (Idx)prVar18;\n          pstr->valid_raw_len = (Idx)prVar18;\n        }\n        else {\n          pstr->valid_len = (Idx)prVar35;\n          pstr->valid_raw_len = (Idx)prVar35;\n        }\n      }\n    }\n    else {\n      build_upper_buffer(pstr);\n    }\nLAB_0001d0dc:\n    rVar5 = _REG_NOERROR;\n    pstr->cur_idx = 0;\n  }\n  else {\nLAB_0001d010:\n    if (prVar44 != (re_node_set *)0x0) goto LAB_0001d018;\nLAB_0001d128:\n    prVar32 = (re_node_set *)pstr->mb_cur_max;\n    prVar18 = (re_node_set *)pstr->len;\n    prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);\n    pstr->raw_mbs_idx = idx;\n    pstr->len = (Idx)prVar18;\n    pstr->stop = pstr->stop;\n    if (prVar26 != (re_node_set *)0x0) goto LAB_0001d148;\nLAB_0001d0b4:\n    if (pstr->icase == '\0') {\n      build_wcs_buffer(pstr);\n      goto LAB_0001d0dc;\n    }\n    rVar5 = build_wcs_upper_buffer(pstr);\n    if (rVar5 == _REG_NOERROR) goto LAB_0001d0dc;\n  }\n  if (prVar17 == *(re_node_set **)puVar3) {\n    return rVar5;\n  }\n  pcVar52 = sub_epsilon_src_nodes;\n  puVar49 = PTR___stack_chk_fail_0003c2f4;\n  (*(code *)PTR___stack_chk_fail_0003c2f4)();\n  puVar51 = puVar49 + 0x26830;\n  puStack_9c = *(undefined4 **)(puVar49 + 0x1ea74);\n  auStack_98._0_4_ = 0;\n  auStack_98._4_4_ = (re_node_set *)0x0;\n  auStack_98._8_4_ = (Idx *)0x0;\n  iVar29 = prVar17[2].nelem + (int)prVar26 * 0xc;\n  puStack_78 = puVar3;\n  prStack_8c = (re_node_set *)*puStack_9c;\n  prVar35 = *(re_node_set **)(iVar29 + 4);\n  iVar45 = *(int *)(puVar49 + 0x1e948);\n  prVar18 = prVar26;\n  puStack_a8 = puVar51;\n  prStack_a0 = prVar32;\n  prStack_88 = pstr;\n  prStack_84 = prVar44;\n  prStack_80 = unaff_s2;\n  prStack_7c = unaff_s3;\n  prStack_74 = (re_node_set *)idx;\n  iStack_70 = eflags;\n  prStack_6c = unaff_s7;\n  prStack_68 = unaff_s8;\n  pcStack_64 = pcVar52;\n  if (0 < (int)prVar35) {\n    prVar32 = (re_node_set *)auStack_98;\n    prVar42 = (re_string_t *)0x0;\n    prVar44 = (re_node_set *)(iVar29 + 8);\n    iVar45 = iVar45 + -0x5d30;\n    iVar46 = *(int *)(puVar49 + 0x1e948) + -20000;\n    do {\n      prVar7 = *(re_node_set **)(*(int *)(iVar29 + 8) + (int)prVar42 * 4);\n      if ((prVar26 != prVar7) && ((*(byte *)(prVar17->alloc + (int)prVar7 * 8 + 4) & 8) != 0)) {\n        iVar38 = (int)prVar7 * 0xc;\n        pIVar24 = prVar17[1].elems + (int)prVar7 * 3;\n        puVar41 = (undefined4 *)pIVar24[2];\n        prVar7 = (re_node_set *)*puVar41;\n        prVar18 = prVar44;\n        IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7);\n        if (pIVar24[1] < 2) {\n          puVar51 = puStack_a8;\n          if (IVar22 == 0) {\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((IVar22 == 0) &&\n                (IVar22 = re_node_set_contains\n                                    ((re_node_set *)prVar28->nelem,(Idx)&prVar28->elems,prVar7),\n                IVar22 != 0)) {\nLAB_0001d960:\n          iVar27 = prVar17[2].nelem;\nLAB_0001d964:\n          prVar18 = prStack_a0;\n          prVar35 = (re_node_set *)\n                    re_node_set_add_intersect(prVar32,prStack_a0,(re_node_set *)(iVar27 + iVar38));\n          if (prVar35 != (re_node_set *)0x0) {\n            prStack_a0 = prVar35;\n            (**(code **)(puStack_a8 + -0x7db0))(auStack_98._8_4_);\n            prVar35 = prStack_a0;\n            goto LAB_0001db20;\n          }\n          prVar35 = *(re_node_set **)(iVar29 + 4);\n          puVar51 = puStack_a8;\n        }\n        else {\n          prVar7 = (re_node_set *)puVar41[1];\n          prVar18 = prVar44;\n          puVar51 = puStack_a8;\n          if ((0 < (int)prVar7) &&\n             (IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7), puVar51 = puStack_a8,\n             IVar22 == 0)) {\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) {\n              iVar27 = prVar17[2].nelem;\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }\n      prVar42 = (re_string_t *)((int)&prVar42->raw_mbs + 1);\n    } while ((int)prVar42 < (int)prVar35);\n    pstr = prVar42;\n    unaff_s2 = prVar26;\n    unaff_s3 = prVar28;\n    idx = (Idx)prVar44;\n    eflags = iVar46;\n    unaff_s7 = prVar32;\n    unaff_s8 = prVar17;\n    if (0 < (int)prVar35) {\n      iVar46 = 0;\n      prVar26 = (re_node_set *)&prVar28->nelem;\n      prVar17 = (re_node_set *)&prVar28->elems;\n      prVar44 = (re_node_set *)(auStack_98 + 8);\n      do {\n        prVar18 = *(re_node_set **)(*(int *)(iVar29 + 8) + iVar46 * 4);\n        prVar7 = prVar44;\n        IVar22 = re_node_set_contains((re_node_set *)auStack_98._4_4_,(Idx)prVar44,prVar18);\n        prVar32 = prVar17;\n        if (IVar22 == 0) {\n          set = (re_node_set *)prVar28->nelem;\n          idx_00 = prVar17;\n          IVar22 = re_node_set_contains(set,(Idx)prVar17,prVar18);\n          prVar18 = (re_node_set *)(IVar22 + -1);\n          prVar44 = prVar17;\n          prVar32 = idx_00;\n          if ((-1 < (int)prVar18) && ((int)prVar18 < (int)set)) {\n            prVar28->nelem = (Idx)((int)&set[-1].elems + 3);\n            re_node_set_remove_at(prVar26,(Idx)idx_00,prVar18);\n            prVar35 = *(re_node_set **)(iVar29 + 4);\n            prVar44 = idx_00;\n          }\n        }\n        iVar46 = iVar46 + 1;\n        prVar18 = prVar44;\n        prVar17 = prVar32;\n        prVar44 = prVar7;\n        puVar51 = puStack_a8;\n      } while (iVar46 < (int)prVar35);\n    }\n  }\n  (**(code **)(puVar51 + -0x7db0))(auStack_98._8_4_);\n  prVar35 = (re_node_set *)0x0;\n  prVar42 = pstr;\n  prVar26 = unaff_s2;\n  prVar28 = unaff_s3;\n  prVar44 = (re_node_set *)idx;\n  iVar46 = eflags;\n  prVar32 = unaff_s7;\n  prVar17 = unaff_s8;\nLAB_0001db20:\n  if (prStack_8c == (re_node_set *)*puStack_9c) {\n    return (reg_errcode_t)prVar35;\n  }\n  pcVar52 = *(code **)(puStack_a8 + -0x7ddc);\n  pcVar53 = build_trtable;\n  prVar7 = prStack_8c;\n  (*pcVar52)();\n  piVar8 = *(int **)(pcVar52 + 0x1e784);\n  prStack_e4 = (re_dfa_t *)*piVar8;\n  prVar35 = prVar18;\n  prStack_e0 = prVar42;\n  iStack_dc = iVar29;\n  prStack_d8 = prVar26;\n  prStack_d4 = prVar28;\n  iStack_d0 = iVar45;\n  prStack_cc = prVar44;\n  iStack_c8 = iVar46;\n  prStack_c4 = prVar32;\n  prStack_c0 = prVar17;\n  pcStack_bc = pcVar53;\n  iVar29 = (**(code **)(pcVar52 + 0x1e724))(0x2c00);\n  if (iVar29 == 0) goto LAB_0001dffc;\n  pIVar24 = prVar18->elems;\n  prVar18[3].elems = (Idx *)0x0;\n  puVar9 = (uint *)(iVar29 + 0xc00);\n  prVar18[4].alloc = 0;\n  rStack_144.alloc = 0;\n  rStack_144.nelem = 0;\n  rStack_144.elems = (Idx *)0x0;\n  uStack_138 = 0;\n  uStack_134 = 0;\n  uStack_130 = 0;\n  uStack_12c = 0;\n  uStack_128 = 0;\n  if (0 < (int)pIVar24) {\n    iVar45 = *(int *)(pcVar52 + 0x1e658);\n    iStack_184 = 0;\n    iVar46 = *(int *)(pcVar52 + 0x1e658);\n    prVar28 = (re_node_set *)0x0;\nLAB_0001dc74:\n    iVar38 = iStack_184 * 4;\n    pbVar47 = (byte *)(prVar7->alloc + *(int *)(prVar18[1].alloc + iVar38) * 8);\n    bVar1 = pbVar47[4];\n    uVar4 = (uint)(*(int *)(pbVar47 + 4) << 8) >> 0x16;\n    if (bVar1 == 1) {\n      pIVar15 = &rStack_144.alloc + ((int)(uint)*pbVar47 >> 5);\n      prVar35 = (re_node_set *)(*pIVar15 | 1 << (*pbVar47 & 0x1f));\n      *pIVar15 = (Idx)prVar35;\nLAB_0001e060:\n      IVar22 = rStack_144.alloc;\n      if (uVar4 == 0) goto LAB_0001e15c;\n      if ((uVar4 & 0x20) == 0) {\n        if ((uVar4 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar4 & 4) != 0) {\n          if (bVar1 == 1) {\n            if ((*(uint *)(pbVar47 + 4) & 0x200) == 0) goto LAB_0001e428;\n            pIVar15 = prVar7[7].elems;\n          }\n          else {\n            pIVar15 = prVar7[7].elems;\n          }\n          if ((int)pIVar15 < 2) {\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              pIVar13 = &prVar44->nelem;\n              pIVar15 = &prVar17->alloc;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              prVar35 = (re_node_set *)(prVar44->alloc & *pIVar15);\n              prVar44->alloc = (Idx)prVar35;\n              uVar30 = uVar30 | (uint)prVar35;\n              prVar44 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }\n          else {\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              prVar35 = (re_node_set *)&prVar44->nelem;\n              uVar14 = *puVar40;\n              pIVar15 = &prVar17->alloc;\n              puVar40 = puVar40 + 1;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              uVar14 = (~uVar14 | *pIVar15) & prVar44->alloc;\n              prVar44->alloc = uVar14;\n              uVar30 = uVar30 | uVar14;\n              prVar44 = prVar35;\n            } while (&rStack_124 != prVar35);\n          }\n          if (uVar30 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar4 & 8) == 0) {\nLAB_0001e15c:\n          prVar44 = (re_node_set *)0x0;\n          if (0 < (int)prVar28) {\n            prVar44 = (re_node_set *)0x0;\n            puVar40 = puVar9;\n            do {\n              prVar35 = (re_node_set *)((int)prVar44 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar9 + ((int)(uint)*pbVar47 >> 5))[(int)prVar44 * 8] >> (*pbVar47 & 0x1f) & 1)\n                  != 0)) {\n                uVar4 = 0;\n                prVar17 = &rStack_144;\n                prVar26 = &rStack_124;\n                puVar36 = puVar40;\n                do {\n                  pIVar24 = &prVar17->nelem;\n                  uVar30 = *puVar36;\n                  puVar36 = puVar36 + 1;\n                  uVar30 = prVar17->alloc & uVar30;\n                  prVar26->alloc = uVar30;\n                  uVar4 = uVar4 | uVar30;\n                  prVar17 = (re_node_set *)pIVar24;\n                  prVar26 = (re_node_set *)&prVar26->nelem;\n                } while (&rStack_124 != (re_node_set *)pIVar24);\n                prVar35 = &rStack_144;\n                if (uVar4 != 0) {\n                  uVar30 = 0;\n                  uVar4 = 0;\n                  prVar17 = &rStack_144;\n                  puVar36 = puVar40;\n                  pprVar39 = &prStack_104;\n                  do {\n                    uVar14 = *puVar36;\n                    puVar36 = puVar36 + 1;\n                    prVar21 = (re_dfa_t *)(~prVar17->alloc & uVar14);\n                    uVar14 = ~uVar14 & prVar17->alloc;\n                    *pprVar39 = prVar21;\n                    prVar17->alloc = uVar14;\n                    uVar4 = uVar4 | (uint)prVar21;\n                    uVar30 = uVar30 | uVar14;\n                    prVar17 = (re_node_set *)&prVar17->nelem;\n                    pprVar39 = pprVar39 + 1;\n                  } while (puVar40 + 8 != puVar36);\n                  prVar17 = (re_node_set *)(iVar29 + (int)prVar44 * 0xc);\n                  if (uVar4 != 0) {\n                    iStack_178 = (int)prVar28 * 2;\n                    puVar36 = puVar9 + (int)prVar28 * 8;\n                    *puVar36 = (uint)prStack_104;\n                    puVar36[1] = uStack_100;\n                    puVar36[2] = uStack_fc;\n                    puVar36[3] = uStack_f8;\n                    puVar36[4] = uStack_f4;\n                    puVar36[5] = uStack_f0;\n                    puVar36[6] = uStack_ec;\n                    puVar36[7] = uStack_e8;\n                    puVar40[1] = rStack_124.nelem;\n                    puVar40[2] = (uint)rStack_124.elems;\n                    *puVar40 = rStack_124.alloc;\n                    puVar40[3] = uStack_118;\n                    puVar40[4] = uStack_114;\n                    puVar40[5] = uStack_110;\n                    puVar40[6] = uStack_10c;\n                    puVar40[7] = uStack_108;\n                    prVar35 = prVar17;\n                    iVar27 = (*(code *)(iVar46 + -0x4580))(iVar29 + (int)prVar28 * 0xc);\n                    if (iVar27 != 0) goto LAB_0001e458;\n                    prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n                  }\n                  prVar35 = *(re_node_set **)(prVar18[1].alloc + iVar38);\n                  iVar27 = (*(code *)(iVar45 + -0x7b38))(prVar17);\n                  if (iVar27 == 0) {\n                    iStack_178 = (int)prVar28 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar30 == 0) break;\n                }\n              }\n              puVar40 = puVar40 + 8;\n              prVar44 = (re_node_set *)((int)&prVar44->alloc + 1);\n            } while ((int)prVar44 < (int)prVar28);\n          }\n          iStack_178 = (int)prVar28 * 2;\n          if (prVar28 == prVar44) {\n            iVar27 = prVar18[1].alloc;\n            pcVar53 = *(code **)(pcVar52 + 0x1e724);\n            puVar40 = puVar9 + (int)prVar28 * 8;\n            *puVar40 = rStack_144.alloc;\n            prVar35 = (re_node_set *)(iVar27 + iVar38);\n            puVar40[1] = rStack_144.nelem;\n            puVar41 = (undefined4 *)(iVar29 + (int)prVar28 * 0xc);\n            puVar40[2] = (uint)rStack_144.elems;\n            puVar40[3] = uStack_138;\n            puVar40[4] = uStack_134;\n            puVar40[5] = uStack_130;\n            puVar40[6] = uStack_12c;\n            puVar40[7] = uStack_128;\n            IVar22 = prVar35->alloc;\n            *puVar41 = 1;\n            puVar41[1] = 1;\n            pIVar15 = (Idx *)(*pcVar53)(4);\n            puVar41[2] = pIVar15;\n            if (pIVar15 != (Idx *)0x0) {\n              pIVar24 = prVar18->elems;\n              prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n              *pIVar15 = IVar22;\n              rStack_144.alloc = 0;\n              rStack_144.nelem = 0;\n              rStack_144.elems = (Idx *)0x0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar41[1] = 0;\n            *puVar41 = 0;\n            if (prVar28 == (re_node_set *)0x0) {\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }\n            else {\nLAB_0001e458:\n              iVar45 = iVar29;\n              do {\n                iVar46 = iVar45 + 0xc;\n                (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n                iVar45 = iVar46;\n              } while ((int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29 != iVar46);\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }\n            goto LAB_0001dffc;\n          }\n          pIVar24 = prVar18->elems;\n          goto LAB_0001dcc8;\n        }\n        if ((bVar1 != 1) || ((*(uint *)(pbVar47 + 4) & 0x200) == 0)) {\n          prVar44 = prVar7 + 8;\n          if ((int)prVar7[7].elems < 2) {\n            prVar35 = (re_node_set *)0x0;\n            prVar17 = &rStack_144;\n            do {\n              pIVar13 = &prVar17->nelem;\n              pIVar15 = &prVar44->alloc;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~*pIVar15 & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while ((re_node_set *)pIVar13 != &rStack_124);\n          }\n          else {\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar35 = (re_node_set *)0x0;\n            prVar17 = &rStack_144;\n            do {\n              pIVar13 = &prVar17->nelem;\n              uVar4 = *puVar40;\n              pIVar15 = &prVar44->alloc;\n              puVar40 = puVar40 + 1;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~(*pIVar15 & uVar4) & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }\n          if (prVar35 == (re_node_set *)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        rStack_144.alloc = 0;\n      }\n      else {\n        rStack_144.nelem = 0;\n        rStack_144.alloc = 0;\n        rStack_144.elems = (Idx *)0x0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if ((IVar22 & 0x400U) == 0) goto LAB_0001dcc8;\n        rStack_144.alloc = 0x400;\n        if ((uVar4 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        rStack_144.alloc = 0;\n      }\n      rStack_144.alloc = 0;\n      rStack_144.nelem = 0;\n      rStack_144.elems = (Idx *)0x0;\n      uStack_138 = 0;\n      uStack_134 = 0;\n      uStack_130 = 0;\n      uStack_12c = 0;\n      uStack_128 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        puVar40 = *(uint **)pbVar47;\n        prVar44 = &rStack_144;\n        do {\n          pIVar15 = &prVar44->nelem;\n          uVar30 = *puVar40;\n          puVar40 = puVar40 + 1;\n          prVar35 = (re_node_set *)(prVar44->alloc | uVar30);\n          prVar44->alloc = (Idx)prVar35;\n          prVar44 = (re_node_set *)pIVar15;\n        } while (&rStack_124 != (re_node_set *)pIVar15);\n        goto LAB_0001e060;\n      }\n      if (bVar1 == 5) {\n        if ((int)prVar7[7].elems < 2) {\n          rStack_144.alloc = -1;\n          rStack_144.nelem = 0xffffffff;\n          rStack_144.elems = (Idx *)0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          puVar40 = (uint *)prVar7[5].alloc;\n          prVar44 = &rStack_144;\n          do {\n            pIVar15 = &prVar44->nelem;\n            uVar30 = *puVar40;\n            puVar40 = puVar40 + 1;\n            prVar44->alloc = prVar44->alloc | uVar30;\n            prVar44 = (re_node_set *)pIVar15;\n          } while (&rStack_124 != (re_node_set *)pIVar15);\n        }\n        pIVar15 = prVar7[10].elems;\njoined_r0x0001e3b8:\n        if (((uint)pIVar15 & 0x40) == 0) {\n          rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffbff);\n        }\n        prVar35 = (re_node_set *)rStack_144.alloc;\n        if (((uint)pIVar15 & 0x80) != 0) {\n          prVar35 = (re_node_set *)&SUB_fffffffe;\n          rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      prVar35 = (re_node_set *)0xffffffff;\n      if (bVar1 == 7) {\n        pIVar15 = prVar7[10].elems;\n        rStack_144.alloc = -1;\n        rStack_144.nelem = 0xffffffff;\n        rStack_144.elems = (Idx *)0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }\nLAB_0001dcc8:\n    iStack_184 = iStack_184 + 1;\n    if ((int)pIVar24 <= iStack_184) goto code_r0x0001dcdc;\n    goto LAB_0001dc74;\n  }\n  (**(code **)(pcVar52 + 0x1e790))(iVar29);\n  goto LAB_0001e824;\ncode_r0x0001dcdc:\n  if (0 < (int)prVar28) {\n    pbVar47 = (byte *)((int)&prVar28->alloc + 1);\n    uStack_14c = 0;\n    pbStack_150 = pbVar47;\n    iVar45 = (**(code **)(pcVar52 + 0x1e724))((int)pbVar47 * 4);\n    iStack_148 = iVar45;\n    if ((iVar45 == 0) || (iStack_154 = 0, 0x155551aa < (int)prVar28)) {\n      iStack_178 = (int)prVar28 << 1;\n    }\n    else {\n      iStack_178 = (int)prVar28 * 2;\n      pIVar24 = (Idx *)(**(code **)(pcVar52 + 0x1e724))((int)prVar28 * 0xc);\n      if (pIVar24 != (Idx *)0x0) {\n        iVar45 = (int)pbVar47 * 4 + -4;\n        pprVar39 = &prStack_104;\n        iVar38 = 0;\n        pIVar15 = pIVar24 + (int)&prVar28->alloc;\n        prStack_104 = (re_dfa_t *)0x0;\n        piVar43 = (int *)(iVar29 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar46 = *(int *)(pcVar52 + 0x1e658);\n        uStack_f8 = 0;\n        bVar2 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar53 = (code *)(*(int *)(pcVar52 + 0x1e658) + -0x42b4);\n        do {\n          iVar27 = *piVar43;\n          iVar48 = 0;\n          uStack_14c = 0;\n          if (0 < iVar27) {\n            do {\n              iVar10 = *(int *)(prVar7[1].alloc + *(int *)(piVar43[1] + iVar48 * 4) * 4);\n              if (iVar10 != -1) {\n                prVar35 = (re_node_set *)(prVar7[2].alloc + iVar10 * 0xc);\n                iStack_154 = (*(code *)(iVar46 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar27 = *piVar43;\n              }\n              iVar48 = iVar48 + 1;\n            } while (iVar48 < iVar27);\n          }\n          prVar35 = prVar7;\n          iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,0);\n          *(int *)((int)pIVar24 + iVar38) = iVar27;\n          if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar27 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n          }\n          else {\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,1);\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar27 != *(int *)((int)pIVar24 + iVar38)) && (1 < (int)prVar7[7].elems)) {\n              bVar2 = true;\n            }\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,2);\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n            if ((iVar27 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar27 = iVar38 * 8 + iVar29;\n          pprVar11 = pprVar39;\n          do {\n            pprVar12 = pprVar11 + 1;\n            puVar40 = (uint *)(iVar27 + 0xc00);\n            iVar27 = iVar27 + 4;\n            *pprVar11 = (re_dfa_t *)((uint)*pprVar11 | *puVar40);\n            pprVar11 = pprVar12;\n          } while (&prStack_e4 != pprVar12);\n          iVar38 = iVar38 + 4;\n          piVar43 = piVar43 + 3;\n        } while (iVar45 != iVar38);\n        if (bVar2) {\n          prVar35 = (re_node_set *)0x200;\n          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n          prVar18[4].alloc = (Idx)pIVar13;\n          if (pIVar13 == (Idx *)0x0) goto LAB_0001e660;\n          iVar45 = iVar29;\n          pIVar37 = pIVar13;\n          do {\n            prVar21 = *pprVar39;\n            if (prVar21 != (re_dfa_t *)0x0) {\n              prVar35 = (re_node_set *)0x1;\n              pIVar34 = pIVar37;\n              do {\n                if (((uint)prVar21 & 1) != 0) {\n                  iVar38 = 0;\n                  pIVar25 = pIVar15;\n                  pIVar31 = pIVar24;\n                  iVar46 = iVar45;\n                  if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                    do {\n                      puVar40 = (uint *)(iVar46 + 0xc20);\n                      iVar38 = iVar38 + 1;\n                      iVar46 = iVar46 + 0x20;\n                    } while (((uint)prVar35 & *puVar40) == 0);\n                    pIVar25 = pIVar15 + iVar38;\n                    pIVar31 = pIVar24 + iVar38;\n                  }\n                  *pIVar34 = *pIVar31;\n                  pIVar34[0x100] = *pIVar25;\n                }\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1);\n                prVar35 = (re_node_set *)((int)prVar35 << 1);\n                pIVar34 = pIVar34 + 1;\n              } while (prVar21 != (re_dfa_t *)0x0);\n            }\n            pIVar37 = pIVar37 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            iVar45 = iVar45 + 4;\n          } while (pIVar13 + 0x100 != pIVar37);\n        }\n        else {\n          prVar35 = (re_node_set *)0x100;\n          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n          prVar18[3].elems = pIVar13;\n          if (pIVar13 == (Idx *)0x0) {\nLAB_0001e660:\n            pcVar50 = *(code **)(pcVar52 + 0x1e790);\nLAB_0001e664:\n            (*pcVar50)(pIVar24);\n            iVar45 = iStack_148;\n            goto LAB_0001e674;\n          }\n          prVar7 = prVar7 + 8;\n          iVar46 = 0;\n          iVar45 = iVar29;\n          do {\n            prVar35 = (re_node_set *)0x1;\n            iVar38 = iVar46;\n            for (prVar21 = *pprVar39; prVar21 != (re_dfa_t *)0x0;\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1)) {\n              if (((uint)prVar21 & 1) != 0) {\n                iVar48 = 0;\n                iVar27 = iVar45;\n                if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                  do {\n                    puVar40 = (uint *)(iVar27 + 0xc20);\n                    iVar48 = iVar48 + 1;\n                    iVar27 = iVar27 + 0x20;\n                  } while (((uint)prVar35 & *puVar40) == 0);\n                  iVar48 = iVar48 * 4;\n                }\n                if (((uint)prVar35 & prVar7->alloc) == 0) {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar24 + iVar48);\n                }\n                else {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar15 + iVar48);\n                }\n              }\n              prVar35 = (re_node_set *)((int)prVar35 << 1);\n              iVar38 = iVar38 + 1;\n            }\n            iVar46 = iVar46 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            prVar7 = (re_node_set *)&prVar7->nelem;\n            iVar45 = iVar45 + 4;\n          } while (iVar46 != 0x100);\n        }\n        pcVar53 = *(code **)(pcVar52 + 0x1e790);\n        if ((int)prStack_104 << 0x15 < 0) {\n          prVar35 = (re_node_set *)0x0;\n          do {\n            if ((*puVar9 & 0x400) != 0) {\n              IVar22 = pIVar15[(int)(pbVar47 + (int)((int)&prVar35[-1].elems + 3))];\n              pIVar13[10] = IVar22;\n              if (bVar2) {\n                pIVar13[0x10a] = IVar22;\n              }\n              break;\n            }\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            puVar9 = puVar9 + 8;\n          } while (prVar35 != prVar28);\n          pcVar53 = *(code **)(pcVar52 + 0x1e790);\n        }\n        (*pcVar53)(pIVar24);\n        (**(code **)(pcVar52 + 0x1e790))(iStack_148);\n        iVar45 = iVar29;\n        do {\n          iVar46 = iVar45 + 0xc;\n          (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n          iVar45 = iVar46;\n        } while (iVar29 + (int)prVar28 * 0xc != iVar46);\n        (**(code **)(pcVar52 + 0x1e790))(iVar29);\n        rVar5 = _REG_NOMATCH;\n        goto LAB_0001e000;\n      }\n    }\nLAB_0001e674:\n    (**(code **)(pcVar52 + 0x1e790))(iVar45);\n    iVar45 = iVar29;\n    do {\n      iVar46 = iVar45 + 0xc;\n      (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n      iVar45 = iVar46;\n    } while (iVar46 != (int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29);\n    (**(code **)(pcVar52 + 0x1e790))(iVar29);\nLAB_0001dffc:\n    rVar5 = _REG_NOERROR;\n    goto LAB_0001e000;\n  }\n  (**(code **)(pcVar52 + 0x1e790))(iVar29);\n  if (prVar28 != (re_node_set *)0x0) {\n    rVar5 = _REG_NOERROR;\n    goto LAB_0001e000;\n  }\nLAB_0001e824:\n  prVar35 = (re_node_set *)0x100;\n  pIVar24 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n  prVar18[3].elems = pIVar24;\n  rVar5 = (reg_errcode_t)(pIVar24 != (Idx *)0x0);\nLAB_0001e000:\n  if (prStack_e4 == (re_dfa_t *)*piVar8) {\n    return rVar5;\n  }\n  pcVar52 = *(code **)(pcVar52 + 0x1e764);\n  prVar21 = prStack_e4;\n  (*pcVar52)();\n  if (*(uchar *)&prVar35[2].alloc == '\x10') {\n    IVar22 = ((Idx *)prVar35->nelem)[7];\n    prVar35[1].alloc = ((Idx *)prVar35->nelem)[3];\n    prVar35[2].nelem = IVar22;\n    return _REG_NOERROR;\n  }\n  prVar35[1].alloc = (Idx)prVar35;\n  token.opr.sbcset = (re_bitset_ptr_t)(pcVar52 + 0x25764);\n  token._4_4_ = in_stack_fffffe4c;\n  IVar22 = re_dfa_add_node(prVar21,token);\n  prVar35[2].nelem = IVar22;\n  if (IVar22 == -1) {\n    rVar5 = _REG_ESPACE;\n  }\n  else {\n    if (*(uchar *)&prVar35[2].alloc == '\f') {\n      *(uint *)&prVar21->nodes[IVar22].field_0x4 =\n           *(uint *)&prVar21->nodes[IVar22].field_0x4 & 0xff003fff |\n           ((uint)prVar35[1].elems & 0x3ff) << 0xe;\n      return _REG_NOERROR;\n    }\n    rVar5 = _REG_NOERROR;\n  }\n  return rVar5;\n}" type_identifier (function_declarator "re_string_reconstruct(re_string_t *pstr,Idx idx,int eflags)" identifier (parameter_list "(re_string_t *pstr,Idx idx,int eflags)" ( (parameter_declaration "re_string_t *pstr" type_identifier (pointer_declarator "*pstr" * identifier)) , (parameter_declaration "Idx idx" type_identifier identifier) , (parameter_declaration "int eflags" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  re_token_t token;\n  bool bVar2;\n  undefined *puVar3;\n  uint uVar4;\n  uchar uVar16;\n  reg_errcode_t rVar5;\n  size_t sVar6;\n  re_node_set *prVar7;\n  int *piVar8;\n  uint *puVar9;\n  int iVar10;\n  re_dfa_t **pprVar11;\n  re_dfa_t **pprVar12;\n  Idx *pIVar13;\n  uint uVar14;\n  Idx *pIVar15;\n  re_node_set *prVar17;\n  re_node_set *prVar18;\n  wint_t *pwVar19;\n  uchar *puVar20;\n  re_dfa_t *prVar21;\n  Idx IVar22;\n  uchar *puVar23;\n  Idx *pIVar24;\n  Idx *pIVar25;\n  re_node_set *prVar26;\n  re_node_set *idx_00;\n  int iVar27;\n  re_node_set *prVar28;\n  int iVar29;\n  uint uVar30;\n  Idx *pIVar31;\n  re_node_set *prVar32;\n  wint_t wVar33;\n  Idx *pIVar34;\n  re_node_set *prVar35;\n  uint *puVar36;\n  Idx *pIVar37;\n  int iVar38;\n  re_node_set *set;\n  re_dfa_t **pprVar39;\n  uint *puVar40;\n  undefined4 *puVar41;\n  re_string_t *prVar42;\n  int *piVar43;\n  re_node_set *prVar44;\n  re_node_set *unaff_s2;\n  re_node_set *unaff_s3;\n  int iVar45;\n  int iVar46;\n  re_node_set *unaff_s7;\n  byte *pbVar47;\n  int iVar48;\n  undefined *puVar49;\n  code *pcVar50;\n  undefined *puVar51;\n  re_node_set *unaff_s8;\n  code *pcVar52;\n  code *pcVar53;\n  undefined4 in_stack_fffffe4c;\n  int iStack_184;\n  int iStack_178;\n  int iStack_154;\n  byte *pbStack_150;\n  undefined4 uStack_14c;\n  int iStack_148;\n  re_node_set rStack_144;\n  uint uStack_138;\n  uint uStack_134;\n  uint uStack_130;\n  uint uStack_12c;\n  uint uStack_128;\n  re_node_set rStack_124;\n  uint uStack_118;\n  uint uStack_114;\n  uint uStack_110;\n  uint uStack_10c;\n  uint uStack_108;\n  re_dfa_t *prStack_104;\n  uint uStack_100;\n  uint uStack_fc;\n  uint uStack_f8;\n  uint uStack_f4;\n  uint uStack_f0;\n  uint uStack_ec;\n  uint uStack_e8;\n  re_dfa_t *prStack_e4;\n  re_string_t *prStack_e0;\n  int iStack_dc;\n  re_node_set *prStack_d8;\n  re_node_set *prStack_d4;\n  int iStack_d0;\n  re_node_set *prStack_cc;\n  int iStack_c8;\n  re_node_set *prStack_c4;\n  re_node_set *prStack_c0;\n  code *pcStack_bc;\n  undefined *puStack_a8;\n  re_node_set *prStack_a0;\n  undefined4 *puStack_9c;\n  undefined1 auStack_98 [12];\n  re_node_set *prStack_8c;\n  re_string_t *prStack_88;\n  re_node_set *prStack_84;\n  re_node_set *prStack_80;\n  re_node_set *prStack_7c;\n  undefined *puStack_78;\n  re_node_set *prStack_74;\n  int iStack_70;\n  re_node_set *prStack_6c;\n  re_node_set *prStack_68;\n  code *pcStack_64;\n  wchar_t wc2;\n  mbstate_t cur_state;\n  uchar buf [6];\n  \n  puVar3 = PTR___stack_chk_guard_0003c314;\n  prVar17 = *(re_node_set **)PTR___stack_chk_guard_0003c314;\n  prVar28 = (re_node_set *)eflags;\n  prVar44 = (re_node_set *)(idx - pstr->raw_mbs_idx);\n  if (idx < pstr->raw_mbs_idx) {\n    if (1 < pstr->mb_cur_max) {\n      (pstr->cur_state).__count = 0;\n      (pstr->cur_state).__value.__wch = 0;\n    }\n    prVar28 = (re_node_set *)0x6;\n    if ((eflags & 1U) != 0) {\n      prVar28 = (re_node_set *)0x4;\n    }\n    pstr->len = pstr->raw_len;\n    pstr->stop = pstr->raw_stop;\n    pstr->valid_len = 0;\n    pstr->raw_mbs_idx = 0;\n    pstr->valid_raw_len = 0;\n    pstr->offsets_needed = '\0';\n    pstr->tip_context = (uint)prVar28;\n    prVar44 = (re_node_set *)idx;\n    if (pstr->mbs_allocated == '\0') {\n      pstr->mbs = pstr->raw_mbs;\n      goto LAB_0001d010;\n    }\n    if (idx == 0) goto LAB_0001d128;\nLAB_0001d018:\n    iVar29 = pstr->valid_raw_len;\n    unaff_s2 = (re_node_set *)pstr->valid_len;\n    if ((int)prVar44 < iVar29) {\n      if (pstr->offsets_needed == '\0') {\n        uVar4 = re_string_context_at(pstr,(Idx)((int)&prVar44[-1].elems + 3),eflags);\n        prVar28 = (re_node_set *)((int)unaff_s2 - (int)prVar44);\n        pstr->tip_context = uVar4;\n        if (1 < pstr->mb_cur_max) {\n          (*(code *)PTR_memmove_0003c324)(pstr->wcs,pstr->wcs + (int)prVar44,(int)prVar28 * 4);\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n        }\n        uVar16 = pstr->mbs_allocated;\n        if (uVar16 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44);\n          uVar16 = pstr->mbs_allocated;\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n        }\n        prVar32 = (re_node_set *)pstr->mb_cur_max;\n        prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n        pstr->valid_len = (Idx)prVar28;\n        IVar22 = pstr->stop - (int)prVar44;\n        pstr->valid_raw_len = pstr->valid_raw_len - (int)prVar44;\n      }\n      else {\n        unaff_s7 = (re_node_set *)pstr->offsets;\n        puVar23 = (uchar *)0x0;\n        prVar28 = unaff_s2;\n        do {\n          unaff_s3 = (re_node_set *)((int)(puVar23 + (int)prVar28) / 2);\n          iVar29 = (&unaff_s7->alloc)[(int)unaff_s3];\n          prVar18 = unaff_s3;\n          if ((iVar29 <= (int)prVar44) &&\n             (puVar23 = (uchar *)((int)&unaff_s3->alloc + 1), prVar18 = prVar28,\n             (int)prVar44 <= iVar29)) goto LAB_0001d460;\n          prVar28 = prVar18;\n        } while ((int)puVar23 < (int)prVar18);\n        if (iVar29 < (int)prVar44) {\n          prVar28 = unaff_s3;\n          unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n        }\n        else {\nLAB_0001d460:\n          prVar28 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n        }\n        uVar4 = re_string_context_at(pstr,(Idx)prVar28,eflags);\n        pstr->tip_context = uVar4;\n        if ((((int)prVar44 < (int)unaff_s2) && (eflags = (int)prVar44 * 4, prVar44 == unaff_s3)) &&\n           ((re_node_set *)(&unaff_s7->alloc)[(int)prVar44] == prVar44)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (pstr->wcs,pstr->wcs + (int)prVar44,((int)unaff_s2 - (int)prVar44) * 4);\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n          (*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44);\n          iVar29 = pstr->valid_len - (int)prVar44;\n          pstr->valid_len = iVar29;\n          pstr->valid_raw_len = pstr->valid_raw_len - (int)prVar44;\n          if (0 < iVar29) {\n            iVar29 = 0;\n            prVar28 = (re_node_set *)((int)prVar44 * -4);\n            piVar8 = pstr->offsets + (int)prVar44;\n            do {\n              iVar29 = iVar29 + 1;\n              piVar8[-(int)prVar44] = *piVar8 - (int)prVar44;\n              piVar8 = piVar8 + 1;\n            } while (iVar29 < pstr->valid_len);\n          }\n          prVar32 = (re_node_set *)pstr->mb_cur_max;\n          uVar16 = pstr->mbs_allocated;\n          prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n          IVar22 = pstr->stop - (int)prVar44;\n        }\n        else {\n          pstr->offsets_needed = '\0';\n          prVar18 = (re_node_set *)(pstr->raw_len - idx);\n          IVar22 = pstr->raw_stop - idx;\n          pstr->len = (Idx)((int)&prVar44->alloc + (int)&prVar18->alloc);\n          pstr->stop = (Idx)(IVar22 + (int)prVar44);\n          if ((0 < (int)unaff_s3) &&\n             (prVar44 == *(re_node_set **)((int)unaff_s7 + (int)unaff_s3 * 4 + -4))) {\n            pIVar24 = &unaff_s7->alloc + (int)unaff_s3;\n            do {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n              if (unaff_s3 == (re_node_set *)0x0) break;\n              pIVar15 = pIVar24 + -2;\n              pIVar24 = pIVar24 + -1;\n            } while ((re_node_set *)*pIVar15 == prVar44);\n          }\n          iVar29 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            pwVar19 = pstr->wcs + (int)unaff_s3;\n            wVar33 = *pwVar19;\n            while (wVar33 == 0xffffffff) {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n              pwVar19 = pwVar19 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar29 = (int)unaff_s3 * 4;\n              wVar33 = *pwVar19;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (re_node_set *)((int)&unaff_s7->alloc + iVar29);\n            prVar28 = (re_node_set *)(unaff_s7->alloc - (int)prVar44);\n            pstr->valid_len = (Idx)prVar28;\n            if (prVar28 != (re_node_set *)0x0) {\n              if (0 < (int)prVar28) {\n                pwVar19 = pstr->wcs;\n                iVar29 = 0;\n                do {\n                  *pwVar19 = 0xffffffff;\n                  iVar29 = iVar29 + 1;\n                  pwVar19 = pwVar19 + 1;\n                } while (iVar29 < pstr->valid_len);\n              }\n              (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n              prVar28 = (re_node_set *)pstr->valid_len;\n              prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n              IVar22 = pstr->stop - (int)prVar44;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            prVar28 = (re_node_set *)0x0;\n            pstr->valid_len = 0;\n          }\n          prVar32 = (re_node_set *)pstr->mb_cur_max;\n          uVar16 = pstr->mbs_allocated;\n          pstr->valid_raw_len = (Idx)prVar28;\n        }\n      }\nLAB_0001d090:\n      prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);\n      if (uVar16 == '\0') {\nLAB_0001d098:\n        prVar44 = (re_node_set *)(pstr->mbs + (int)prVar44);\n        pstr->mbs = (uchar *)prVar44;\n      }\n      pstr->raw_mbs_idx = idx;\n      pstr->len = (Idx)prVar18;\n      pstr->stop = IVar22;\n      if (prVar26 == (re_node_set *)0x0) goto LAB_0001d0b4;\nLAB_0001d148:\n      uVar16 = pstr->mbs_allocated;\n    }\n    else {\n      if (pstr->offsets_needed != '\0') {\n        pstr->offsets_needed = '\0';\n        pstr->len = (Idx)((pstr->raw_len - idx) + (int)prVar44);\n        pstr->stop = (Idx)((pstr->raw_stop - idx) + (int)prVar44);\n      }\n      prVar32 = (re_node_set *)pstr->mb_cur_max;\n      unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n      prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);\n      pstr->valid_len = 0;\n      if (prVar26 == (re_node_set *)0x0) {\n        if (pstr->is_utf8 == '\0') {\nLAB_0001d228:\n          puVar23 = (uchar *)((int)&unaff_s8->alloc + iVar29);\n          if ((int)puVar23 < idx) {\n            unaff_s7 = (re_node_set *)&wc2;\n            do {\n              cur_state.__count = (pstr->cur_state).__count;\n              cur_state.__value = (pstr->cur_state).__value;\n              prVar18 = (re_node_set *)(pstr->raw_len - (int)puVar23);\n              prVar28 = prVar18;\n              sVar6 = rpl_mbrtowc((wchar_t *)unaff_s7,(char *)(puVar23 + (int)pstr->raw_mbs),\n                                  (size_t)prVar18,&pstr->cur_state);\n              unaff_s3 = (re_node_set *)wc2;\n              if (0xfffffffc < sVar6 - 1) {\n                if ((sVar6 == 0) || (prVar18 == (re_node_set *)0x0)) {\n                  unaff_s3 = (re_node_set *)0x0;\n                }\n                else {\n                  unaff_s3 = (re_node_set *)(uint)puVar23[(int)pstr->raw_mbs];\n                }\n                sVar6 = 1;\n                (pstr->cur_state).__count = cur_state.__count;\n                (pstr->cur_state).__value = cur_state.__value;\n              }\n              puVar23 = puVar23 + sVar6;\n            } while ((int)puVar23 < idx);\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n            if (unaff_s3 != (re_node_set *)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n          }\n          prVar28 = (re_node_set *)eflags;\n          uVar4 = re_string_context_at(pstr,(Idx)((int)&unaff_s2[-1].elems + 3),eflags);\n          pstr->tip_context = uVar4;\n        }\n        else {\n          prVar18 = (re_node_set *)pstr->raw_mbs;\n          unaff_s7 = (re_node_set *)((int)&unaff_s8->alloc + (int)&prVar18->alloc);\n          prVar28 = (re_node_set *)((int)unaff_s7 + ((int)prVar44 - (int)prVar32));\n          unaff_s3 = (re_node_set *)\n                     ((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)&unaff_s7->alloc);\n          if (prVar28 <= prVar18) {\n            prVar28 = prVar18;\n          }\n          if (unaff_s3 < prVar28) goto LAB_0001d228;\n          bVar1 = *(byte *)&unaff_s3->alloc;\n          while ((bVar1 & 0xc0) == 0x80) {\n            unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n            if (unaff_s3 < prVar28) goto LAB_0001d228;\n            bVar1 = *(byte *)&unaff_s3->alloc;\n          }\n          puVar23 = pstr->trans;\n          prVar28 = (re_node_set *)((int)unaff_s7 + (pstr->len - (int)unaff_s3));\n          prVar18 = unaff_s3;\n          if (puVar23 != (uchar *)0x0) {\n            prVar26 = (re_node_set *)0x6;\n            if ((int)prVar28 < 7) {\n              prVar26 = prVar28;\n            }\n            prVar18 = (re_node_set *)buf;\n            if (0 < (int)prVar28) {\n              puVar20 = (uchar *)((int)&prVar26->alloc + (int)&unaff_s3->alloc);\n              prVar26 = (re_node_set *)((int)&prVar26->alloc + (int)&prVar18->alloc);\n              do {\n                pbVar47 = puVar20 + -1;\n                prVar26 = (re_node_set *)((int)&prVar26[-1].elems + 3);\n                puVar20 = puVar20 + -1;\n                *(uchar *)&prVar26->alloc = puVar23[*pbVar47];\n              } while (prVar18 != prVar26);\n            }\n          }\n          cur_state.__count = 0;\n          cur_state.__value.__wch = 0;\n          puVar23 = (uchar *)rpl_mbrtowc(&wc2,(char *)prVar18,(size_t)prVar28,&cur_state);\n          puVar20 = (uchar *)((int)prVar44 + ((int)unaff_s7 - (int)unaff_s3));\n          if ((puVar23 < puVar20) || ((uchar *)0xfffffffd < puVar23)) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (re_node_set *)(puVar23 + -(int)puVar20);\n          (pstr->cur_state).__count = 0;\n          (pstr->cur_state).__value.__wch = 0;\n          pstr->valid_len = (Idx)unaff_s8;\n          unaff_s3 = (re_node_set *)wc2;\n          if (wc2 == -1) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((pstr->word_ops_used == '\0') ||\n             ((iVar29 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar29 == 0 &&\n              (unaff_s3 != (re_node_set *)0x5f)))) {\n            uVar4 = 2;\n            if (unaff_s3 == (re_node_set *)0xa) {\n              if (pstr->newline_anchor == '\0') {\n                uVar4 = 0;\n              }\n            }\n            else {\n              uVar4 = 0;\n            }\n          }\n          else {\n            uVar4 = 1;\n          }\n          pstr->tip_context = uVar4;\n        }\n        prVar18 = prVar28;\n        if (unaff_s8 == (re_node_set *)0x0) {\nLAB_0001d2cc:\n          uVar16 = pstr->mbs_allocated;\n          prVar28 = prVar18;\n        }\n        else {\n          iVar29 = 0;\n          prVar18 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            pwVar19 = pstr->wcs;\n            do {\n              *pwVar19 = 0xffffffff;\n              iVar29 = iVar29 + 1;\n              prVar18 = (re_node_set *)pstr->valid_len;\n              pwVar19 = pwVar19 + 1;\n            } while (iVar29 < (int)prVar18);\n          }\n          if (pstr->mbs_allocated != '\0') {\n            (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n            unaff_s8 = (re_node_set *)pstr->valid_len;\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (re_node_set *)pstr->valid_len;\n          uVar16 = '\0';\n        }\n        prVar32 = (re_node_set *)pstr->mb_cur_max;\n        pstr->valid_raw_len = (Idx)unaff_s8;\n        prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n        IVar22 = pstr->stop - (int)prVar44;\n        goto LAB_0001d090;\n      }\n      uVar4 = (uint)(byte)((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)pstr->raw_mbs)\n                          [(int)unaff_s8];\n      pstr->valid_raw_len = 0;\n      if (pstr->trans != (uchar *)0x0) {\n        uVar4 = (uint)pstr->trans[uVar4];\n      }\n      prVar28 = (re_node_set *)(pstr->word_char[(int)uVar4 >> 5] >> (uVar4 & 0x1f) & 1);\n      if (((prVar28 == (re_node_set *)0x0) && (uVar4 == 10)) &&\n         (prVar28 = (re_node_set *)0x2, pstr->newline_anchor == '\0')) {\n        prVar28 = (re_node_set *)0x0;\n      }\n      uVar16 = pstr->mbs_allocated;\n      pstr->tip_context = (uint)prVar28;\n      prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n      IVar22 = pstr->stop - (int)prVar44;\n      if (uVar16 == '\0') goto LAB_0001d098;\n      pstr->raw_mbs_idx = idx;\n      pstr->len = (Idx)prVar18;\n      pstr->stop = IVar22;\n    }\n    if (uVar16 == '\0') {\n      pstr->valid_len = (Idx)prVar18;\n    }\n    else if (pstr->icase == '\0') {\n      prVar26 = (re_node_set *)pstr->trans;\n      if (prVar26 != (re_node_set *)0x0) {\n        prVar28 = (re_node_set *)pstr->bufs_len;\n        prVar35 = (re_node_set *)pstr->valid_len;\n        if ((int)prVar28 <= (int)prVar18) {\n          prVar18 = prVar28;\n        }\n        if ((int)prVar35 < (int)prVar18) {\n          while( true ) {\n            prVar28 = (re_node_set *)(pstr->mbs + (int)prVar35);\n            idx = (int)&prVar35->alloc + (int)(pstr->raw_mbs + idx);\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            prVar26 = (re_node_set *)\n                      ((int)&prVar26->alloc + (uint)*(byte *)&((re_node_set *)idx)->alloc);\n            *(uchar *)&prVar28->alloc = *(uchar *)&prVar26->alloc;\n            if (prVar18 == prVar35) break;\n            idx = pstr->raw_mbs_idx;\n            prVar26 = (re_node_set *)pstr->trans;\n          }\n          pstr->valid_len = (Idx)prVar18;\n          pstr->valid_raw_len = (Idx)prVar18;\n        }\n        else {\n          pstr->valid_len = (Idx)prVar35;\n          pstr->valid_raw_len = (Idx)prVar35;\n        }\n      }\n    }\n    else {\n      build_upper_buffer(pstr);\n    }\nLAB_0001d0dc:\n    rVar5 = _REG_NOERROR;\n    pstr->cur_idx = 0;\n  }\n  else {\nLAB_0001d010:\n    if (prVar44 != (re_node_set *)0x0) goto LAB_0001d018;\nLAB_0001d128:\n    prVar32 = (re_node_set *)pstr->mb_cur_max;\n    prVar18 = (re_node_set *)pstr->len;\n    prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);\n    pstr->raw_mbs_idx = idx;\n    pstr->len = (Idx)prVar18;\n    pstr->stop = pstr->stop;\n    if (prVar26 != (re_node_set *)0x0) goto LAB_0001d148;\nLAB_0001d0b4:\n    if (pstr->icase == '\0') {\n      build_wcs_buffer(pstr);\n      goto LAB_0001d0dc;\n    }\n    rVar5 = build_wcs_upper_buffer(pstr);\n    if (rVar5 == _REG_NOERROR) goto LAB_0001d0dc;\n  }\n  if (prVar17 == *(re_node_set **)puVar3) {\n    return rVar5;\n  }\n  pcVar52 = sub_epsilon_src_nodes;\n  puVar49 = PTR___stack_chk_fail_0003c2f4;\n  (*(code *)PTR___stack_chk_fail_0003c2f4)();\n  puVar51 = puVar49 + 0x26830;\n  puStack_9c = *(undefined4 **)(puVar49 + 0x1ea74);\n  auStack_98._0_4_ = 0;\n  auStack_98._4_4_ = (re_node_set *)0x0;\n  auStack_98._8_4_ = (Idx *)0x0;\n  iVar29 = prVar17[2].nelem + (int)prVar26 * 0xc;\n  puStack_78 = puVar3;\n  prStack_8c = (re_node_set *)*puStack_9c;\n  prVar35 = *(re_node_set **)(iVar29 + 4);\n  iVar45 = *(int *)(puVar49 + 0x1e948);\n  prVar18 = prVar26;\n  puStack_a8 = puVar51;\n  prStack_a0 = prVar32;\n  prStack_88 = pstr;\n  prStack_84 = prVar44;\n  prStack_80 = unaff_s2;\n  prStack_7c = unaff_s3;\n  prStack_74 = (re_node_set *)idx;\n  iStack_70 = eflags;\n  prStack_6c = unaff_s7;\n  prStack_68 = unaff_s8;\n  pcStack_64 = pcVar52;\n  if (0 < (int)prVar35) {\n    prVar32 = (re_node_set *)auStack_98;\n    prVar42 = (re_string_t *)0x0;\n    prVar44 = (re_node_set *)(iVar29 + 8);\n    iVar45 = iVar45 + -0x5d30;\n    iVar46 = *(int *)(puVar49 + 0x1e948) + -20000;\n    do {\n      prVar7 = *(re_node_set **)(*(int *)(iVar29 + 8) + (int)prVar42 * 4);\n      if ((prVar26 != prVar7) && ((*(byte *)(prVar17->alloc + (int)prVar7 * 8 + 4) & 8) != 0)) {\n        iVar38 = (int)prVar7 * 0xc;\n        pIVar24 = prVar17[1].elems + (int)prVar7 * 3;\n        puVar41 = (undefined4 *)pIVar24[2];\n        prVar7 = (re_node_set *)*puVar41;\n        prVar18 = prVar44;\n        IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7);\n        if (pIVar24[1] < 2) {\n          puVar51 = puStack_a8;\n          if (IVar22 == 0) {\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((IVar22 == 0) &&\n                (IVar22 = re_node_set_contains\n                                    ((re_node_set *)prVar28->nelem,(Idx)&prVar28->elems,prVar7),\n                IVar22 != 0)) {\nLAB_0001d960:\n          iVar27 = prVar17[2].nelem;\nLAB_0001d964:\n          prVar18 = prStack_a0;\n          prVar35 = (re_node_set *)\n                    re_node_set_add_intersect(prVar32,prStack_a0,(re_node_set *)(iVar27 + iVar38));\n          if (prVar35 != (re_node_set *)0x0) {\n            prStack_a0 = prVar35;\n            (**(code **)(puStack_a8 + -0x7db0))(auStack_98._8_4_);\n            prVar35 = prStack_a0;\n            goto LAB_0001db20;\n          }\n          prVar35 = *(re_node_set **)(iVar29 + 4);\n          puVar51 = puStack_a8;\n        }\n        else {\n          prVar7 = (re_node_set *)puVar41[1];\n          prVar18 = prVar44;\n          puVar51 = puStack_a8;\n          if ((0 < (int)prVar7) &&\n             (IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7), puVar51 = puStack_a8,\n             IVar22 == 0)) {\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) {\n              iVar27 = prVar17[2].nelem;\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }\n      prVar42 = (re_string_t *)((int)&prVar42->raw_mbs + 1);\n    } while ((int)prVar42 < (int)prVar35);\n    pstr = prVar42;\n    unaff_s2 = prVar26;\n    unaff_s3 = prVar28;\n    idx = (Idx)prVar44;\n    eflags = iVar46;\n    unaff_s7 = prVar32;\n    unaff_s8 = prVar17;\n    if (0 < (int)prVar35) {\n      iVar46 = 0;\n      prVar26 = (re_node_set *)&prVar28->nelem;\n      prVar17 = (re_node_set *)&prVar28->elems;\n      prVar44 = (re_node_set *)(auStack_98 + 8);\n      do {\n        prVar18 = *(re_node_set **)(*(int *)(iVar29 + 8) + iVar46 * 4);\n        prVar7 = prVar44;\n        IVar22 = re_node_set_contains((re_node_set *)auStack_98._4_4_,(Idx)prVar44,prVar18);\n        prVar32 = prVar17;\n        if (IVar22 == 0) {\n          set = (re_node_set *)prVar28->nelem;\n          idx_00 = prVar17;\n          IVar22 = re_node_set_contains(set,(Idx)prVar17,prVar18);\n          prVar18 = (re_node_set *)(IVar22 + -1);\n          prVar44 = prVar17;\n          prVar32 = idx_00;\n          if ((-1 < (int)prVar18) && ((int)prVar18 < (int)set)) {\n            prVar28->nelem = (Idx)((int)&set[-1].elems + 3);\n            re_node_set_remove_at(prVar26,(Idx)idx_00,prVar18);\n            prVar35 = *(re_node_set **)(iVar29 + 4);\n            prVar44 = idx_00;\n          }\n        }\n        iVar46 = iVar46 + 1;\n        prVar18 = prVar44;\n        prVar17 = prVar32;\n        prVar44 = prVar7;\n        puVar51 = puStack_a8;\n      } while (iVar46 < (int)prVar35);\n    }\n  }\n  (**(code **)(puVar51 + -0x7db0))(auStack_98._8_4_);\n  prVar35 = (re_node_set *)0x0;\n  prVar42 = pstr;\n  prVar26 = unaff_s2;\n  prVar28 = unaff_s3;\n  prVar44 = (re_node_set *)idx;\n  iVar46 = eflags;\n  prVar32 = unaff_s7;\n  prVar17 = unaff_s8;\nLAB_0001db20:\n  if (prStack_8c == (re_node_set *)*puStack_9c) {\n    return (reg_errcode_t)prVar35;\n  }\n  pcVar52 = *(code **)(puStack_a8 + -0x7ddc);\n  pcVar53 = build_trtable;\n  prVar7 = prStack_8c;\n  (*pcVar52)();\n  piVar8 = *(int **)(pcVar52 + 0x1e784);\n  prStack_e4 = (re_dfa_t *)*piVar8;\n  prVar35 = prVar18;\n  prStack_e0 = prVar42;\n  iStack_dc = iVar29;\n  prStack_d8 = prVar26;\n  prStack_d4 = prVar28;\n  iStack_d0 = iVar45;\n  prStack_cc = prVar44;\n  iStack_c8 = iVar46;\n  prStack_c4 = prVar32;\n  prStack_c0 = prVar17;\n  pcStack_bc = pcVar53;\n  iVar29 = (**(code **)(pcVar52 + 0x1e724))(0x2c00);\n  if (iVar29 == 0) goto LAB_0001dffc;\n  pIVar24 = prVar18->elems;\n  prVar18[3].elems = (Idx *)0x0;\n  puVar9 = (uint *)(iVar29 + 0xc00);\n  prVar18[4].alloc = 0;\n  rStack_144.alloc = 0;\n  rStack_144.nelem = 0;\n  rStack_144.elems = (Idx *)0x0;\n  uStack_138 = 0;\n  uStack_134 = 0;\n  uStack_130 = 0;\n  uStack_12c = 0;\n  uStack_128 = 0;\n  if (0 < (int)pIVar24) {\n    iVar45 = *(int *)(pcVar52 + 0x1e658);\n    iStack_184 = 0;\n    iVar46 = *(int *)(pcVar52 + 0x1e658);\n    prVar28 = (re_node_set *)0x0;\nLAB_0001dc74:\n    iVar38 = iStack_184 * 4;\n    pbVar47 = (byte *)(prVar7->alloc + *(int *)(prVar18[1].alloc + iVar38) * 8);\n    bVar1 = pbVar47[4];\n    uVar4 = (uint)(*(int *)(pbVar47 + 4) << 8) >> 0x16;\n    if (bVar1 == 1) {\n      pIVar15 = &rStack_144.alloc + ((int)(uint)*pbVar47 >> 5);\n      prVar35 = (re_node_set *)(*pIVar15 | 1 << (*pbVar47 & 0x1f));\n      *pIVar15 = (Idx)prVar35;\nLAB_0001e060:\n      IVar22 = rStack_144.alloc;\n      if (uVar4 == 0) goto LAB_0001e15c;\n      if ((uVar4 & 0x20) == 0) {\n        if ((uVar4 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar4 & 4) != 0) {\n          if (bVar1 == 1) {\n            if ((*(uint *)(pbVar47 + 4) & 0x200) == 0) goto LAB_0001e428;\n            pIVar15 = prVar7[7].elems;\n          }\n          else {\n            pIVar15 = prVar7[7].elems;\n          }\n          if ((int)pIVar15 < 2) {\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              pIVar13 = &prVar44->nelem;\n              pIVar15 = &prVar17->alloc;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              prVar35 = (re_node_set *)(prVar44->alloc & *pIVar15);\n              prVar44->alloc = (Idx)prVar35;\n              uVar30 = uVar30 | (uint)prVar35;\n              prVar44 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }\n          else {\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              prVar35 = (re_node_set *)&prVar44->nelem;\n              uVar14 = *puVar40;\n              pIVar15 = &prVar17->alloc;\n              puVar40 = puVar40 + 1;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              uVar14 = (~uVar14 | *pIVar15) & prVar44->alloc;\n              prVar44->alloc = uVar14;\n              uVar30 = uVar30 | uVar14;\n              prVar44 = prVar35;\n            } while (&rStack_124 != prVar35);\n          }\n          if (uVar30 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar4 & 8) == 0) {\nLAB_0001e15c:\n          prVar44 = (re_node_set *)0x0;\n          if (0 < (int)prVar28) {\n            prVar44 = (re_node_set *)0x0;\n            puVar40 = puVar9;\n            do {\n              prVar35 = (re_node_set *)((int)prVar44 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar9 + ((int)(uint)*pbVar47 >> 5))[(int)prVar44 * 8] >> (*pbVar47 & 0x1f) & 1)\n                  != 0)) {\n                uVar4 = 0;\n                prVar17 = &rStack_144;\n                prVar26 = &rStack_124;\n                puVar36 = puVar40;\n                do {\n                  pIVar24 = &prVar17->nelem;\n                  uVar30 = *puVar36;\n                  puVar36 = puVar36 + 1;\n                  uVar30 = prVar17->alloc & uVar30;\n                  prVar26->alloc = uVar30;\n                  uVar4 = uVar4 | uVar30;\n                  prVar17 = (re_node_set *)pIVar24;\n                  prVar26 = (re_node_set *)&prVar26->nelem;\n                } while (&rStack_124 != (re_node_set *)pIVar24);\n                prVar35 = &rStack_144;\n                if (uVar4 != 0) {\n                  uVar30 = 0;\n                  uVar4 = 0;\n                  prVar17 = &rStack_144;\n                  puVar36 = puVar40;\n                  pprVar39 = &prStack_104;\n                  do {\n                    uVar14 = *puVar36;\n                    puVar36 = puVar36 + 1;\n                    prVar21 = (re_dfa_t *)(~prVar17->alloc & uVar14);\n                    uVar14 = ~uVar14 & prVar17->alloc;\n                    *pprVar39 = prVar21;\n                    prVar17->alloc = uVar14;\n                    uVar4 = uVar4 | (uint)prVar21;\n                    uVar30 = uVar30 | uVar14;\n                    prVar17 = (re_node_set *)&prVar17->nelem;\n                    pprVar39 = pprVar39 + 1;\n                  } while (puVar40 + 8 != puVar36);\n                  prVar17 = (re_node_set *)(iVar29 + (int)prVar44 * 0xc);\n                  if (uVar4 != 0) {\n                    iStack_178 = (int)prVar28 * 2;\n                    puVar36 = puVar9 + (int)prVar28 * 8;\n                    *puVar36 = (uint)prStack_104;\n                    puVar36[1] = uStack_100;\n                    puVar36[2] = uStack_fc;\n                    puVar36[3] = uStack_f8;\n                    puVar36[4] = uStack_f4;\n                    puVar36[5] = uStack_f0;\n                    puVar36[6] = uStack_ec;\n                    puVar36[7] = uStack_e8;\n                    puVar40[1] = rStack_124.nelem;\n                    puVar40[2] = (uint)rStack_124.elems;\n                    *puVar40 = rStack_124.alloc;\n                    puVar40[3] = uStack_118;\n                    puVar40[4] = uStack_114;\n                    puVar40[5] = uStack_110;\n                    puVar40[6] = uStack_10c;\n                    puVar40[7] = uStack_108;\n                    prVar35 = prVar17;\n                    iVar27 = (*(code *)(iVar46 + -0x4580))(iVar29 + (int)prVar28 * 0xc);\n                    if (iVar27 != 0) goto LAB_0001e458;\n                    prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n                  }\n                  prVar35 = *(re_node_set **)(prVar18[1].alloc + iVar38);\n                  iVar27 = (*(code *)(iVar45 + -0x7b38))(prVar17);\n                  if (iVar27 == 0) {\n                    iStack_178 = (int)prVar28 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar30 == 0) break;\n                }\n              }\n              puVar40 = puVar40 + 8;\n              prVar44 = (re_node_set *)((int)&prVar44->alloc + 1);\n            } while ((int)prVar44 < (int)prVar28);\n          }\n          iStack_178 = (int)prVar28 * 2;\n          if (prVar28 == prVar44) {\n            iVar27 = prVar18[1].alloc;\n            pcVar53 = *(code **)(pcVar52 + 0x1e724);\n            puVar40 = puVar9 + (int)prVar28 * 8;\n            *puVar40 = rStack_144.alloc;\n            prVar35 = (re_node_set *)(iVar27 + iVar38);\n            puVar40[1] = rStack_144.nelem;\n            puVar41 = (undefined4 *)(iVar29 + (int)prVar28 * 0xc);\n            puVar40[2] = (uint)rStack_144.elems;\n            puVar40[3] = uStack_138;\n            puVar40[4] = uStack_134;\n            puVar40[5] = uStack_130;\n            puVar40[6] = uStack_12c;\n            puVar40[7] = uStack_128;\n            IVar22 = prVar35->alloc;\n            *puVar41 = 1;\n            puVar41[1] = 1;\n            pIVar15 = (Idx *)(*pcVar53)(4);\n            puVar41[2] = pIVar15;\n            if (pIVar15 != (Idx *)0x0) {\n              pIVar24 = prVar18->elems;\n              prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n              *pIVar15 = IVar22;\n              rStack_144.alloc = 0;\n              rStack_144.nelem = 0;\n              rStack_144.elems = (Idx *)0x0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar41[1] = 0;\n            *puVar41 = 0;\n            if (prVar28 == (re_node_set *)0x0) {\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }\n            else {\nLAB_0001e458:\n              iVar45 = iVar29;\n              do {\n                iVar46 = iVar45 + 0xc;\n                (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n                iVar45 = iVar46;\n              } while ((int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29 != iVar46);\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }\n            goto LAB_0001dffc;\n          }\n          pIVar24 = prVar18->elems;\n          goto LAB_0001dcc8;\n        }\n        if ((bVar1 != 1) || ((*(uint *)(pbVar47 + 4) & 0x200) == 0)) {\n          prVar44 = prVar7 + 8;\n          if ((int)prVar7[7].elems < 2) {\n            prVar35 = (re_node_set *)0x0;\n            prVar17 = &rStack_144;\n            do {\n              pIVar13 = &prVar17->nelem;\n              pIVar15 = &prVar44->alloc;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~*pIVar15 & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while ((re_node_set *)pIVar13 != &rStack_124);\n          }\n          else {\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar35 = (re_node_set *)0x0;\n            prVar17 = &rStack_144;\n            do {\n              pIVar13 = &prVar17->nelem;\n              uVar4 = *puVar40;\n              pIVar15 = &prVar44->alloc;\n              puVar40 = puVar40 + 1;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~(*pIVar15 & uVar4) & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }\n          if (prVar35 == (re_node_set *)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        rStack_144.alloc = 0;\n      }\n      else {\n        rStack_144.nelem = 0;\n        rStack_144.alloc = 0;\n        rStack_144.elems = (Idx *)0x0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if ((IVar22 & 0x400U) == 0) goto LAB_0001dcc8;\n        rStack_144.alloc = 0x400;\n        if ((uVar4 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        rStack_144.alloc = 0;\n      }\n      rStack_144.alloc = 0;\n      rStack_144.nelem = 0;\n      rStack_144.elems = (Idx *)0x0;\n      uStack_138 = 0;\n      uStack_134 = 0;\n      uStack_130 = 0;\n      uStack_12c = 0;\n      uStack_128 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        puVar40 = *(uint **)pbVar47;\n        prVar44 = &rStack_144;\n        do {\n          pIVar15 = &prVar44->nelem;\n          uVar30 = *puVar40;\n          puVar40 = puVar40 + 1;\n          prVar35 = (re_node_set *)(prVar44->alloc | uVar30);\n          prVar44->alloc = (Idx)prVar35;\n          prVar44 = (re_node_set *)pIVar15;\n        } while (&rStack_124 != (re_node_set *)pIVar15);\n        goto LAB_0001e060;\n      }\n      if (bVar1 == 5) {\n        if ((int)prVar7[7].elems < 2) {\n          rStack_144.alloc = -1;\n          rStack_144.nelem = 0xffffffff;\n          rStack_144.elems = (Idx *)0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          puVar40 = (uint *)prVar7[5].alloc;\n          prVar44 = &rStack_144;\n          do {\n            pIVar15 = &prVar44->nelem;\n            uVar30 = *puVar40;\n            puVar40 = puVar40 + 1;\n            prVar44->alloc = prVar44->alloc | uVar30;\n            prVar44 = (re_node_set *)pIVar15;\n          } while (&rStack_124 != (re_node_set *)pIVar15);\n        }\n        pIVar15 = prVar7[10].elems;\njoined_r0x0001e3b8:\n        if (((uint)pIVar15 & 0x40) == 0) {\n          rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffbff);\n        }\n        prVar35 = (re_node_set *)rStack_144.alloc;\n        if (((uint)pIVar15 & 0x80) != 0) {\n          prVar35 = (re_node_set *)&SUB_fffffffe;\n          rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      prVar35 = (re_node_set *)0xffffffff;\n      if (bVar1 == 7) {\n        pIVar15 = prVar7[10].elems;\n        rStack_144.alloc = -1;\n        rStack_144.nelem = 0xffffffff;\n        rStack_144.elems = (Idx *)0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }\nLAB_0001dcc8:\n    iStack_184 = iStack_184 + 1;\n    if ((int)pIVar24 <= iStack_184) goto code_r0x0001dcdc;\n    goto LAB_0001dc74;\n  }\n  (**(code **)(pcVar52 + 0x1e790))(iVar29);\n  goto LAB_0001e824;\ncode_r0x0001dcdc:\n  if (0 < (int)prVar28) {\n    pbVar47 = (byte *)((int)&prVar28->alloc + 1);\n    uStack_14c = 0;\n    pbStack_150 = pbVar47;\n    iVar45 = (**(code **)(pcVar52 + 0x1e724))((int)pbVar47 * 4);\n    iStack_148 = iVar45;\n    if ((iVar45 == 0) || (iStack_154 = 0, 0x155551aa < (int)prVar28)) {\n      iStack_178 = (int)prVar28 << 1;\n    }\n    else {\n      iStack_178 = (int)prVar28 * 2;\n      pIVar24 = (Idx *)(**(code **)(pcVar52 + 0x1e724))((int)prVar28 * 0xc);\n      if (pIVar24 != (Idx *)0x0) {\n        iVar45 = (int)pbVar47 * 4 + -4;\n        pprVar39 = &prStack_104;\n        iVar38 = 0;\n        pIVar15 = pIVar24 + (int)&prVar28->alloc;\n        prStack_104 = (re_dfa_t *)0x0;\n        piVar43 = (int *)(iVar29 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar46 = *(int *)(pcVar52 + 0x1e658);\n        uStack_f8 = 0;\n        bVar2 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar53 = (code *)(*(int *)(pcVar52 + 0x1e658) + -0x42b4);\n        do {\n          iVar27 = *piVar43;\n          iVar48 = 0;\n          uStack_14c = 0;\n          if (0 < iVar27) {\n            do {\n              iVar10 = *(int *)(prVar7[1].alloc + *(int *)(piVar43[1] + iVar48 * 4) * 4);\n              if (iVar10 != -1) {\n                prVar35 = (re_node_set *)(prVar7[2].alloc + iVar10 * 0xc);\n                iStack_154 = (*(code *)(iVar46 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar27 = *piVar43;\n              }\n              iVar48 = iVar48 + 1;\n            } while (iVar48 < iVar27);\n          }\n          prVar35 = prVar7;\n          iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,0);\n          *(int *)((int)pIVar24 + iVar38) = iVar27;\n          if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar27 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n          }\n          else {\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,1);\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar27 != *(int *)((int)pIVar24 + iVar38)) && (1 < (int)prVar7[7].elems)) {\n              bVar2 = true;\n            }\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,2);\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n            if ((iVar27 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar27 = iVar38 * 8 + iVar29;\n          pprVar11 = pprVar39;\n          do {\n            pprVar12 = pprVar11 + 1;\n            puVar40 = (uint *)(iVar27 + 0xc00);\n            iVar27 = iVar27 + 4;\n            *pprVar11 = (re_dfa_t *)((uint)*pprVar11 | *puVar40);\n            pprVar11 = pprVar12;\n          } while (&prStack_e4 != pprVar12);\n          iVar38 = iVar38 + 4;\n          piVar43 = piVar43 + 3;\n        } while (iVar45 != iVar38);\n        if (bVar2) {\n          prVar35 = (re_node_set *)0x200;\n          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n          prVar18[4].alloc = (Idx)pIVar13;\n          if (pIVar13 == (Idx *)0x0) goto LAB_0001e660;\n          iVar45 = iVar29;\n          pIVar37 = pIVar13;\n          do {\n            prVar21 = *pprVar39;\n            if (prVar21 != (re_dfa_t *)0x0) {\n              prVar35 = (re_node_set *)0x1;\n              pIVar34 = pIVar37;\n              do {\n                if (((uint)prVar21 & 1) != 0) {\n                  iVar38 = 0;\n                  pIVar25 = pIVar15;\n                  pIVar31 = pIVar24;\n                  iVar46 = iVar45;\n                  if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                    do {\n                      puVar40 = (uint *)(iVar46 + 0xc20);\n                      iVar38 = iVar38 + 1;\n                      iVar46 = iVar46 + 0x20;\n                    } while (((uint)prVar35 & *puVar40) == 0);\n                    pIVar25 = pIVar15 + iVar38;\n                    pIVar31 = pIVar24 + iVar38;\n                  }\n                  *pIVar34 = *pIVar31;\n                  pIVar34[0x100] = *pIVar25;\n                }\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1);\n                prVar35 = (re_node_set *)((int)prVar35 << 1);\n                pIVar34 = pIVar34 + 1;\n              } while (prVar21 != (re_dfa_t *)0x0);\n            }\n            pIVar37 = pIVar37 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            iVar45 = iVar45 + 4;\n          } while (pIVar13 + 0x100 != pIVar37);\n        }\n        else {\n          prVar35 = (re_node_set *)0x100;\n          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n          prVar18[3].elems = pIVar13;\n          if (pIVar13 == (Idx *)0x0) {\nLAB_0001e660:\n            pcVar50 = *(code **)(pcVar52 + 0x1e790);\nLAB_0001e664:\n            (*pcVar50)(pIVar24);\n            iVar45 = iStack_148;\n            goto LAB_0001e674;\n          }\n          prVar7 = prVar7 + 8;\n          iVar46 = 0;\n          iVar45 = iVar29;\n          do {\n            prVar35 = (re_node_set *)0x1;\n            iVar38 = iVar46;\n            for (prVar21 = *pprVar39; prVar21 != (re_dfa_t *)0x0;\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1)) {\n              if (((uint)prVar21 & 1) != 0) {\n                iVar48 = 0;\n                iVar27 = iVar45;\n                if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                  do {\n                    puVar40 = (uint *)(iVar27 + 0xc20);\n                    iVar48 = iVar48 + 1;\n                    iVar27 = iVar27 + 0x20;\n                  } while (((uint)prVar35 & *puVar40) == 0);\n                  iVar48 = iVar48 * 4;\n                }\n                if (((uint)prVar35 & prVar7->alloc) == 0) {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar24 + iVar48);\n                }\n                else {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar15 + iVar48);\n                }\n              }\n              prVar35 = (re_node_set *)((int)prVar35 << 1);\n              iVar38 = iVar38 + 1;\n            }\n            iVar46 = iVar46 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            prVar7 = (re_node_set *)&prVar7->nelem;\n            iVar45 = iVar45 + 4;\n          } while (iVar46 != 0x100);\n        }\n        pcVar53 = *(code **)(pcVar52 + 0x1e790);\n        if ((int)prStack_104 << 0x15 < 0) {\n          prVar35 = (re_node_set *)0x0;\n          do {\n            if ((*puVar9 & 0x400) != 0) {\n              IVar22 = pIVar15[(int)(pbVar47 + (int)((int)&prVar35[-1].elems + 3))];\n              pIVar13[10] = IVar22;\n              if (bVar2) {\n                pIVar13[0x10a] = IVar22;\n              }\n              break;\n            }\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            puVar9 = puVar9 + 8;\n          } while (prVar35 != prVar28);\n          pcVar53 = *(code **)(pcVar52 + 0x1e790);\n        }\n        (*pcVar53)(pIVar24);\n        (**(code **)(pcVar52 + 0x1e790))(iStack_148);\n        iVar45 = iVar29;\n        do {\n          iVar46 = iVar45 + 0xc;\n          (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n          iVar45 = iVar46;\n        } while (iVar29 + (int)prVar28 * 0xc != iVar46);\n        (**(code **)(pcVar52 + 0x1e790))(iVar29);\n        rVar5 = _REG_NOMATCH;\n        goto LAB_0001e000;\n      }\n    }\nLAB_0001e674:\n    (**(code **)(pcVar52 + 0x1e790))(iVar45);\n    iVar45 = iVar29;\n    do {\n      iVar46 = iVar45 + 0xc;\n      (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n      iVar45 = iVar46;\n    } while (iVar46 != (int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29);\n    (**(code **)(pcVar52 + 0x1e790))(iVar29);\nLAB_0001dffc:\n    rVar5 = _REG_NOERROR;\n    goto LAB_0001e000;\n  }\n  (**(code **)(pcVar52 + 0x1e790))(iVar29);\n  if (prVar28 != (re_node_set *)0x0) {\n    rVar5 = _REG_NOERROR;\n    goto LAB_0001e000;\n  }\nLAB_0001e824:\n  prVar35 = (re_node_set *)0x100;\n  pIVar24 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n  prVar18[3].elems = pIVar24;\n  rVar5 = (reg_errcode_t)(pIVar24 != (Idx *)0x0);\nLAB_0001e000:\n  if (prStack_e4 == (re_dfa_t *)*piVar8) {\n    return rVar5;\n  }\n  pcVar52 = *(code **)(pcVar52 + 0x1e764);\n  prVar21 = prStack_e4;\n  (*pcVar52)();\n  if (*(uchar *)&prVar35[2].alloc == '\x10') {\n    IVar22 = ((Idx *)prVar35->nelem)[7];\n    prVar35[1].alloc = ((Idx *)prVar35->nelem)[3];\n    prVar35[2].nelem = IVar22;\n    return _REG_NOERROR;\n  }\n  prVar35[1].alloc = (Idx)prVar35;\n  token.opr.sbcset = (re_bitset_ptr_t)(pcVar52 + 0x25764);\n  token._4_4_ = in_stack_fffffe4c;\n  IVar22 = re_dfa_add_node(prVar21,token);\n  prVar35[2].nelem = IVar22;\n  if (IVar22 == -1) {\n    rVar5 = _REG_ESPACE;\n  }\n  else {\n    if (*(uchar *)&prVar35[2].alloc == '\f') {\n      *(uint *)&prVar21->nodes[IVar22].field_0x4 =\n           *(uint *)&prVar21->nodes[IVar22].field_0x4 & 0xff003fff |\n           ((uint)prVar35[1].elems & 0x3ff) << 0xe;\n      return _REG_NOERROR;\n    }\n    rVar5 = _REG_NOERROR;\n  }\n  return rVar5;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "re_token_t token;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uchar uVar16;" type_identifier identifier ;) (declaration "reg_errcode_t rVar5;" type_identifier identifier ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "re_node_set *prVar7;" type_identifier (pointer_declarator "*prVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "re_dfa_t **pprVar11;" type_identifier (pointer_declarator "**pprVar11" * (pointer_declarator "*pprVar11" * identifier)) ;) (declaration "re_dfa_t **pprVar12;" type_identifier (pointer_declarator "**pprVar12" * (pointer_declarator "*pprVar12" * identifier)) ;) (declaration "Idx *pIVar13;" type_identifier (pointer_declarator "*pIVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "Idx *pIVar15;" type_identifier (pointer_declarator "*pIVar15" * identifier) ;) (declaration "re_node_set *prVar17;" type_identifier (pointer_declarator "*prVar17" * identifier) ;) (declaration "re_node_set *prVar18;" type_identifier (pointer_declarator "*prVar18" * identifier) ;) (declaration "wint_t *pwVar19;" type_identifier (pointer_declarator "*pwVar19" * identifier) ;) (declaration "uchar *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "re_dfa_t *prVar21;" type_identifier (pointer_declarator "*prVar21" * identifier) ;) (declaration "Idx IVar22;" type_identifier identifier ;) (declaration "uchar *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "Idx *pIVar24;" type_identifier (pointer_declarator "*pIVar24" * identifier) ;) (declaration "Idx *pIVar25;" type_identifier (pointer_declarator "*pIVar25" * identifier) ;) (declaration "re_node_set *prVar26;" type_identifier (pointer_declarator "*prVar26" * identifier) ;) (declaration "re_node_set *idx_00;" type_identifier (pointer_declarator "*idx_00" * identifier) ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "re_node_set *prVar28;" type_identifier (pointer_declarator "*prVar28" * identifier) ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "uint uVar30;" type_identifier identifier ;) (declaration "Idx *pIVar31;" type_identifier (pointer_declarator "*pIVar31" * identifier) ;) (declaration "re_node_set *prVar32;" type_identifier (pointer_declarator "*prVar32" * identifier) ;) (declaration "wint_t wVar33;" type_identifier identifier ;) (declaration "Idx *pIVar34;" type_identifier (pointer_declarator "*pIVar34" * identifier) ;) (declaration "re_node_set *prVar35;" type_identifier (pointer_declarator "*prVar35" * identifier) ;) (declaration "uint *puVar36;" type_identifier (pointer_declarator "*puVar36" * identifier) ;) (declaration "Idx *pIVar37;" type_identifier (pointer_declarator "*pIVar37" * identifier) ;) (declaration "int iVar38;" primitive_type identifier ;) (declaration "re_node_set *set;" type_identifier (pointer_declarator "*set" * identifier) ;) (declaration "re_dfa_t **pprVar39;" type_identifier (pointer_declarator "**pprVar39" * (pointer_declarator "*pprVar39" * identifier)) ;) (declaration "uint *puVar40;" type_identifier (pointer_declarator "*puVar40" * identifier) ;) (declaration "undefined4 *puVar41;" type_identifier (pointer_declarator "*puVar41" * identifier) ;) (declaration "re_string_t *prVar42;" type_identifier (pointer_declarator "*prVar42" * identifier) ;) (declaration "int *piVar43;" primitive_type (pointer_declarator "*piVar43" * identifier) ;) (declaration "re_node_set *prVar44;" type_identifier (pointer_declarator "*prVar44" * identifier) ;) (declaration "re_node_set *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "re_node_set *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "int iVar45;" primitive_type identifier ;) (declaration "int iVar46;" primitive_type identifier ;) (declaration "re_node_set *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "byte *pbVar47;" type_identifier (pointer_declarator "*pbVar47" * identifier) ;) (declaration "int iVar48;" primitive_type identifier ;) (declaration "undefined *puVar49;" type_identifier (pointer_declarator "*puVar49" * identifier) ;) (declaration "code *pcVar50;" type_identifier (pointer_declarator "*pcVar50" * identifier) ;) (declaration "undefined *puVar51;" type_identifier (pointer_declarator "*puVar51" * identifier) ;) (declaration "re_node_set *unaff_s8;" type_identifier (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "code *pcVar52;" type_identifier (pointer_declarator "*pcVar52" * identifier) ;) (declaration "code *pcVar53;" type_identifier (pointer_declarator "*pcVar53" * identifier) ;) (declaration "undefined4 in_stack_fffffe4c;" type_identifier identifier ;) (declaration "int iStack_184;" primitive_type identifier ;) (declaration "int iStack_178;" primitive_type identifier ;) (declaration "int iStack_154;" primitive_type identifier ;) (declaration "byte *pbStack_150;" type_identifier (pointer_declarator "*pbStack_150" * identifier) ;) (declaration "undefined4 uStack_14c;" type_identifier identifier ;) (declaration "int iStack_148;" primitive_type identifier ;) (declaration "re_node_set rStack_144;" type_identifier identifier ;) (declaration "uint uStack_138;" type_identifier identifier ;) (declaration "uint uStack_134;" type_identifier identifier ;) (declaration "uint uStack_130;" type_identifier identifier ;) (declaration "uint uStack_12c;" type_identifier identifier ;) (declaration "uint uStack_128;" type_identifier identifier ;) (declaration "re_node_set rStack_124;" type_identifier identifier ;) (declaration "uint uStack_118;" type_identifier identifier ;) (declaration "uint uStack_114;" type_identifier identifier ;) (declaration "uint uStack_110;" type_identifier identifier ;) (declaration "uint uStack_10c;" type_identifier identifier ;) (declaration "uint uStack_108;" type_identifier identifier ;) (declaration "re_dfa_t *prStack_104;" type_identifier (pointer_declarator "*prStack_104" * identifier) ;) (declaration "uint uStack_100;" type_identifier identifier ;) (declaration "uint uStack_fc;" type_identifier identifier ;) (declaration "uint uStack_f8;" type_identifier identifier ;) (declaration "uint uStack_f4;" type_identifier identifier ;) (declaration "uint uStack_f0;" type_identifier identifier ;) (declaration "uint uStack_ec;" type_identifier identifier ;) (declaration "uint uStack_e8;" type_identifier identifier ;) (declaration "re_dfa_t *prStack_e4;" type_identifier (pointer_declarator "*prStack_e4" * identifier) ;) (declaration "re_string_t *prStack_e0;" type_identifier (pointer_declarator "*prStack_e0" * identifier) ;) (declaration "int iStack_dc;" primitive_type identifier ;) (declaration "re_node_set *prStack_d8;" type_identifier (pointer_declarator "*prStack_d8" * identifier) ;) (declaration "re_node_set *prStack_d4;" type_identifier (pointer_declarator "*prStack_d4" * identifier) ;) (declaration "int iStack_d0;" primitive_type identifier ;) (declaration "re_node_set *prStack_cc;" type_identifier (pointer_declarator "*prStack_cc" * identifier) ;) (declaration "int iStack_c8;" primitive_type identifier ;) (declaration "re_node_set *prStack_c4;" type_identifier (pointer_declarator "*prStack_c4" * identifier) ;) (declaration "re_node_set *prStack_c0;" type_identifier (pointer_declarator "*prStack_c0" * identifier) ;) (declaration "code *pcStack_bc;" type_identifier (pointer_declarator "*pcStack_bc" * identifier) ;) (declaration "undefined *puStack_a8;" type_identifier (pointer_declarator "*puStack_a8" * identifier) ;) (declaration "re_node_set *prStack_a0;" type_identifier (pointer_declarator "*prStack_a0" * identifier) ;) (declaration "undefined4 *puStack_9c;" type_identifier (pointer_declarator "*puStack_9c" * identifier) ;) (declaration "undefined1 auStack_98 [12];" type_identifier (array_declarator "auStack_98 [12]" identifier [ number_literal ]) ;) (declaration "re_node_set *prStack_8c;" type_identifier (pointer_declarator "*prStack_8c" * identifier) ;) (declaration "re_string_t *prStack_88;" type_identifier (pointer_declarator "*prStack_88" * identifier) ;) (declaration "re_node_set *prStack_84;" type_identifier (pointer_declarator "*prStack_84" * identifier) ;) (declaration "re_node_set *prStack_80;" type_identifier (pointer_declarator "*prStack_80" * identifier) ;) (declaration "re_node_set *prStack_7c;" type_identifier (pointer_declarator "*prStack_7c" * identifier) ;) (declaration "undefined *puStack_78;" type_identifier (pointer_declarator "*puStack_78" * identifier) ;) (declaration "re_node_set *prStack_74;" type_identifier (pointer_declarator "*prStack_74" * identifier) ;) (declaration "int iStack_70;" primitive_type identifier ;) (declaration "re_node_set *prStack_6c;" type_identifier (pointer_declarator "*prStack_6c" * identifier) ;) (declaration "re_node_set *prStack_68;" type_identifier (pointer_declarator "*prStack_68" * identifier) ;) (declaration "code *pcStack_64;" type_identifier (pointer_declarator "*pcStack_64" * identifier) ;) (declaration "wchar_t wc2;" type_identifier identifier ;) (declaration "mbstate_t cur_state;" type_identifier identifier ;) (declaration "uchar buf [6];" type_identifier (array_declarator "buf [6]" identifier [ number_literal ]) ;) (expression_statement "puVar3 = PTR___stack_chk_guard_0003c314;" (assignment_expression "puVar3 = PTR___stack_chk_guard_0003c314" identifier = identifier) ;) (expression_statement "prVar17 = *(re_node_set **)PTR___stack_chk_guard_0003c314;" (assignment_expression "prVar17 = *(re_node_set **)PTR___stack_chk_guard_0003c314" identifier = (pointer_expression "*(re_node_set **)PTR___stack_chk_guard_0003c314" * (cast_expression "(re_node_set **)PTR___stack_chk_guard_0003c314" ( (type_descriptor "re_node_set **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "prVar28 = (re_node_set *)eflags;" (assignment_expression "prVar28 = (re_node_set *)eflags" identifier = (cast_expression "(re_node_set *)eflags" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "prVar44 = (re_node_set *)(idx - pstr->raw_mbs_idx);" (assignment_expression "prVar44 = (re_node_set *)(idx - pstr->raw_mbs_idx)" identifier = (cast_expression "(re_node_set *)(idx - pstr->raw_mbs_idx)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(idx - pstr->raw_mbs_idx)" ( (binary_expression "idx - pstr->raw_mbs_idx" identifier - (field_expression "pstr->raw_mbs_idx" identifier -> field_identifier)) )))) ;) (if_statement "if (idx < pstr->raw_mbs_idx) {\n    if (1 < pstr->mb_cur_max) {\n      (pstr->cur_state).__count = 0;\n      (pstr->cur_state).__value.__wch = 0;\n    }\n    prVar28 = (re_node_set *)0x6;\n    if ((eflags & 1U) != 0) {\n      prVar28 = (re_node_set *)0x4;\n    }\n    pstr->len = pstr->raw_len;\n    pstr->stop = pstr->raw_stop;\n    pstr->valid_len = 0;\n    pstr->raw_mbs_idx = 0;\n    pstr->valid_raw_len = 0;\n    pstr->offsets_needed = '\0';\n    pstr->tip_context = (uint)prVar28;\n    prVar44 = (re_node_set *)idx;\n    if (pstr->mbs_allocated == '\0') {\n      pstr->mbs = pstr->raw_mbs;\n      goto LAB_0001d010;\n    }\n    if (idx == 0) goto LAB_0001d128;\nLAB_0001d018:\n    iVar29 = pstr->valid_raw_len;\n    unaff_s2 = (re_node_set *)pstr->valid_len;\n    if ((int)prVar44 < iVar29) {\n      if (pstr->offsets_needed == '\0') {\n        uVar4 = re_string_context_at(pstr,(Idx)((int)&prVar44[-1].elems + 3),eflags);\n        prVar28 = (re_node_set *)((int)unaff_s2 - (int)prVar44);\n        pstr->tip_context = uVar4;\n        if (1 < pstr->mb_cur_max) {\n          (*(code *)PTR_memmove_0003c324)(pstr->wcs,pstr->wcs + (int)prVar44,(int)prVar28 * 4);\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n        }\n        uVar16 = pstr->mbs_allocated;\n        if (uVar16 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44);\n          uVar16 = pstr->mbs_allocated;\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n        }\n        prVar32 = (re_node_set *)pstr->mb_cur_max;\n        prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n        pstr->valid_len = (Idx)prVar28;\n        IVar22 = pstr->stop - (int)prVar44;\n        pstr->valid_raw_len = pstr->valid_raw_len - (int)prVar44;\n      }\n      else {\n        unaff_s7 = (re_node_set *)pstr->offsets;\n        puVar23 = (uchar *)0x0;\n        prVar28 = unaff_s2;\n        do {\n          unaff_s3 = (re_node_set *)((int)(puVar23 + (int)prVar28) / 2);\n          iVar29 = (&unaff_s7->alloc)[(int)unaff_s3];\n          prVar18 = unaff_s3;\n          if ((iVar29 <= (int)prVar44) &&\n             (puVar23 = (uchar *)((int)&unaff_s3->alloc + 1), prVar18 = prVar28,\n             (int)prVar44 <= iVar29)) goto LAB_0001d460;\n          prVar28 = prVar18;\n        } while ((int)puVar23 < (int)prVar18);\n        if (iVar29 < (int)prVar44) {\n          prVar28 = unaff_s3;\n          unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n        }\n        else {\nLAB_0001d460:\n          prVar28 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n        }\n        uVar4 = re_string_context_at(pstr,(Idx)prVar28,eflags);\n        pstr->tip_context = uVar4;\n        if ((((int)prVar44 < (int)unaff_s2) && (eflags = (int)prVar44 * 4, prVar44 == unaff_s3)) &&\n           ((re_node_set *)(&unaff_s7->alloc)[(int)prVar44] == prVar44)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (pstr->wcs,pstr->wcs + (int)prVar44,((int)unaff_s2 - (int)prVar44) * 4);\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n          (*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44);\n          iVar29 = pstr->valid_len - (int)prVar44;\n          pstr->valid_len = iVar29;\n          pstr->valid_raw_len = pstr->valid_raw_len - (int)prVar44;\n          if (0 < iVar29) {\n            iVar29 = 0;\n            prVar28 = (re_node_set *)((int)prVar44 * -4);\n            piVar8 = pstr->offsets + (int)prVar44;\n            do {\n              iVar29 = iVar29 + 1;\n              piVar8[-(int)prVar44] = *piVar8 - (int)prVar44;\n              piVar8 = piVar8 + 1;\n            } while (iVar29 < pstr->valid_len);\n          }\n          prVar32 = (re_node_set *)pstr->mb_cur_max;\n          uVar16 = pstr->mbs_allocated;\n          prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n          IVar22 = pstr->stop - (int)prVar44;\n        }\n        else {\n          pstr->offsets_needed = '\0';\n          prVar18 = (re_node_set *)(pstr->raw_len - idx);\n          IVar22 = pstr->raw_stop - idx;\n          pstr->len = (Idx)((int)&prVar44->alloc + (int)&prVar18->alloc);\n          pstr->stop = (Idx)(IVar22 + (int)prVar44);\n          if ((0 < (int)unaff_s3) &&\n             (prVar44 == *(re_node_set **)((int)unaff_s7 + (int)unaff_s3 * 4 + -4))) {\n            pIVar24 = &unaff_s7->alloc + (int)unaff_s3;\n            do {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n              if (unaff_s3 == (re_node_set *)0x0) break;\n              pIVar15 = pIVar24 + -2;\n              pIVar24 = pIVar24 + -1;\n            } while ((re_node_set *)*pIVar15 == prVar44);\n          }\n          iVar29 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            pwVar19 = pstr->wcs + (int)unaff_s3;\n            wVar33 = *pwVar19;\n            while (wVar33 == 0xffffffff) {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n              pwVar19 = pwVar19 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar29 = (int)unaff_s3 * 4;\n              wVar33 = *pwVar19;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (re_node_set *)((int)&unaff_s7->alloc + iVar29);\n            prVar28 = (re_node_set *)(unaff_s7->alloc - (int)prVar44);\n            pstr->valid_len = (Idx)prVar28;\n            if (prVar28 != (re_node_set *)0x0) {\n              if (0 < (int)prVar28) {\n                pwVar19 = pstr->wcs;\n                iVar29 = 0;\n                do {\n                  *pwVar19 = 0xffffffff;\n                  iVar29 = iVar29 + 1;\n                  pwVar19 = pwVar19 + 1;\n                } while (iVar29 < pstr->valid_len);\n              }\n              (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n              prVar28 = (re_node_set *)pstr->valid_len;\n              prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n              IVar22 = pstr->stop - (int)prVar44;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            prVar28 = (re_node_set *)0x0;\n            pstr->valid_len = 0;\n          }\n          prVar32 = (re_node_set *)pstr->mb_cur_max;\n          uVar16 = pstr->mbs_allocated;\n          pstr->valid_raw_len = (Idx)prVar28;\n        }\n      }\nLAB_0001d090:\n      prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);\n      if (uVar16 == '\0') {\nLAB_0001d098:\n        prVar44 = (re_node_set *)(pstr->mbs + (int)prVar44);\n        pstr->mbs = (uchar *)prVar44;\n      }\n      pstr->raw_mbs_idx = idx;\n      pstr->len = (Idx)prVar18;\n      pstr->stop = IVar22;\n      if (prVar26 == (re_node_set *)0x0) goto LAB_0001d0b4;\nLAB_0001d148:\n      uVar16 = pstr->mbs_allocated;\n    }\n    else {\n      if (pstr->offsets_needed != '\0') {\n        pstr->offsets_needed = '\0';\n        pstr->len = (Idx)((pstr->raw_len - idx) + (int)prVar44);\n        pstr->stop = (Idx)((pstr->raw_stop - idx) + (int)prVar44);\n      }\n      prVar32 = (re_node_set *)pstr->mb_cur_max;\n      unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n      prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);\n      pstr->valid_len = 0;\n      if (prVar26 == (re_node_set *)0x0) {\n        if (pstr->is_utf8 == '\0') {\nLAB_0001d228:\n          puVar23 = (uchar *)((int)&unaff_s8->alloc + iVar29);\n          if ((int)puVar23 < idx) {\n            unaff_s7 = (re_node_set *)&wc2;\n            do {\n              cur_state.__count = (pstr->cur_state).__count;\n              cur_state.__value = (pstr->cur_state).__value;\n              prVar18 = (re_node_set *)(pstr->raw_len - (int)puVar23);\n              prVar28 = prVar18;\n              sVar6 = rpl_mbrtowc((wchar_t *)unaff_s7,(char *)(puVar23 + (int)pstr->raw_mbs),\n                                  (size_t)prVar18,&pstr->cur_state);\n              unaff_s3 = (re_node_set *)wc2;\n              if (0xfffffffc < sVar6 - 1) {\n                if ((sVar6 == 0) || (prVar18 == (re_node_set *)0x0)) {\n                  unaff_s3 = (re_node_set *)0x0;\n                }\n                else {\n                  unaff_s3 = (re_node_set *)(uint)puVar23[(int)pstr->raw_mbs];\n                }\n                sVar6 = 1;\n                (pstr->cur_state).__count = cur_state.__count;\n                (pstr->cur_state).__value = cur_state.__value;\n              }\n              puVar23 = puVar23 + sVar6;\n            } while ((int)puVar23 < idx);\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n            if (unaff_s3 != (re_node_set *)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n          }\n          prVar28 = (re_node_set *)eflags;\n          uVar4 = re_string_context_at(pstr,(Idx)((int)&unaff_s2[-1].elems + 3),eflags);\n          pstr->tip_context = uVar4;\n        }\n        else {\n          prVar18 = (re_node_set *)pstr->raw_mbs;\n          unaff_s7 = (re_node_set *)((int)&unaff_s8->alloc + (int)&prVar18->alloc);\n          prVar28 = (re_node_set *)((int)unaff_s7 + ((int)prVar44 - (int)prVar32));\n          unaff_s3 = (re_node_set *)\n                     ((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)&unaff_s7->alloc);\n          if (prVar28 <= prVar18) {\n            prVar28 = prVar18;\n          }\n          if (unaff_s3 < prVar28) goto LAB_0001d228;\n          bVar1 = *(byte *)&unaff_s3->alloc;\n          while ((bVar1 & 0xc0) == 0x80) {\n            unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n            if (unaff_s3 < prVar28) goto LAB_0001d228;\n            bVar1 = *(byte *)&unaff_s3->alloc;\n          }\n          puVar23 = pstr->trans;\n          prVar28 = (re_node_set *)((int)unaff_s7 + (pstr->len - (int)unaff_s3));\n          prVar18 = unaff_s3;\n          if (puVar23 != (uchar *)0x0) {\n            prVar26 = (re_node_set *)0x6;\n            if ((int)prVar28 < 7) {\n              prVar26 = prVar28;\n            }\n            prVar18 = (re_node_set *)buf;\n            if (0 < (int)prVar28) {\n              puVar20 = (uchar *)((int)&prVar26->alloc + (int)&unaff_s3->alloc);\n              prVar26 = (re_node_set *)((int)&prVar26->alloc + (int)&prVar18->alloc);\n              do {\n                pbVar47 = puVar20 + -1;\n                prVar26 = (re_node_set *)((int)&prVar26[-1].elems + 3);\n                puVar20 = puVar20 + -1;\n                *(uchar *)&prVar26->alloc = puVar23[*pbVar47];\n              } while (prVar18 != prVar26);\n            }\n          }\n          cur_state.__count = 0;\n          cur_state.__value.__wch = 0;\n          puVar23 = (uchar *)rpl_mbrtowc(&wc2,(char *)prVar18,(size_t)prVar28,&cur_state);\n          puVar20 = (uchar *)((int)prVar44 + ((int)unaff_s7 - (int)unaff_s3));\n          if ((puVar23 < puVar20) || ((uchar *)0xfffffffd < puVar23)) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (re_node_set *)(puVar23 + -(int)puVar20);\n          (pstr->cur_state).__count = 0;\n          (pstr->cur_state).__value.__wch = 0;\n          pstr->valid_len = (Idx)unaff_s8;\n          unaff_s3 = (re_node_set *)wc2;\n          if (wc2 == -1) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((pstr->word_ops_used == '\0') ||\n             ((iVar29 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar29 == 0 &&\n              (unaff_s3 != (re_node_set *)0x5f)))) {\n            uVar4 = 2;\n            if (unaff_s3 == (re_node_set *)0xa) {\n              if (pstr->newline_anchor == '\0') {\n                uVar4 = 0;\n              }\n            }\n            else {\n              uVar4 = 0;\n            }\n          }\n          else {\n            uVar4 = 1;\n          }\n          pstr->tip_context = uVar4;\n        }\n        prVar18 = prVar28;\n        if (unaff_s8 == (re_node_set *)0x0) {\nLAB_0001d2cc:\n          uVar16 = pstr->mbs_allocated;\n          prVar28 = prVar18;\n        }\n        else {\n          iVar29 = 0;\n          prVar18 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            pwVar19 = pstr->wcs;\n            do {\n              *pwVar19 = 0xffffffff;\n              iVar29 = iVar29 + 1;\n              prVar18 = (re_node_set *)pstr->valid_len;\n              pwVar19 = pwVar19 + 1;\n            } while (iVar29 < (int)prVar18);\n          }\n          if (pstr->mbs_allocated != '\0') {\n            (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n            unaff_s8 = (re_node_set *)pstr->valid_len;\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (re_node_set *)pstr->valid_len;\n          uVar16 = '\0';\n        }\n        prVar32 = (re_node_set *)pstr->mb_cur_max;\n        pstr->valid_raw_len = (Idx)unaff_s8;\n        prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n        IVar22 = pstr->stop - (int)prVar44;\n        goto LAB_0001d090;\n      }\n      uVar4 = (uint)(byte)((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)pstr->raw_mbs)\n                          [(int)unaff_s8];\n      pstr->valid_raw_len = 0;\n      if (pstr->trans != (uchar *)0x0) {\n        uVar4 = (uint)pstr->trans[uVar4];\n      }\n      prVar28 = (re_node_set *)(pstr->word_char[(int)uVar4 >> 5] >> (uVar4 & 0x1f) & 1);\n      if (((prVar28 == (re_node_set *)0x0) && (uVar4 == 10)) &&\n         (prVar28 = (re_node_set *)0x2, pstr->newline_anchor == '\0')) {\n        prVar28 = (re_node_set *)0x0;\n      }\n      uVar16 = pstr->mbs_allocated;\n      pstr->tip_context = (uint)prVar28;\n      prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n      IVar22 = pstr->stop - (int)prVar44;\n      if (uVar16 == '\0') goto LAB_0001d098;\n      pstr->raw_mbs_idx = idx;\n      pstr->len = (Idx)prVar18;\n      pstr->stop = IVar22;\n    }\n    if (uVar16 == '\0') {\n      pstr->valid_len = (Idx)prVar18;\n    }\n    else if (pstr->icase == '\0') {\n      prVar26 = (re_node_set *)pstr->trans;\n      if (prVar26 != (re_node_set *)0x0) {\n        prVar28 = (re_node_set *)pstr->bufs_len;\n        prVar35 = (re_node_set *)pstr->valid_len;\n        if ((int)prVar28 <= (int)prVar18) {\n          prVar18 = prVar28;\n        }\n        if ((int)prVar35 < (int)prVar18) {\n          while( true ) {\n            prVar28 = (re_node_set *)(pstr->mbs + (int)prVar35);\n            idx = (int)&prVar35->alloc + (int)(pstr->raw_mbs + idx);\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            prVar26 = (re_node_set *)\n                      ((int)&prVar26->alloc + (uint)*(byte *)&((re_node_set *)idx)->alloc);\n            *(uchar *)&prVar28->alloc = *(uchar *)&prVar26->alloc;\n            if (prVar18 == prVar35) break;\n            idx = pstr->raw_mbs_idx;\n            prVar26 = (re_node_set *)pstr->trans;\n          }\n          pstr->valid_len = (Idx)prVar18;\n          pstr->valid_raw_len = (Idx)prVar18;\n        }\n        else {\n          pstr->valid_len = (Idx)prVar35;\n          pstr->valid_raw_len = (Idx)prVar35;\n        }\n      }\n    }\n    else {\n      build_upper_buffer(pstr);\n    }\nLAB_0001d0dc:\n    rVar5 = _REG_NOERROR;\n    pstr->cur_idx = 0;\n  }\n  else {\nLAB_0001d010:\n    if (prVar44 != (re_node_set *)0x0) goto LAB_0001d018;\nLAB_0001d128:\n    prVar32 = (re_node_set *)pstr->mb_cur_max;\n    prVar18 = (re_node_set *)pstr->len;\n    prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);\n    pstr->raw_mbs_idx = idx;\n    pstr->len = (Idx)prVar18;\n    pstr->stop = pstr->stop;\n    if (prVar26 != (re_node_set *)0x0) goto LAB_0001d148;\nLAB_0001d0b4:\n    if (pstr->icase == '\0') {\n      build_wcs_buffer(pstr);\n      goto LAB_0001d0dc;\n    }\n    rVar5 = build_wcs_upper_buffer(pstr);\n    if (rVar5 == _REG_NOERROR) goto LAB_0001d0dc;\n  }" if (parenthesized_expression "(idx < pstr->raw_mbs_idx)" ( (binary_expression "idx < pstr->raw_mbs_idx" identifier < (field_expression "pstr->raw_mbs_idx" identifier -> field_identifier)) )) (compound_statement "{\n    if (1 < pstr->mb_cur_max) {\n      (pstr->cur_state).__count = 0;\n      (pstr->cur_state).__value.__wch = 0;\n    }\n    prVar28 = (re_node_set *)0x6;\n    if ((eflags & 1U) != 0) {\n      prVar28 = (re_node_set *)0x4;\n    }\n    pstr->len = pstr->raw_len;\n    pstr->stop = pstr->raw_stop;\n    pstr->valid_len = 0;\n    pstr->raw_mbs_idx = 0;\n    pstr->valid_raw_len = 0;\n    pstr->offsets_needed = '\0';\n    pstr->tip_context = (uint)prVar28;\n    prVar44 = (re_node_set *)idx;\n    if (pstr->mbs_allocated == '\0') {\n      pstr->mbs = pstr->raw_mbs;\n      goto LAB_0001d010;\n    }\n    if (idx == 0) goto LAB_0001d128;\nLAB_0001d018:\n    iVar29 = pstr->valid_raw_len;\n    unaff_s2 = (re_node_set *)pstr->valid_len;\n    if ((int)prVar44 < iVar29) {\n      if (pstr->offsets_needed == '\0') {\n        uVar4 = re_string_context_at(pstr,(Idx)((int)&prVar44[-1].elems + 3),eflags);\n        prVar28 = (re_node_set *)((int)unaff_s2 - (int)prVar44);\n        pstr->tip_context = uVar4;\n        if (1 < pstr->mb_cur_max) {\n          (*(code *)PTR_memmove_0003c324)(pstr->wcs,pstr->wcs + (int)prVar44,(int)prVar28 * 4);\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n        }\n        uVar16 = pstr->mbs_allocated;\n        if (uVar16 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44);\n          uVar16 = pstr->mbs_allocated;\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n        }\n        prVar32 = (re_node_set *)pstr->mb_cur_max;\n        prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n        pstr->valid_len = (Idx)prVar28;\n        IVar22 = pstr->stop - (int)prVar44;\n        pstr->valid_raw_len = pstr->valid_raw_len - (int)prVar44;\n      }\n      else {\n        unaff_s7 = (re_node_set *)pstr->offsets;\n        puVar23 = (uchar *)0x0;\n        prVar28 = unaff_s2;\n        do {\n          unaff_s3 = (re_node_set *)((int)(puVar23 + (int)prVar28) / 2);\n          iVar29 = (&unaff_s7->alloc)[(int)unaff_s3];\n          prVar18 = unaff_s3;\n          if ((iVar29 <= (int)prVar44) &&\n             (puVar23 = (uchar *)((int)&unaff_s3->alloc + 1), prVar18 = prVar28,\n             (int)prVar44 <= iVar29)) goto LAB_0001d460;\n          prVar28 = prVar18;\n        } while ((int)puVar23 < (int)prVar18);\n        if (iVar29 < (int)prVar44) {\n          prVar28 = unaff_s3;\n          unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n        }\n        else {\nLAB_0001d460:\n          prVar28 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n        }\n        uVar4 = re_string_context_at(pstr,(Idx)prVar28,eflags);\n        pstr->tip_context = uVar4;\n        if ((((int)prVar44 < (int)unaff_s2) && (eflags = (int)prVar44 * 4, prVar44 == unaff_s3)) &&\n           ((re_node_set *)(&unaff_s7->alloc)[(int)prVar44] == prVar44)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (pstr->wcs,pstr->wcs + (int)prVar44,((int)unaff_s2 - (int)prVar44) * 4);\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n          (*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44);\n          iVar29 = pstr->valid_len - (int)prVar44;\n          pstr->valid_len = iVar29;\n          pstr->valid_raw_len = pstr->valid_raw_len - (int)prVar44;\n          if (0 < iVar29) {\n            iVar29 = 0;\n            prVar28 = (re_node_set *)((int)prVar44 * -4);\n            piVar8 = pstr->offsets + (int)prVar44;\n            do {\n              iVar29 = iVar29 + 1;\n              piVar8[-(int)prVar44] = *piVar8 - (int)prVar44;\n              piVar8 = piVar8 + 1;\n            } while (iVar29 < pstr->valid_len);\n          }\n          prVar32 = (re_node_set *)pstr->mb_cur_max;\n          uVar16 = pstr->mbs_allocated;\n          prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n          IVar22 = pstr->stop - (int)prVar44;\n        }\n        else {\n          pstr->offsets_needed = '\0';\n          prVar18 = (re_node_set *)(pstr->raw_len - idx);\n          IVar22 = pstr->raw_stop - idx;\n          pstr->len = (Idx)((int)&prVar44->alloc + (int)&prVar18->alloc);\n          pstr->stop = (Idx)(IVar22 + (int)prVar44);\n          if ((0 < (int)unaff_s3) &&\n             (prVar44 == *(re_node_set **)((int)unaff_s7 + (int)unaff_s3 * 4 + -4))) {\n            pIVar24 = &unaff_s7->alloc + (int)unaff_s3;\n            do {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n              if (unaff_s3 == (re_node_set *)0x0) break;\n              pIVar15 = pIVar24 + -2;\n              pIVar24 = pIVar24 + -1;\n            } while ((re_node_set *)*pIVar15 == prVar44);\n          }\n          iVar29 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            pwVar19 = pstr->wcs + (int)unaff_s3;\n            wVar33 = *pwVar19;\n            while (wVar33 == 0xffffffff) {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n              pwVar19 = pwVar19 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar29 = (int)unaff_s3 * 4;\n              wVar33 = *pwVar19;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (re_node_set *)((int)&unaff_s7->alloc + iVar29);\n            prVar28 = (re_node_set *)(unaff_s7->alloc - (int)prVar44);\n            pstr->valid_len = (Idx)prVar28;\n            if (prVar28 != (re_node_set *)0x0) {\n              if (0 < (int)prVar28) {\n                pwVar19 = pstr->wcs;\n                iVar29 = 0;\n                do {\n                  *pwVar19 = 0xffffffff;\n                  iVar29 = iVar29 + 1;\n                  pwVar19 = pwVar19 + 1;\n                } while (iVar29 < pstr->valid_len);\n              }\n              (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n              prVar28 = (re_node_set *)pstr->valid_len;\n              prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n              IVar22 = pstr->stop - (int)prVar44;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            prVar28 = (re_node_set *)0x0;\n            pstr->valid_len = 0;\n          }\n          prVar32 = (re_node_set *)pstr->mb_cur_max;\n          uVar16 = pstr->mbs_allocated;\n          pstr->valid_raw_len = (Idx)prVar28;\n        }\n      }\nLAB_0001d090:\n      prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);\n      if (uVar16 == '\0') {\nLAB_0001d098:\n        prVar44 = (re_node_set *)(pstr->mbs + (int)prVar44);\n        pstr->mbs = (uchar *)prVar44;\n      }\n      pstr->raw_mbs_idx = idx;\n      pstr->len = (Idx)prVar18;\n      pstr->stop = IVar22;\n      if (prVar26 == (re_node_set *)0x0) goto LAB_0001d0b4;\nLAB_0001d148:\n      uVar16 = pstr->mbs_allocated;\n    }\n    else {\n      if (pstr->offsets_needed != '\0') {\n        pstr->offsets_needed = '\0';\n        pstr->len = (Idx)((pstr->raw_len - idx) + (int)prVar44);\n        pstr->stop = (Idx)((pstr->raw_stop - idx) + (int)prVar44);\n      }\n      prVar32 = (re_node_set *)pstr->mb_cur_max;\n      unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n      prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);\n      pstr->valid_len = 0;\n      if (prVar26 == (re_node_set *)0x0) {\n        if (pstr->is_utf8 == '\0') {\nLAB_0001d228:\n          puVar23 = (uchar *)((int)&unaff_s8->alloc + iVar29);\n          if ((int)puVar23 < idx) {\n            unaff_s7 = (re_node_set *)&wc2;\n            do {\n              cur_state.__count = (pstr->cur_state).__count;\n              cur_state.__value = (pstr->cur_state).__value;\n              prVar18 = (re_node_set *)(pstr->raw_len - (int)puVar23);\n              prVar28 = prVar18;\n              sVar6 = rpl_mbrtowc((wchar_t *)unaff_s7,(char *)(puVar23 + (int)pstr->raw_mbs),\n                                  (size_t)prVar18,&pstr->cur_state);\n              unaff_s3 = (re_node_set *)wc2;\n              if (0xfffffffc < sVar6 - 1) {\n                if ((sVar6 == 0) || (prVar18 == (re_node_set *)0x0)) {\n                  unaff_s3 = (re_node_set *)0x0;\n                }\n                else {\n                  unaff_s3 = (re_node_set *)(uint)puVar23[(int)pstr->raw_mbs];\n                }\n                sVar6 = 1;\n                (pstr->cur_state).__count = cur_state.__count;\n                (pstr->cur_state).__value = cur_state.__value;\n              }\n              puVar23 = puVar23 + sVar6;\n            } while ((int)puVar23 < idx);\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n            if (unaff_s3 != (re_node_set *)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n          }\n          prVar28 = (re_node_set *)eflags;\n          uVar4 = re_string_context_at(pstr,(Idx)((int)&unaff_s2[-1].elems + 3),eflags);\n          pstr->tip_context = uVar4;\n        }\n        else {\n          prVar18 = (re_node_set *)pstr->raw_mbs;\n          unaff_s7 = (re_node_set *)((int)&unaff_s8->alloc + (int)&prVar18->alloc);\n          prVar28 = (re_node_set *)((int)unaff_s7 + ((int)prVar44 - (int)prVar32));\n          unaff_s3 = (re_node_set *)\n                     ((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)&unaff_s7->alloc);\n          if (prVar28 <= prVar18) {\n            prVar28 = prVar18;\n          }\n          if (unaff_s3 < prVar28) goto LAB_0001d228;\n          bVar1 = *(byte *)&unaff_s3->alloc;\n          while ((bVar1 & 0xc0) == 0x80) {\n            unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n            if (unaff_s3 < prVar28) goto LAB_0001d228;\n            bVar1 = *(byte *)&unaff_s3->alloc;\n          }\n          puVar23 = pstr->trans;\n          prVar28 = (re_node_set *)((int)unaff_s7 + (pstr->len - (int)unaff_s3));\n          prVar18 = unaff_s3;\n          if (puVar23 != (uchar *)0x0) {\n            prVar26 = (re_node_set *)0x6;\n            if ((int)prVar28 < 7) {\n              prVar26 = prVar28;\n            }\n            prVar18 = (re_node_set *)buf;\n            if (0 < (int)prVar28) {\n              puVar20 = (uchar *)((int)&prVar26->alloc + (int)&unaff_s3->alloc);\n              prVar26 = (re_node_set *)((int)&prVar26->alloc + (int)&prVar18->alloc);\n              do {\n                pbVar47 = puVar20 + -1;\n                prVar26 = (re_node_set *)((int)&prVar26[-1].elems + 3);\n                puVar20 = puVar20 + -1;\n                *(uchar *)&prVar26->alloc = puVar23[*pbVar47];\n              } while (prVar18 != prVar26);\n            }\n          }\n          cur_state.__count = 0;\n          cur_state.__value.__wch = 0;\n          puVar23 = (uchar *)rpl_mbrtowc(&wc2,(char *)prVar18,(size_t)prVar28,&cur_state);\n          puVar20 = (uchar *)((int)prVar44 + ((int)unaff_s7 - (int)unaff_s3));\n          if ((puVar23 < puVar20) || ((uchar *)0xfffffffd < puVar23)) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (re_node_set *)(puVar23 + -(int)puVar20);\n          (pstr->cur_state).__count = 0;\n          (pstr->cur_state).__value.__wch = 0;\n          pstr->valid_len = (Idx)unaff_s8;\n          unaff_s3 = (re_node_set *)wc2;\n          if (wc2 == -1) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((pstr->word_ops_used == '\0') ||\n             ((iVar29 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar29 == 0 &&\n              (unaff_s3 != (re_node_set *)0x5f)))) {\n            uVar4 = 2;\n            if (unaff_s3 == (re_node_set *)0xa) {\n              if (pstr->newline_anchor == '\0') {\n                uVar4 = 0;\n              }\n            }\n            else {\n              uVar4 = 0;\n            }\n          }\n          else {\n            uVar4 = 1;\n          }\n          pstr->tip_context = uVar4;\n        }\n        prVar18 = prVar28;\n        if (unaff_s8 == (re_node_set *)0x0) {\nLAB_0001d2cc:\n          uVar16 = pstr->mbs_allocated;\n          prVar28 = prVar18;\n        }\n        else {\n          iVar29 = 0;\n          prVar18 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            pwVar19 = pstr->wcs;\n            do {\n              *pwVar19 = 0xffffffff;\n              iVar29 = iVar29 + 1;\n              prVar18 = (re_node_set *)pstr->valid_len;\n              pwVar19 = pwVar19 + 1;\n            } while (iVar29 < (int)prVar18);\n          }\n          if (pstr->mbs_allocated != '\0') {\n            (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n            unaff_s8 = (re_node_set *)pstr->valid_len;\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (re_node_set *)pstr->valid_len;\n          uVar16 = '\0';\n        }\n        prVar32 = (re_node_set *)pstr->mb_cur_max;\n        pstr->valid_raw_len = (Idx)unaff_s8;\n        prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n        IVar22 = pstr->stop - (int)prVar44;\n        goto LAB_0001d090;\n      }\n      uVar4 = (uint)(byte)((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)pstr->raw_mbs)\n                          [(int)unaff_s8];\n      pstr->valid_raw_len = 0;\n      if (pstr->trans != (uchar *)0x0) {\n        uVar4 = (uint)pstr->trans[uVar4];\n      }\n      prVar28 = (re_node_set *)(pstr->word_char[(int)uVar4 >> 5] >> (uVar4 & 0x1f) & 1);\n      if (((prVar28 == (re_node_set *)0x0) && (uVar4 == 10)) &&\n         (prVar28 = (re_node_set *)0x2, pstr->newline_anchor == '\0')) {\n        prVar28 = (re_node_set *)0x0;\n      }\n      uVar16 = pstr->mbs_allocated;\n      pstr->tip_context = (uint)prVar28;\n      prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n      IVar22 = pstr->stop - (int)prVar44;\n      if (uVar16 == '\0') goto LAB_0001d098;\n      pstr->raw_mbs_idx = idx;\n      pstr->len = (Idx)prVar18;\n      pstr->stop = IVar22;\n    }\n    if (uVar16 == '\0') {\n      pstr->valid_len = (Idx)prVar18;\n    }\n    else if (pstr->icase == '\0') {\n      prVar26 = (re_node_set *)pstr->trans;\n      if (prVar26 != (re_node_set *)0x0) {\n        prVar28 = (re_node_set *)pstr->bufs_len;\n        prVar35 = (re_node_set *)pstr->valid_len;\n        if ((int)prVar28 <= (int)prVar18) {\n          prVar18 = prVar28;\n        }\n        if ((int)prVar35 < (int)prVar18) {\n          while( true ) {\n            prVar28 = (re_node_set *)(pstr->mbs + (int)prVar35);\n            idx = (int)&prVar35->alloc + (int)(pstr->raw_mbs + idx);\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            prVar26 = (re_node_set *)\n                      ((int)&prVar26->alloc + (uint)*(byte *)&((re_node_set *)idx)->alloc);\n            *(uchar *)&prVar28->alloc = *(uchar *)&prVar26->alloc;\n            if (prVar18 == prVar35) break;\n            idx = pstr->raw_mbs_idx;\n            prVar26 = (re_node_set *)pstr->trans;\n          }\n          pstr->valid_len = (Idx)prVar18;\n          pstr->valid_raw_len = (Idx)prVar18;\n        }\n        else {\n          pstr->valid_len = (Idx)prVar35;\n          pstr->valid_raw_len = (Idx)prVar35;\n        }\n      }\n    }\n    else {\n      build_upper_buffer(pstr);\n    }\nLAB_0001d0dc:\n    rVar5 = _REG_NOERROR;\n    pstr->cur_idx = 0;\n  }" { (if_statement "if (1 < pstr->mb_cur_max) {\n      (pstr->cur_state).__count = 0;\n      (pstr->cur_state).__value.__wch = 0;\n    }" if (parenthesized_expression "(1 < pstr->mb_cur_max)" ( (binary_expression "1 < pstr->mb_cur_max" number_literal < (field_expression "pstr->mb_cur_max" identifier -> field_identifier)) )) (compound_statement "{\n      (pstr->cur_state).__count = 0;\n      (pstr->cur_state).__value.__wch = 0;\n    }" { (expression_statement "(pstr->cur_state).__count = 0;" (assignment_expression "(pstr->cur_state).__count = 0" (field_expression "(pstr->cur_state).__count" (parenthesized_expression "(pstr->cur_state)" ( (field_expression "pstr->cur_state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(pstr->cur_state).__value.__wch = 0;" (assignment_expression "(pstr->cur_state).__value.__wch = 0" (field_expression "(pstr->cur_state).__value.__wch" (field_expression "(pstr->cur_state).__value" (parenthesized_expression "(pstr->cur_state)" ( (field_expression "pstr->cur_state" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) })) (expression_statement "prVar28 = (re_node_set *)0x6;" (assignment_expression "prVar28 = (re_node_set *)0x6" identifier = (cast_expression "(re_node_set *)0x6" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((eflags & 1U) != 0) {\n      prVar28 = (re_node_set *)0x4;\n    }" if (parenthesized_expression "((eflags & 1U) != 0)" ( (binary_expression "(eflags & 1U) != 0" (parenthesized_expression "(eflags & 1U)" ( (binary_expression "eflags & 1U" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      prVar28 = (re_node_set *)0x4;\n    }" { (expression_statement "prVar28 = (re_node_set *)0x4;" (assignment_expression "prVar28 = (re_node_set *)0x4" identifier = (cast_expression "(re_node_set *)0x4" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "pstr->len = pstr->raw_len;" (assignment_expression "pstr->len = pstr->raw_len" (field_expression "pstr->len" identifier -> field_identifier) = (field_expression "pstr->raw_len" identifier -> field_identifier)) ;) (expression_statement "pstr->stop = pstr->raw_stop;" (assignment_expression "pstr->stop = pstr->raw_stop" (field_expression "pstr->stop" identifier -> field_identifier) = (field_expression "pstr->raw_stop" identifier -> field_identifier)) ;) (expression_statement "pstr->valid_len = 0;" (assignment_expression "pstr->valid_len = 0" (field_expression "pstr->valid_len" identifier -> field_identifier) = number_literal) ;) (expression_statement "pstr->raw_mbs_idx = 0;" (assignment_expression "pstr->raw_mbs_idx = 0" (field_expression "pstr->raw_mbs_idx" identifier -> field_identifier) = number_literal) ;) (expression_statement "pstr->valid_raw_len = 0;" (assignment_expression "pstr->valid_raw_len = 0" (field_expression "pstr->valid_raw_len" identifier -> field_identifier) = number_literal) ;) (expression_statement "pstr->offsets_needed = '\0';" (assignment_expression "pstr->offsets_needed = '\0'" (field_expression "pstr->offsets_needed" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pstr->tip_context = (uint)prVar28;" (assignment_expression "pstr->tip_context = (uint)prVar28" (field_expression "pstr->tip_context" identifier -> field_identifier) = (cast_expression "(uint)prVar28" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "prVar44 = (re_node_set *)idx;" (assignment_expression "prVar44 = (re_node_set *)idx" identifier = (cast_expression "(re_node_set *)idx" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pstr->mbs_allocated == '\0') {\n      pstr->mbs = pstr->raw_mbs;\n      goto LAB_0001d010;\n    }" if (parenthesized_expression "(pstr->mbs_allocated == '\0')" ( (binary_expression "pstr->mbs_allocated == '\0'" (field_expression "pstr->mbs_allocated" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pstr->mbs = pstr->raw_mbs;\n      goto LAB_0001d010;\n    }" { (expression_statement "pstr->mbs = pstr->raw_mbs;" (assignment_expression "pstr->mbs = pstr->raw_mbs" (field_expression "pstr->mbs" identifier -> field_identifier) = (field_expression "pstr->raw_mbs" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0001d010;" goto statement_identifier ;) })) (if_statement "if (idx == 0) goto LAB_0001d128;" if (parenthesized_expression "(idx == 0)" ( (binary_expression "idx == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001d128;" goto statement_identifier ;)) (labeled_statement "LAB_0001d018:\n    iVar29 = pstr->valid_raw_len;" statement_identifier : (expression_statement "iVar29 = pstr->valid_raw_len;" (assignment_expression "iVar29 = pstr->valid_raw_len" identifier = (field_expression "pstr->valid_raw_len" identifier -> field_identifier)) ;)) (expression_statement "unaff_s2 = (re_node_set *)pstr->valid_len;" (assignment_expression "unaff_s2 = (re_node_set *)pstr->valid_len" identifier = (cast_expression "(re_node_set *)pstr->valid_len" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pstr->valid_len" identifier -> field_identifier))) ;) (if_statement "if ((int)prVar44 < iVar29) {\n      if (pstr->offsets_needed == '\0') {\n        uVar4 = re_string_context_at(pstr,(Idx)((int)&prVar44[-1].elems + 3),eflags);\n        prVar28 = (re_node_set *)((int)unaff_s2 - (int)prVar44);\n        pstr->tip_context = uVar4;\n        if (1 < pstr->mb_cur_max) {\n          (*(code *)PTR_memmove_0003c324)(pstr->wcs,pstr->wcs + (int)prVar44,(int)prVar28 * 4);\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n        }\n        uVar16 = pstr->mbs_allocated;\n        if (uVar16 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44);\n          uVar16 = pstr->mbs_allocated;\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n        }\n        prVar32 = (re_node_set *)pstr->mb_cur_max;\n        prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n        pstr->valid_len = (Idx)prVar28;\n        IVar22 = pstr->stop - (int)prVar44;\n        pstr->valid_raw_len = pstr->valid_raw_len - (int)prVar44;\n      }\n      else {\n        unaff_s7 = (re_node_set *)pstr->offsets;\n        puVar23 = (uchar *)0x0;\n        prVar28 = unaff_s2;\n        do {\n          unaff_s3 = (re_node_set *)((int)(puVar23 + (int)prVar28) / 2);\n          iVar29 = (&unaff_s7->alloc)[(int)unaff_s3];\n          prVar18 = unaff_s3;\n          if ((iVar29 <= (int)prVar44) &&\n             (puVar23 = (uchar *)((int)&unaff_s3->alloc + 1), prVar18 = prVar28,\n             (int)prVar44 <= iVar29)) goto LAB_0001d460;\n          prVar28 = prVar18;\n        } while ((int)puVar23 < (int)prVar18);\n        if (iVar29 < (int)prVar44) {\n          prVar28 = unaff_s3;\n          unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n        }\n        else {\nLAB_0001d460:\n          prVar28 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n        }\n        uVar4 = re_string_context_at(pstr,(Idx)prVar28,eflags);\n        pstr->tip_context = uVar4;\n        if ((((int)prVar44 < (int)unaff_s2) && (eflags = (int)prVar44 * 4, prVar44 == unaff_s3)) &&\n           ((re_node_set *)(&unaff_s7->alloc)[(int)prVar44] == prVar44)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (pstr->wcs,pstr->wcs + (int)prVar44,((int)unaff_s2 - (int)prVar44) * 4);\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n          (*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44);\n          iVar29 = pstr->valid_len - (int)prVar44;\n          pstr->valid_len = iVar29;\n          pstr->valid_raw_len = pstr->valid_raw_len - (int)prVar44;\n          if (0 < iVar29) {\n            iVar29 = 0;\n            prVar28 = (re_node_set *)((int)prVar44 * -4);\n            piVar8 = pstr->offsets + (int)prVar44;\n            do {\n              iVar29 = iVar29 + 1;\n              piVar8[-(int)prVar44] = *piVar8 - (int)prVar44;\n              piVar8 = piVar8 + 1;\n            } while (iVar29 < pstr->valid_len);\n          }\n          prVar32 = (re_node_set *)pstr->mb_cur_max;\n          uVar16 = pstr->mbs_allocated;\n          prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n          IVar22 = pstr->stop - (int)prVar44;\n        }\n        else {\n          pstr->offsets_needed = '\0';\n          prVar18 = (re_node_set *)(pstr->raw_len - idx);\n          IVar22 = pstr->raw_stop - idx;\n          pstr->len = (Idx)((int)&prVar44->alloc + (int)&prVar18->alloc);\n          pstr->stop = (Idx)(IVar22 + (int)prVar44);\n          if ((0 < (int)unaff_s3) &&\n             (prVar44 == *(re_node_set **)((int)unaff_s7 + (int)unaff_s3 * 4 + -4))) {\n            pIVar24 = &unaff_s7->alloc + (int)unaff_s3;\n            do {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n              if (unaff_s3 == (re_node_set *)0x0) break;\n              pIVar15 = pIVar24 + -2;\n              pIVar24 = pIVar24 + -1;\n            } while ((re_node_set *)*pIVar15 == prVar44);\n          }\n          iVar29 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            pwVar19 = pstr->wcs + (int)unaff_s3;\n            wVar33 = *pwVar19;\n            while (wVar33 == 0xffffffff) {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n              pwVar19 = pwVar19 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar29 = (int)unaff_s3 * 4;\n              wVar33 = *pwVar19;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (re_node_set *)((int)&unaff_s7->alloc + iVar29);\n            prVar28 = (re_node_set *)(unaff_s7->alloc - (int)prVar44);\n            pstr->valid_len = (Idx)prVar28;\n            if (prVar28 != (re_node_set *)0x0) {\n              if (0 < (int)prVar28) {\n                pwVar19 = pstr->wcs;\n                iVar29 = 0;\n                do {\n                  *pwVar19 = 0xffffffff;\n                  iVar29 = iVar29 + 1;\n                  pwVar19 = pwVar19 + 1;\n                } while (iVar29 < pstr->valid_len);\n              }\n              (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n              prVar28 = (re_node_set *)pstr->valid_len;\n              prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n              IVar22 = pstr->stop - (int)prVar44;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            prVar28 = (re_node_set *)0x0;\n            pstr->valid_len = 0;\n          }\n          prVar32 = (re_node_set *)pstr->mb_cur_max;\n          uVar16 = pstr->mbs_allocated;\n          pstr->valid_raw_len = (Idx)prVar28;\n        }\n      }\nLAB_0001d090:\n      prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);\n      if (uVar16 == '\0') {\nLAB_0001d098:\n        prVar44 = (re_node_set *)(pstr->mbs + (int)prVar44);\n        pstr->mbs = (uchar *)prVar44;\n      }\n      pstr->raw_mbs_idx = idx;\n      pstr->len = (Idx)prVar18;\n      pstr->stop = IVar22;\n      if (prVar26 == (re_node_set *)0x0) goto LAB_0001d0b4;\nLAB_0001d148:\n      uVar16 = pstr->mbs_allocated;\n    }\n    else {\n      if (pstr->offsets_needed != '\0') {\n        pstr->offsets_needed = '\0';\n        pstr->len = (Idx)((pstr->raw_len - idx) + (int)prVar44);\n        pstr->stop = (Idx)((pstr->raw_stop - idx) + (int)prVar44);\n      }\n      prVar32 = (re_node_set *)pstr->mb_cur_max;\n      unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n      prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);\n      pstr->valid_len = 0;\n      if (prVar26 == (re_node_set *)0x0) {\n        if (pstr->is_utf8 == '\0') {\nLAB_0001d228:\n          puVar23 = (uchar *)((int)&unaff_s8->alloc + iVar29);\n          if ((int)puVar23 < idx) {\n            unaff_s7 = (re_node_set *)&wc2;\n            do {\n              cur_state.__count = (pstr->cur_state).__count;\n              cur_state.__value = (pstr->cur_state).__value;\n              prVar18 = (re_node_set *)(pstr->raw_len - (int)puVar23);\n              prVar28 = prVar18;\n              sVar6 = rpl_mbrtowc((wchar_t *)unaff_s7,(char *)(puVar23 + (int)pstr->raw_mbs),\n                                  (size_t)prVar18,&pstr->cur_state);\n              unaff_s3 = (re_node_set *)wc2;\n              if (0xfffffffc < sVar6 - 1) {\n                if ((sVar6 == 0) || (prVar18 == (re_node_set *)0x0)) {\n                  unaff_s3 = (re_node_set *)0x0;\n                }\n                else {\n                  unaff_s3 = (re_node_set *)(uint)puVar23[(int)pstr->raw_mbs];\n                }\n                sVar6 = 1;\n                (pstr->cur_state).__count = cur_state.__count;\n                (pstr->cur_state).__value = cur_state.__value;\n              }\n              puVar23 = puVar23 + sVar6;\n            } while ((int)puVar23 < idx);\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n            if (unaff_s3 != (re_node_set *)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n          }\n          prVar28 = (re_node_set *)eflags;\n          uVar4 = re_string_context_at(pstr,(Idx)((int)&unaff_s2[-1].elems + 3),eflags);\n          pstr->tip_context = uVar4;\n        }\n        else {\n          prVar18 = (re_node_set *)pstr->raw_mbs;\n          unaff_s7 = (re_node_set *)((int)&unaff_s8->alloc + (int)&prVar18->alloc);\n          prVar28 = (re_node_set *)((int)unaff_s7 + ((int)prVar44 - (int)prVar32));\n          unaff_s3 = (re_node_set *)\n                     ((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)&unaff_s7->alloc);\n          if (prVar28 <= prVar18) {\n            prVar28 = prVar18;\n          }\n          if (unaff_s3 < prVar28) goto LAB_0001d228;\n          bVar1 = *(byte *)&unaff_s3->alloc;\n          while ((bVar1 & 0xc0) == 0x80) {\n            unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n            if (unaff_s3 < prVar28) goto LAB_0001d228;\n            bVar1 = *(byte *)&unaff_s3->alloc;\n          }\n          puVar23 = pstr->trans;\n          prVar28 = (re_node_set *)((int)unaff_s7 + (pstr->len - (int)unaff_s3));\n          prVar18 = unaff_s3;\n          if (puVar23 != (uchar *)0x0) {\n            prVar26 = (re_node_set *)0x6;\n            if ((int)prVar28 < 7) {\n              prVar26 = prVar28;\n            }\n            prVar18 = (re_node_set *)buf;\n            if (0 < (int)prVar28) {\n              puVar20 = (uchar *)((int)&prVar26->alloc + (int)&unaff_s3->alloc);\n              prVar26 = (re_node_set *)((int)&prVar26->alloc + (int)&prVar18->alloc);\n              do {\n                pbVar47 = puVar20 + -1;\n                prVar26 = (re_node_set *)((int)&prVar26[-1].elems + 3);\n                puVar20 = puVar20 + -1;\n                *(uchar *)&prVar26->alloc = puVar23[*pbVar47];\n              } while (prVar18 != prVar26);\n            }\n          }\n          cur_state.__count = 0;\n          cur_state.__value.__wch = 0;\n          puVar23 = (uchar *)rpl_mbrtowc(&wc2,(char *)prVar18,(size_t)prVar28,&cur_state);\n          puVar20 = (uchar *)((int)prVar44 + ((int)unaff_s7 - (int)unaff_s3));\n          if ((puVar23 < puVar20) || ((uchar *)0xfffffffd < puVar23)) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (re_node_set *)(puVar23 + -(int)puVar20);\n          (pstr->cur_state).__count = 0;\n          (pstr->cur_state).__value.__wch = 0;\n          pstr->valid_len = (Idx)unaff_s8;\n          unaff_s3 = (re_node_set *)wc2;\n          if (wc2 == -1) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((pstr->word_ops_used == '\0') ||\n             ((iVar29 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar29 == 0 &&\n              (unaff_s3 != (re_node_set *)0x5f)))) {\n            uVar4 = 2;\n            if (unaff_s3 == (re_node_set *)0xa) {\n              if (pstr->newline_anchor == '\0') {\n                uVar4 = 0;\n              }\n            }\n            else {\n              uVar4 = 0;\n            }\n          }\n          else {\n            uVar4 = 1;\n          }\n          pstr->tip_context = uVar4;\n        }\n        prVar18 = prVar28;\n        if (unaff_s8 == (re_node_set *)0x0) {\nLAB_0001d2cc:\n          uVar16 = pstr->mbs_allocated;\n          prVar28 = prVar18;\n        }\n        else {\n          iVar29 = 0;\n          prVar18 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            pwVar19 = pstr->wcs;\n            do {\n              *pwVar19 = 0xffffffff;\n              iVar29 = iVar29 + 1;\n              prVar18 = (re_node_set *)pstr->valid_len;\n              pwVar19 = pwVar19 + 1;\n            } while (iVar29 < (int)prVar18);\n          }\n          if (pstr->mbs_allocated != '\0') {\n            (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n            unaff_s8 = (re_node_set *)pstr->valid_len;\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (re_node_set *)pstr->valid_len;\n          uVar16 = '\0';\n        }\n        prVar32 = (re_node_set *)pstr->mb_cur_max;\n        pstr->valid_raw_len = (Idx)unaff_s8;\n        prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n        IVar22 = pstr->stop - (int)prVar44;\n        goto LAB_0001d090;\n      }\n      uVar4 = (uint)(byte)((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)pstr->raw_mbs)\n                          [(int)unaff_s8];\n      pstr->valid_raw_len = 0;\n      if (pstr->trans != (uchar *)0x0) {\n        uVar4 = (uint)pstr->trans[uVar4];\n      }\n      prVar28 = (re_node_set *)(pstr->word_char[(int)uVar4 >> 5] >> (uVar4 & 0x1f) & 1);\n      if (((prVar28 == (re_node_set *)0x0) && (uVar4 == 10)) &&\n         (prVar28 = (re_node_set *)0x2, pstr->newline_anchor == '\0')) {\n        prVar28 = (re_node_set *)0x0;\n      }\n      uVar16 = pstr->mbs_allocated;\n      pstr->tip_context = (uint)prVar28;\n      prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n      IVar22 = pstr->stop - (int)prVar44;\n      if (uVar16 == '\0') goto LAB_0001d098;\n      pstr->raw_mbs_idx = idx;\n      pstr->len = (Idx)prVar18;\n      pstr->stop = IVar22;\n    }" if (parenthesized_expression "((int)prVar44 < iVar29)" ( (binary_expression "(int)prVar44 < iVar29" (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n      if (pstr->offsets_needed == '\0') {\n        uVar4 = re_string_context_at(pstr,(Idx)((int)&prVar44[-1].elems + 3),eflags);\n        prVar28 = (re_node_set *)((int)unaff_s2 - (int)prVar44);\n        pstr->tip_context = uVar4;\n        if (1 < pstr->mb_cur_max) {\n          (*(code *)PTR_memmove_0003c324)(pstr->wcs,pstr->wcs + (int)prVar44,(int)prVar28 * 4);\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n        }\n        uVar16 = pstr->mbs_allocated;\n        if (uVar16 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44);\n          uVar16 = pstr->mbs_allocated;\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n        }\n        prVar32 = (re_node_set *)pstr->mb_cur_max;\n        prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n        pstr->valid_len = (Idx)prVar28;\n        IVar22 = pstr->stop - (int)prVar44;\n        pstr->valid_raw_len = pstr->valid_raw_len - (int)prVar44;\n      }\n      else {\n        unaff_s7 = (re_node_set *)pstr->offsets;\n        puVar23 = (uchar *)0x0;\n        prVar28 = unaff_s2;\n        do {\n          unaff_s3 = (re_node_set *)((int)(puVar23 + (int)prVar28) / 2);\n          iVar29 = (&unaff_s7->alloc)[(int)unaff_s3];\n          prVar18 = unaff_s3;\n          if ((iVar29 <= (int)prVar44) &&\n             (puVar23 = (uchar *)((int)&unaff_s3->alloc + 1), prVar18 = prVar28,\n             (int)prVar44 <= iVar29)) goto LAB_0001d460;\n          prVar28 = prVar18;\n        } while ((int)puVar23 < (int)prVar18);\n        if (iVar29 < (int)prVar44) {\n          prVar28 = unaff_s3;\n          unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n        }\n        else {\nLAB_0001d460:\n          prVar28 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n        }\n        uVar4 = re_string_context_at(pstr,(Idx)prVar28,eflags);\n        pstr->tip_context = uVar4;\n        if ((((int)prVar44 < (int)unaff_s2) && (eflags = (int)prVar44 * 4, prVar44 == unaff_s3)) &&\n           ((re_node_set *)(&unaff_s7->alloc)[(int)prVar44] == prVar44)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (pstr->wcs,pstr->wcs + (int)prVar44,((int)unaff_s2 - (int)prVar44) * 4);\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n          (*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44);\n          iVar29 = pstr->valid_len - (int)prVar44;\n          pstr->valid_len = iVar29;\n          pstr->valid_raw_len = pstr->valid_raw_len - (int)prVar44;\n          if (0 < iVar29) {\n            iVar29 = 0;\n            prVar28 = (re_node_set *)((int)prVar44 * -4);\n            piVar8 = pstr->offsets + (int)prVar44;\n            do {\n              iVar29 = iVar29 + 1;\n              piVar8[-(int)prVar44] = *piVar8 - (int)prVar44;\n              piVar8 = piVar8 + 1;\n            } while (iVar29 < pstr->valid_len);\n          }\n          prVar32 = (re_node_set *)pstr->mb_cur_max;\n          uVar16 = pstr->mbs_allocated;\n          prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n          IVar22 = pstr->stop - (int)prVar44;\n        }\n        else {\n          pstr->offsets_needed = '\0';\n          prVar18 = (re_node_set *)(pstr->raw_len - idx);\n          IVar22 = pstr->raw_stop - idx;\n          pstr->len = (Idx)((int)&prVar44->alloc + (int)&prVar18->alloc);\n          pstr->stop = (Idx)(IVar22 + (int)prVar44);\n          if ((0 < (int)unaff_s3) &&\n             (prVar44 == *(re_node_set **)((int)unaff_s7 + (int)unaff_s3 * 4 + -4))) {\n            pIVar24 = &unaff_s7->alloc + (int)unaff_s3;\n            do {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n              if (unaff_s3 == (re_node_set *)0x0) break;\n              pIVar15 = pIVar24 + -2;\n              pIVar24 = pIVar24 + -1;\n            } while ((re_node_set *)*pIVar15 == prVar44);\n          }\n          iVar29 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            pwVar19 = pstr->wcs + (int)unaff_s3;\n            wVar33 = *pwVar19;\n            while (wVar33 == 0xffffffff) {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n              pwVar19 = pwVar19 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar29 = (int)unaff_s3 * 4;\n              wVar33 = *pwVar19;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (re_node_set *)((int)&unaff_s7->alloc + iVar29);\n            prVar28 = (re_node_set *)(unaff_s7->alloc - (int)prVar44);\n            pstr->valid_len = (Idx)prVar28;\n            if (prVar28 != (re_node_set *)0x0) {\n              if (0 < (int)prVar28) {\n                pwVar19 = pstr->wcs;\n                iVar29 = 0;\n                do {\n                  *pwVar19 = 0xffffffff;\n                  iVar29 = iVar29 + 1;\n                  pwVar19 = pwVar19 + 1;\n                } while (iVar29 < pstr->valid_len);\n              }\n              (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n              prVar28 = (re_node_set *)pstr->valid_len;\n              prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n              IVar22 = pstr->stop - (int)prVar44;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            prVar28 = (re_node_set *)0x0;\n            pstr->valid_len = 0;\n          }\n          prVar32 = (re_node_set *)pstr->mb_cur_max;\n          uVar16 = pstr->mbs_allocated;\n          pstr->valid_raw_len = (Idx)prVar28;\n        }\n      }\nLAB_0001d090:\n      prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);\n      if (uVar16 == '\0') {\nLAB_0001d098:\n        prVar44 = (re_node_set *)(pstr->mbs + (int)prVar44);\n        pstr->mbs = (uchar *)prVar44;\n      }\n      pstr->raw_mbs_idx = idx;\n      pstr->len = (Idx)prVar18;\n      pstr->stop = IVar22;\n      if (prVar26 == (re_node_set *)0x0) goto LAB_0001d0b4;\nLAB_0001d148:\n      uVar16 = pstr->mbs_allocated;\n    }" { (if_statement "if (pstr->offsets_needed == '\0') {\n        uVar4 = re_string_context_at(pstr,(Idx)((int)&prVar44[-1].elems + 3),eflags);\n        prVar28 = (re_node_set *)((int)unaff_s2 - (int)prVar44);\n        pstr->tip_context = uVar4;\n        if (1 < pstr->mb_cur_max) {\n          (*(code *)PTR_memmove_0003c324)(pstr->wcs,pstr->wcs + (int)prVar44,(int)prVar28 * 4);\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n        }\n        uVar16 = pstr->mbs_allocated;\n        if (uVar16 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44);\n          uVar16 = pstr->mbs_allocated;\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n        }\n        prVar32 = (re_node_set *)pstr->mb_cur_max;\n        prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n        pstr->valid_len = (Idx)prVar28;\n        IVar22 = pstr->stop - (int)prVar44;\n        pstr->valid_raw_len = pstr->valid_raw_len - (int)prVar44;\n      }\n      else {\n        unaff_s7 = (re_node_set *)pstr->offsets;\n        puVar23 = (uchar *)0x0;\n        prVar28 = unaff_s2;\n        do {\n          unaff_s3 = (re_node_set *)((int)(puVar23 + (int)prVar28) / 2);\n          iVar29 = (&unaff_s7->alloc)[(int)unaff_s3];\n          prVar18 = unaff_s3;\n          if ((iVar29 <= (int)prVar44) &&\n             (puVar23 = (uchar *)((int)&unaff_s3->alloc + 1), prVar18 = prVar28,\n             (int)prVar44 <= iVar29)) goto LAB_0001d460;\n          prVar28 = prVar18;\n        } while ((int)puVar23 < (int)prVar18);\n        if (iVar29 < (int)prVar44) {\n          prVar28 = unaff_s3;\n          unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n        }\n        else {\nLAB_0001d460:\n          prVar28 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n        }\n        uVar4 = re_string_context_at(pstr,(Idx)prVar28,eflags);\n        pstr->tip_context = uVar4;\n        if ((((int)prVar44 < (int)unaff_s2) && (eflags = (int)prVar44 * 4, prVar44 == unaff_s3)) &&\n           ((re_node_set *)(&unaff_s7->alloc)[(int)prVar44] == prVar44)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (pstr->wcs,pstr->wcs + (int)prVar44,((int)unaff_s2 - (int)prVar44) * 4);\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n          (*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44);\n          iVar29 = pstr->valid_len - (int)prVar44;\n          pstr->valid_len = iVar29;\n          pstr->valid_raw_len = pstr->valid_raw_len - (int)prVar44;\n          if (0 < iVar29) {\n            iVar29 = 0;\n            prVar28 = (re_node_set *)((int)prVar44 * -4);\n            piVar8 = pstr->offsets + (int)prVar44;\n            do {\n              iVar29 = iVar29 + 1;\n              piVar8[-(int)prVar44] = *piVar8 - (int)prVar44;\n              piVar8 = piVar8 + 1;\n            } while (iVar29 < pstr->valid_len);\n          }\n          prVar32 = (re_node_set *)pstr->mb_cur_max;\n          uVar16 = pstr->mbs_allocated;\n          prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n          IVar22 = pstr->stop - (int)prVar44;\n        }\n        else {\n          pstr->offsets_needed = '\0';\n          prVar18 = (re_node_set *)(pstr->raw_len - idx);\n          IVar22 = pstr->raw_stop - idx;\n          pstr->len = (Idx)((int)&prVar44->alloc + (int)&prVar18->alloc);\n          pstr->stop = (Idx)(IVar22 + (int)prVar44);\n          if ((0 < (int)unaff_s3) &&\n             (prVar44 == *(re_node_set **)((int)unaff_s7 + (int)unaff_s3 * 4 + -4))) {\n            pIVar24 = &unaff_s7->alloc + (int)unaff_s3;\n            do {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n              if (unaff_s3 == (re_node_set *)0x0) break;\n              pIVar15 = pIVar24 + -2;\n              pIVar24 = pIVar24 + -1;\n            } while ((re_node_set *)*pIVar15 == prVar44);\n          }\n          iVar29 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            pwVar19 = pstr->wcs + (int)unaff_s3;\n            wVar33 = *pwVar19;\n            while (wVar33 == 0xffffffff) {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n              pwVar19 = pwVar19 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar29 = (int)unaff_s3 * 4;\n              wVar33 = *pwVar19;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (re_node_set *)((int)&unaff_s7->alloc + iVar29);\n            prVar28 = (re_node_set *)(unaff_s7->alloc - (int)prVar44);\n            pstr->valid_len = (Idx)prVar28;\n            if (prVar28 != (re_node_set *)0x0) {\n              if (0 < (int)prVar28) {\n                pwVar19 = pstr->wcs;\n                iVar29 = 0;\n                do {\n                  *pwVar19 = 0xffffffff;\n                  iVar29 = iVar29 + 1;\n                  pwVar19 = pwVar19 + 1;\n                } while (iVar29 < pstr->valid_len);\n              }\n              (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n              prVar28 = (re_node_set *)pstr->valid_len;\n              prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n              IVar22 = pstr->stop - (int)prVar44;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            prVar28 = (re_node_set *)0x0;\n            pstr->valid_len = 0;\n          }\n          prVar32 = (re_node_set *)pstr->mb_cur_max;\n          uVar16 = pstr->mbs_allocated;\n          pstr->valid_raw_len = (Idx)prVar28;\n        }\n      }" if (parenthesized_expression "(pstr->offsets_needed == '\0')" ( (binary_expression "pstr->offsets_needed == '\0'" (field_expression "pstr->offsets_needed" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar4 = re_string_context_at(pstr,(Idx)((int)&prVar44[-1].elems + 3),eflags);\n        prVar28 = (re_node_set *)((int)unaff_s2 - (int)prVar44);\n        pstr->tip_context = uVar4;\n        if (1 < pstr->mb_cur_max) {\n          (*(code *)PTR_memmove_0003c324)(pstr->wcs,pstr->wcs + (int)prVar44,(int)prVar28 * 4);\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n        }\n        uVar16 = pstr->mbs_allocated;\n        if (uVar16 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44);\n          uVar16 = pstr->mbs_allocated;\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n        }\n        prVar32 = (re_node_set *)pstr->mb_cur_max;\n        prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n        pstr->valid_len = (Idx)prVar28;\n        IVar22 = pstr->stop - (int)prVar44;\n        pstr->valid_raw_len = pstr->valid_raw_len - (int)prVar44;\n      }" { (expression_statement "uVar4 = re_string_context_at(pstr,(Idx)((int)&prVar44[-1].elems + 3),eflags);" (assignment_expression "uVar4 = re_string_context_at(pstr,(Idx)((int)&prVar44[-1].elems + 3),eflags)" identifier = (call_expression "re_string_context_at(pstr,(Idx)((int)&prVar44[-1].elems + 3),eflags)" identifier (argument_list "(pstr,(Idx)((int)&prVar44[-1].elems + 3),eflags)" ( identifier , (call_expression "(Idx)((int)&prVar44[-1].elems + 3)" (parenthesized_expression "(Idx)" ( identifier )) (argument_list "((int)&prVar44[-1].elems + 3)" ( (binary_expression "(int)&prVar44[-1].elems + 3" (cast_expression "(int)&prVar44[-1].elems" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar44[-1].elems" & (field_expression "prVar44[-1].elems" (subscript_expression "prVar44[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))) , identifier )))) ;) (expression_statement "prVar28 = (re_node_set *)((int)unaff_s2 - (int)prVar44);" (assignment_expression "prVar28 = (re_node_set *)((int)unaff_s2 - (int)prVar44)" identifier = (cast_expression "(re_node_set *)((int)unaff_s2 - (int)prVar44)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s2 - (int)prVar44)" ( (binary_expression "(int)unaff_s2 - (int)prVar44" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pstr->tip_context = uVar4;" (assignment_expression "pstr->tip_context = uVar4" (field_expression "pstr->tip_context" identifier -> field_identifier) = identifier) ;) (if_statement "if (1 < pstr->mb_cur_max) {\n          (*(code *)PTR_memmove_0003c324)(pstr->wcs,pstr->wcs + (int)prVar44,(int)prVar28 * 4);\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n        }" if (parenthesized_expression "(1 < pstr->mb_cur_max)" ( (binary_expression "1 < pstr->mb_cur_max" number_literal < (field_expression "pstr->mb_cur_max" identifier -> field_identifier)) )) (compound_statement "{\n          (*(code *)PTR_memmove_0003c324)(pstr->wcs,pstr->wcs + (int)prVar44,(int)prVar28 * 4);\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n        }" { (expression_statement "(*(code *)PTR_memmove_0003c324)(pstr->wcs,pstr->wcs + (int)prVar44,(int)prVar28 * 4);" (call_expression "(*(code *)PTR_memmove_0003c324)(pstr->wcs,pstr->wcs + (int)prVar44,(int)prVar28 * 4)" (parenthesized_expression "(*(code *)PTR_memmove_0003c324)" ( (pointer_expression "*(code *)PTR_memmove_0003c324" * (cast_expression "(code *)PTR_memmove_0003c324" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pstr->wcs,pstr->wcs + (int)prVar44,(int)prVar28 * 4)" ( (field_expression "pstr->wcs" identifier -> field_identifier) , (binary_expression "pstr->wcs + (int)prVar44" (field_expression "pstr->wcs" identifier -> field_identifier) + (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier)) , (binary_expression "(int)prVar28 * 4" (cast_expression "(int)prVar28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) ;) (expression_statement "prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);" (assignment_expression "prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44)" identifier = (cast_expression "(re_node_set *)(pstr->valid_len - (int)prVar44)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pstr->valid_len - (int)prVar44)" ( (binary_expression "pstr->valid_len - (int)prVar44" (field_expression "pstr->valid_len" identifier -> field_identifier) - (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "uVar16 = pstr->mbs_allocated;" (assignment_expression "uVar16 = pstr->mbs_allocated" identifier = (field_expression "pstr->mbs_allocated" identifier -> field_identifier)) ;) (if_statement "if (uVar16 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44);\n          uVar16 = pstr->mbs_allocated;\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n        }" if (parenthesized_expression "(uVar16 != '\0')" ( (binary_expression "uVar16 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          (*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44);\n          uVar16 = pstr->mbs_allocated;\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n        }" { (expression_statement "(*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44);" (call_expression "(*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44)" (parenthesized_expression "(*(code *)PTR_memmove_0003c324)" ( (pointer_expression "*(code *)PTR_memmove_0003c324" * (cast_expression "(code *)PTR_memmove_0003c324" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pstr->mbs,pstr->mbs + (int)prVar44)" ( (field_expression "pstr->mbs" identifier -> field_identifier) , (binary_expression "pstr->mbs + (int)prVar44" (field_expression "pstr->mbs" identifier -> field_identifier) + (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (expression_statement "uVar16 = pstr->mbs_allocated;" (assignment_expression "uVar16 = pstr->mbs_allocated" identifier = (field_expression "pstr->mbs_allocated" identifier -> field_identifier)) ;) (expression_statement "prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);" (assignment_expression "prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44)" identifier = (cast_expression "(re_node_set *)(pstr->valid_len - (int)prVar44)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pstr->valid_len - (int)prVar44)" ( (binary_expression "pstr->valid_len - (int)prVar44" (field_expression "pstr->valid_len" identifier -> field_identifier) - (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "prVar32 = (re_node_set *)pstr->mb_cur_max;" (assignment_expression "prVar32 = (re_node_set *)pstr->mb_cur_max" identifier = (cast_expression "(re_node_set *)pstr->mb_cur_max" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pstr->mb_cur_max" identifier -> field_identifier))) ;) (expression_statement "prVar18 = (re_node_set *)(pstr->len - (int)prVar44);" (assignment_expression "prVar18 = (re_node_set *)(pstr->len - (int)prVar44)" identifier = (cast_expression "(re_node_set *)(pstr->len - (int)prVar44)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pstr->len - (int)prVar44)" ( (binary_expression "pstr->len - (int)prVar44" (field_expression "pstr->len" identifier -> field_identifier) - (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pstr->valid_len = (Idx)prVar28;" (assignment_expression "pstr->valid_len = (Idx)prVar28" (field_expression "pstr->valid_len" identifier -> field_identifier) = (cast_expression "(Idx)prVar28" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "IVar22 = pstr->stop - (int)prVar44;" (assignment_expression "IVar22 = pstr->stop - (int)prVar44" identifier = (binary_expression "pstr->stop - (int)prVar44" (field_expression "pstr->stop" identifier -> field_identifier) - (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pstr->valid_raw_len = pstr->valid_raw_len - (int)prVar44;" (assignment_expression "pstr->valid_raw_len = pstr->valid_raw_len - (int)prVar44" (field_expression "pstr->valid_raw_len" identifier -> field_identifier) = (binary_expression "pstr->valid_raw_len - (int)prVar44" (field_expression "pstr->valid_raw_len" identifier -> field_identifier) - (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n        unaff_s7 = (re_node_set *)pstr->offsets;\n        puVar23 = (uchar *)0x0;\n        prVar28 = unaff_s2;\n        do {\n          unaff_s3 = (re_node_set *)((int)(puVar23 + (int)prVar28) / 2);\n          iVar29 = (&unaff_s7->alloc)[(int)unaff_s3];\n          prVar18 = unaff_s3;\n          if ((iVar29 <= (int)prVar44) &&\n             (puVar23 = (uchar *)((int)&unaff_s3->alloc + 1), prVar18 = prVar28,\n             (int)prVar44 <= iVar29)) goto LAB_0001d460;\n          prVar28 = prVar18;\n        } while ((int)puVar23 < (int)prVar18);\n        if (iVar29 < (int)prVar44) {\n          prVar28 = unaff_s3;\n          unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n        }\n        else {\nLAB_0001d460:\n          prVar28 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n        }\n        uVar4 = re_string_context_at(pstr,(Idx)prVar28,eflags);\n        pstr->tip_context = uVar4;\n        if ((((int)prVar44 < (int)unaff_s2) && (eflags = (int)prVar44 * 4, prVar44 == unaff_s3)) &&\n           ((re_node_set *)(&unaff_s7->alloc)[(int)prVar44] == prVar44)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (pstr->wcs,pstr->wcs + (int)prVar44,((int)unaff_s2 - (int)prVar44) * 4);\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n          (*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44);\n          iVar29 = pstr->valid_len - (int)prVar44;\n          pstr->valid_len = iVar29;\n          pstr->valid_raw_len = pstr->valid_raw_len - (int)prVar44;\n          if (0 < iVar29) {\n            iVar29 = 0;\n            prVar28 = (re_node_set *)((int)prVar44 * -4);\n            piVar8 = pstr->offsets + (int)prVar44;\n            do {\n              iVar29 = iVar29 + 1;\n              piVar8[-(int)prVar44] = *piVar8 - (int)prVar44;\n              piVar8 = piVar8 + 1;\n            } while (iVar29 < pstr->valid_len);\n          }\n          prVar32 = (re_node_set *)pstr->mb_cur_max;\n          uVar16 = pstr->mbs_allocated;\n          prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n          IVar22 = pstr->stop - (int)prVar44;\n        }\n        else {\n          pstr->offsets_needed = '\0';\n          prVar18 = (re_node_set *)(pstr->raw_len - idx);\n          IVar22 = pstr->raw_stop - idx;\n          pstr->len = (Idx)((int)&prVar44->alloc + (int)&prVar18->alloc);\n          pstr->stop = (Idx)(IVar22 + (int)prVar44);\n          if ((0 < (int)unaff_s3) &&\n             (prVar44 == *(re_node_set **)((int)unaff_s7 + (int)unaff_s3 * 4 + -4))) {\n            pIVar24 = &unaff_s7->alloc + (int)unaff_s3;\n            do {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n              if (unaff_s3 == (re_node_set *)0x0) break;\n              pIVar15 = pIVar24 + -2;\n              pIVar24 = pIVar24 + -1;\n            } while ((re_node_set *)*pIVar15 == prVar44);\n          }\n          iVar29 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            pwVar19 = pstr->wcs + (int)unaff_s3;\n            wVar33 = *pwVar19;\n            while (wVar33 == 0xffffffff) {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n              pwVar19 = pwVar19 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar29 = (int)unaff_s3 * 4;\n              wVar33 = *pwVar19;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (re_node_set *)((int)&unaff_s7->alloc + iVar29);\n            prVar28 = (re_node_set *)(unaff_s7->alloc - (int)prVar44);\n            pstr->valid_len = (Idx)prVar28;\n            if (prVar28 != (re_node_set *)0x0) {\n              if (0 < (int)prVar28) {\n                pwVar19 = pstr->wcs;\n                iVar29 = 0;\n                do {\n                  *pwVar19 = 0xffffffff;\n                  iVar29 = iVar29 + 1;\n                  pwVar19 = pwVar19 + 1;\n                } while (iVar29 < pstr->valid_len);\n              }\n              (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n              prVar28 = (re_node_set *)pstr->valid_len;\n              prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n              IVar22 = pstr->stop - (int)prVar44;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            prVar28 = (re_node_set *)0x0;\n            pstr->valid_len = 0;\n          }\n          prVar32 = (re_node_set *)pstr->mb_cur_max;\n          uVar16 = pstr->mbs_allocated;\n          pstr->valid_raw_len = (Idx)prVar28;\n        }\n      }" else (compound_statement "{\n        unaff_s7 = (re_node_set *)pstr->offsets;\n        puVar23 = (uchar *)0x0;\n        prVar28 = unaff_s2;\n        do {\n          unaff_s3 = (re_node_set *)((int)(puVar23 + (int)prVar28) / 2);\n          iVar29 = (&unaff_s7->alloc)[(int)unaff_s3];\n          prVar18 = unaff_s3;\n          if ((iVar29 <= (int)prVar44) &&\n             (puVar23 = (uchar *)((int)&unaff_s3->alloc + 1), prVar18 = prVar28,\n             (int)prVar44 <= iVar29)) goto LAB_0001d460;\n          prVar28 = prVar18;\n        } while ((int)puVar23 < (int)prVar18);\n        if (iVar29 < (int)prVar44) {\n          prVar28 = unaff_s3;\n          unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n        }\n        else {\nLAB_0001d460:\n          prVar28 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n        }\n        uVar4 = re_string_context_at(pstr,(Idx)prVar28,eflags);\n        pstr->tip_context = uVar4;\n        if ((((int)prVar44 < (int)unaff_s2) && (eflags = (int)prVar44 * 4, prVar44 == unaff_s3)) &&\n           ((re_node_set *)(&unaff_s7->alloc)[(int)prVar44] == prVar44)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (pstr->wcs,pstr->wcs + (int)prVar44,((int)unaff_s2 - (int)prVar44) * 4);\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n          (*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44);\n          iVar29 = pstr->valid_len - (int)prVar44;\n          pstr->valid_len = iVar29;\n          pstr->valid_raw_len = pstr->valid_raw_len - (int)prVar44;\n          if (0 < iVar29) {\n            iVar29 = 0;\n            prVar28 = (re_node_set *)((int)prVar44 * -4);\n            piVar8 = pstr->offsets + (int)prVar44;\n            do {\n              iVar29 = iVar29 + 1;\n              piVar8[-(int)prVar44] = *piVar8 - (int)prVar44;\n              piVar8 = piVar8 + 1;\n            } while (iVar29 < pstr->valid_len);\n          }\n          prVar32 = (re_node_set *)pstr->mb_cur_max;\n          uVar16 = pstr->mbs_allocated;\n          prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n          IVar22 = pstr->stop - (int)prVar44;\n        }\n        else {\n          pstr->offsets_needed = '\0';\n          prVar18 = (re_node_set *)(pstr->raw_len - idx);\n          IVar22 = pstr->raw_stop - idx;\n          pstr->len = (Idx)((int)&prVar44->alloc + (int)&prVar18->alloc);\n          pstr->stop = (Idx)(IVar22 + (int)prVar44);\n          if ((0 < (int)unaff_s3) &&\n             (prVar44 == *(re_node_set **)((int)unaff_s7 + (int)unaff_s3 * 4 + -4))) {\n            pIVar24 = &unaff_s7->alloc + (int)unaff_s3;\n            do {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n              if (unaff_s3 == (re_node_set *)0x0) break;\n              pIVar15 = pIVar24 + -2;\n              pIVar24 = pIVar24 + -1;\n            } while ((re_node_set *)*pIVar15 == prVar44);\n          }\n          iVar29 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            pwVar19 = pstr->wcs + (int)unaff_s3;\n            wVar33 = *pwVar19;\n            while (wVar33 == 0xffffffff) {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n              pwVar19 = pwVar19 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar29 = (int)unaff_s3 * 4;\n              wVar33 = *pwVar19;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (re_node_set *)((int)&unaff_s7->alloc + iVar29);\n            prVar28 = (re_node_set *)(unaff_s7->alloc - (int)prVar44);\n            pstr->valid_len = (Idx)prVar28;\n            if (prVar28 != (re_node_set *)0x0) {\n              if (0 < (int)prVar28) {\n                pwVar19 = pstr->wcs;\n                iVar29 = 0;\n                do {\n                  *pwVar19 = 0xffffffff;\n                  iVar29 = iVar29 + 1;\n                  pwVar19 = pwVar19 + 1;\n                } while (iVar29 < pstr->valid_len);\n              }\n              (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n              prVar28 = (re_node_set *)pstr->valid_len;\n              prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n              IVar22 = pstr->stop - (int)prVar44;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            prVar28 = (re_node_set *)0x0;\n            pstr->valid_len = 0;\n          }\n          prVar32 = (re_node_set *)pstr->mb_cur_max;\n          uVar16 = pstr->mbs_allocated;\n          pstr->valid_raw_len = (Idx)prVar28;\n        }\n      }" { (expression_statement "unaff_s7 = (re_node_set *)pstr->offsets;" (assignment_expression "unaff_s7 = (re_node_set *)pstr->offsets" identifier = (cast_expression "(re_node_set *)pstr->offsets" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pstr->offsets" identifier -> field_identifier))) ;) (expression_statement "puVar23 = (uchar *)0x0;" (assignment_expression "puVar23 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "prVar28 = unaff_s2;" (assignment_expression "prVar28 = unaff_s2" identifier = identifier) ;) (do_statement "do {\n          unaff_s3 = (re_node_set *)((int)(puVar23 + (int)prVar28) / 2);\n          iVar29 = (&unaff_s7->alloc)[(int)unaff_s3];\n          prVar18 = unaff_s3;\n          if ((iVar29 <= (int)prVar44) &&\n             (puVar23 = (uchar *)((int)&unaff_s3->alloc + 1), prVar18 = prVar28,\n             (int)prVar44 <= iVar29)) goto LAB_0001d460;\n          prVar28 = prVar18;\n        } while ((int)puVar23 < (int)prVar18);" do (compound_statement "{\n          unaff_s3 = (re_node_set *)((int)(puVar23 + (int)prVar28) / 2);\n          iVar29 = (&unaff_s7->alloc)[(int)unaff_s3];\n          prVar18 = unaff_s3;\n          if ((iVar29 <= (int)prVar44) &&\n             (puVar23 = (uchar *)((int)&unaff_s3->alloc + 1), prVar18 = prVar28,\n             (int)prVar44 <= iVar29)) goto LAB_0001d460;\n          prVar28 = prVar18;\n        }" { (expression_statement "unaff_s3 = (re_node_set *)((int)(puVar23 + (int)prVar28) / 2);" (assignment_expression "unaff_s3 = (re_node_set *)((int)(puVar23 + (int)prVar28) / 2)" identifier = (cast_expression "(re_node_set *)((int)(puVar23 + (int)prVar28) / 2)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar23 + (int)prVar28) / 2)" ( (binary_expression "(int)(puVar23 + (int)prVar28) / 2" (cast_expression "(int)(puVar23 + (int)prVar28)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar23 + (int)prVar28)" ( (binary_expression "puVar23 + (int)prVar28" identifier + (cast_expression "(int)prVar28" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / number_literal) )))) ;) (expression_statement "iVar29 = (&unaff_s7->alloc)[(int)unaff_s3];" (assignment_expression "iVar29 = (&unaff_s7->alloc)[(int)unaff_s3]" identifier = (subscript_expression "(&unaff_s7->alloc)[(int)unaff_s3]" (parenthesized_expression "(&unaff_s7->alloc)" ( (pointer_expression "&unaff_s7->alloc" & (field_expression "unaff_s7->alloc" identifier -> field_identifier)) )) [ (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) (expression_statement "prVar18 = unaff_s3;" (assignment_expression "prVar18 = unaff_s3" identifier = identifier) ;) (if_statement "if ((iVar29 <= (int)prVar44) &&\n             (puVar23 = (uchar *)((int)&unaff_s3->alloc + 1), prVar18 = prVar28,\n             (int)prVar44 <= iVar29)) goto LAB_0001d460;" if (parenthesized_expression "((iVar29 <= (int)prVar44) &&\n             (puVar23 = (uchar *)((int)&unaff_s3->alloc + 1), prVar18 = prVar28,\n             (int)prVar44 <= iVar29))" ( (binary_expression "(iVar29 <= (int)prVar44) &&\n             (puVar23 = (uchar *)((int)&unaff_s3->alloc + 1), prVar18 = prVar28,\n             (int)prVar44 <= iVar29)" (parenthesized_expression "(iVar29 <= (int)prVar44)" ( (binary_expression "iVar29 <= (int)prVar44" identifier <= (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(puVar23 = (uchar *)((int)&unaff_s3->alloc + 1), prVar18 = prVar28,\n             (int)prVar44 <= iVar29)" ( (comma_expression "puVar23 = (uchar *)((int)&unaff_s3->alloc + 1), prVar18 = prVar28,\n             (int)prVar44 <= iVar29" (assignment_expression "puVar23 = (uchar *)((int)&unaff_s3->alloc + 1)" identifier = (cast_expression "(uchar *)((int)&unaff_s3->alloc + 1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s3->alloc + 1)" ( (binary_expression "(int)&unaff_s3->alloc + 1" (cast_expression "(int)&unaff_s3->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s3->alloc" & (field_expression "unaff_s3->alloc" identifier -> field_identifier))) + number_literal) )))) , (comma_expression "prVar18 = prVar28,\n             (int)prVar44 <= iVar29" (assignment_expression "prVar18 = prVar28" identifier = identifier) , (binary_expression "(int)prVar44 <= iVar29" (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier))) ))) )) (goto_statement "goto LAB_0001d460;" goto statement_identifier ;)) (expression_statement "prVar28 = prVar18;" (assignment_expression "prVar28 = prVar18" identifier = identifier) ;) }) while (parenthesized_expression "((int)puVar23 < (int)prVar18)" ( (binary_expression "(int)puVar23 < (int)prVar18" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)prVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (if_statement "if (iVar29 < (int)prVar44) {\n          prVar28 = unaff_s3;\n          unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n        }\n        else {\nLAB_0001d460:\n          prVar28 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n        }" if (parenthesized_expression "(iVar29 < (int)prVar44)" ( (binary_expression "iVar29 < (int)prVar44" identifier < (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          prVar28 = unaff_s3;\n          unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n        }" { (expression_statement "prVar28 = unaff_s3;" (assignment_expression "prVar28 = unaff_s3" identifier = identifier) ;) (expression_statement "unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);" (assignment_expression "unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1)" identifier = (cast_expression "(re_node_set *)((int)&unaff_s3->alloc + 1)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s3->alloc + 1)" ( (binary_expression "(int)&unaff_s3->alloc + 1" (cast_expression "(int)&unaff_s3->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s3->alloc" & (field_expression "unaff_s3->alloc" identifier -> field_identifier))) + number_literal) )))) ;) }) (else_clause "else {\nLAB_0001d460:\n          prVar28 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n        }" else (compound_statement "{\nLAB_0001d460:\n          prVar28 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n        }" { (labeled_statement "LAB_0001d460:\n          prVar28 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);" statement_identifier : (expression_statement "prVar28 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);" (assignment_expression "prVar28 = (re_node_set *)((int)&unaff_s3[-1].elems + 3)" identifier = (cast_expression "(re_node_set *)((int)&unaff_s3[-1].elems + 3)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s3[-1].elems + 3)" ( (binary_expression "(int)&unaff_s3[-1].elems + 3" (cast_expression "(int)&unaff_s3[-1].elems" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s3[-1].elems" & (field_expression "unaff_s3[-1].elems" (subscript_expression "unaff_s3[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;)) }))) (expression_statement "uVar4 = re_string_context_at(pstr,(Idx)prVar28,eflags);" (assignment_expression "uVar4 = re_string_context_at(pstr,(Idx)prVar28,eflags)" identifier = (call_expression "re_string_context_at(pstr,(Idx)prVar28,eflags)" identifier (argument_list "(pstr,(Idx)prVar28,eflags)" ( identifier , (cast_expression "(Idx)prVar28" ( (type_descriptor "Idx" type_identifier) ) identifier) , identifier )))) ;) (expression_statement "pstr->tip_context = uVar4;" (assignment_expression "pstr->tip_context = uVar4" (field_expression "pstr->tip_context" identifier -> field_identifier) = identifier) ;) (if_statement "if ((((int)prVar44 < (int)unaff_s2) && (eflags = (int)prVar44 * 4, prVar44 == unaff_s3)) &&\n           ((re_node_set *)(&unaff_s7->alloc)[(int)prVar44] == prVar44)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (pstr->wcs,pstr->wcs + (int)prVar44,((int)unaff_s2 - (int)prVar44) * 4);\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n          (*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44);\n          iVar29 = pstr->valid_len - (int)prVar44;\n          pstr->valid_len = iVar29;\n          pstr->valid_raw_len = pstr->valid_raw_len - (int)prVar44;\n          if (0 < iVar29) {\n            iVar29 = 0;\n            prVar28 = (re_node_set *)((int)prVar44 * -4);\n            piVar8 = pstr->offsets + (int)prVar44;\n            do {\n              iVar29 = iVar29 + 1;\n              piVar8[-(int)prVar44] = *piVar8 - (int)prVar44;\n              piVar8 = piVar8 + 1;\n            } while (iVar29 < pstr->valid_len);\n          }\n          prVar32 = (re_node_set *)pstr->mb_cur_max;\n          uVar16 = pstr->mbs_allocated;\n          prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n          IVar22 = pstr->stop - (int)prVar44;\n        }\n        else {\n          pstr->offsets_needed = '\0';\n          prVar18 = (re_node_set *)(pstr->raw_len - idx);\n          IVar22 = pstr->raw_stop - idx;\n          pstr->len = (Idx)((int)&prVar44->alloc + (int)&prVar18->alloc);\n          pstr->stop = (Idx)(IVar22 + (int)prVar44);\n          if ((0 < (int)unaff_s3) &&\n             (prVar44 == *(re_node_set **)((int)unaff_s7 + (int)unaff_s3 * 4 + -4))) {\n            pIVar24 = &unaff_s7->alloc + (int)unaff_s3;\n            do {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n              if (unaff_s3 == (re_node_set *)0x0) break;\n              pIVar15 = pIVar24 + -2;\n              pIVar24 = pIVar24 + -1;\n            } while ((re_node_set *)*pIVar15 == prVar44);\n          }\n          iVar29 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            pwVar19 = pstr->wcs + (int)unaff_s3;\n            wVar33 = *pwVar19;\n            while (wVar33 == 0xffffffff) {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n              pwVar19 = pwVar19 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar29 = (int)unaff_s3 * 4;\n              wVar33 = *pwVar19;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (re_node_set *)((int)&unaff_s7->alloc + iVar29);\n            prVar28 = (re_node_set *)(unaff_s7->alloc - (int)prVar44);\n            pstr->valid_len = (Idx)prVar28;\n            if (prVar28 != (re_node_set *)0x0) {\n              if (0 < (int)prVar28) {\n                pwVar19 = pstr->wcs;\n                iVar29 = 0;\n                do {\n                  *pwVar19 = 0xffffffff;\n                  iVar29 = iVar29 + 1;\n                  pwVar19 = pwVar19 + 1;\n                } while (iVar29 < pstr->valid_len);\n              }\n              (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n              prVar28 = (re_node_set *)pstr->valid_len;\n              prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n              IVar22 = pstr->stop - (int)prVar44;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            prVar28 = (re_node_set *)0x0;\n            pstr->valid_len = 0;\n          }\n          prVar32 = (re_node_set *)pstr->mb_cur_max;\n          uVar16 = pstr->mbs_allocated;\n          pstr->valid_raw_len = (Idx)prVar28;\n        }" if (parenthesized_expression "((((int)prVar44 < (int)unaff_s2) && (eflags = (int)prVar44 * 4, prVar44 == unaff_s3)) &&\n           ((re_node_set *)(&unaff_s7->alloc)[(int)prVar44] == prVar44))" ( (binary_expression "(((int)prVar44 < (int)unaff_s2) && (eflags = (int)prVar44 * 4, prVar44 == unaff_s3)) &&\n           ((re_node_set *)(&unaff_s7->alloc)[(int)prVar44] == prVar44)" (parenthesized_expression "(((int)prVar44 < (int)unaff_s2) && (eflags = (int)prVar44 * 4, prVar44 == unaff_s3))" ( (binary_expression "((int)prVar44 < (int)unaff_s2) && (eflags = (int)prVar44 * 4, prVar44 == unaff_s3)" (parenthesized_expression "((int)prVar44 < (int)unaff_s2)" ( (binary_expression "(int)prVar44 < (int)unaff_s2" (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(eflags = (int)prVar44 * 4, prVar44 == unaff_s3)" ( (comma_expression "eflags = (int)prVar44 * 4, prVar44 == unaff_s3" (assignment_expression "eflags = (int)prVar44 * 4" identifier = (binary_expression "(int)prVar44 * 4" (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) , (binary_expression "prVar44 == unaff_s3" identifier == identifier)) ))) )) && (parenthesized_expression "((re_node_set *)(&unaff_s7->alloc)[(int)prVar44] == prVar44)" ( (binary_expression "(re_node_set *)(&unaff_s7->alloc)[(int)prVar44] == prVar44" (cast_expression "(re_node_set *)(&unaff_s7->alloc)[(int)prVar44]" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(&unaff_s7->alloc)[(int)prVar44]" (parenthesized_expression "(&unaff_s7->alloc)" ( (pointer_expression "&unaff_s7->alloc" & (field_expression "unaff_s7->alloc" identifier -> field_identifier)) )) [ (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier) ])) == identifier) ))) )) (compound_statement "{\n          (*(code *)PTR_memmove_0003c324)\n                    (pstr->wcs,pstr->wcs + (int)prVar44,((int)unaff_s2 - (int)prVar44) * 4);\n          prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);\n          (*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44);\n          iVar29 = pstr->valid_len - (int)prVar44;\n          pstr->valid_len = iVar29;\n          pstr->valid_raw_len = pstr->valid_raw_len - (int)prVar44;\n          if (0 < iVar29) {\n            iVar29 = 0;\n            prVar28 = (re_node_set *)((int)prVar44 * -4);\n            piVar8 = pstr->offsets + (int)prVar44;\n            do {\n              iVar29 = iVar29 + 1;\n              piVar8[-(int)prVar44] = *piVar8 - (int)prVar44;\n              piVar8 = piVar8 + 1;\n            } while (iVar29 < pstr->valid_len);\n          }\n          prVar32 = (re_node_set *)pstr->mb_cur_max;\n          uVar16 = pstr->mbs_allocated;\n          prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n          IVar22 = pstr->stop - (int)prVar44;\n        }" { (expression_statement "(*(code *)PTR_memmove_0003c324)\n                    (pstr->wcs,pstr->wcs + (int)prVar44,((int)unaff_s2 - (int)prVar44) * 4);" (call_expression "(*(code *)PTR_memmove_0003c324)\n                    (pstr->wcs,pstr->wcs + (int)prVar44,((int)unaff_s2 - (int)prVar44) * 4)" (parenthesized_expression "(*(code *)PTR_memmove_0003c324)" ( (pointer_expression "*(code *)PTR_memmove_0003c324" * (cast_expression "(code *)PTR_memmove_0003c324" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pstr->wcs,pstr->wcs + (int)prVar44,((int)unaff_s2 - (int)prVar44) * 4)" ( (field_expression "pstr->wcs" identifier -> field_identifier) , (binary_expression "pstr->wcs + (int)prVar44" (field_expression "pstr->wcs" identifier -> field_identifier) + (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier)) , (binary_expression "((int)unaff_s2 - (int)prVar44) * 4" (parenthesized_expression "((int)unaff_s2 - (int)prVar44)" ( (binary_expression "(int)unaff_s2 - (int)prVar44" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal) ))) ;) (expression_statement "prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44);" (assignment_expression "prVar28 = (re_node_set *)(pstr->valid_len - (int)prVar44)" identifier = (cast_expression "(re_node_set *)(pstr->valid_len - (int)prVar44)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pstr->valid_len - (int)prVar44)" ( (binary_expression "pstr->valid_len - (int)prVar44" (field_expression "pstr->valid_len" identifier -> field_identifier) - (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "(*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44);" (call_expression "(*(code *)PTR_memmove_0003c324)(pstr->mbs,pstr->mbs + (int)prVar44)" (parenthesized_expression "(*(code *)PTR_memmove_0003c324)" ( (pointer_expression "*(code *)PTR_memmove_0003c324" * (cast_expression "(code *)PTR_memmove_0003c324" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pstr->mbs,pstr->mbs + (int)prVar44)" ( (field_expression "pstr->mbs" identifier -> field_identifier) , (binary_expression "pstr->mbs + (int)prVar44" (field_expression "pstr->mbs" identifier -> field_identifier) + (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (expression_statement "iVar29 = pstr->valid_len - (int)prVar44;" (assignment_expression "iVar29 = pstr->valid_len - (int)prVar44" identifier = (binary_expression "pstr->valid_len - (int)prVar44" (field_expression "pstr->valid_len" identifier -> field_identifier) - (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pstr->valid_len = iVar29;" (assignment_expression "pstr->valid_len = iVar29" (field_expression "pstr->valid_len" identifier -> field_identifier) = identifier) ;) (expression_statement "pstr->valid_raw_len = pstr->valid_raw_len - (int)prVar44;" (assignment_expression "pstr->valid_raw_len = pstr->valid_raw_len - (int)prVar44" (field_expression "pstr->valid_raw_len" identifier -> field_identifier) = (binary_expression "pstr->valid_raw_len - (int)prVar44" (field_expression "pstr->valid_raw_len" identifier -> field_identifier) - (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (0 < iVar29) {\n            iVar29 = 0;\n            prVar28 = (re_node_set *)((int)prVar44 * -4);\n            piVar8 = pstr->offsets + (int)prVar44;\n            do {\n              iVar29 = iVar29 + 1;\n              piVar8[-(int)prVar44] = *piVar8 - (int)prVar44;\n              piVar8 = piVar8 + 1;\n            } while (iVar29 < pstr->valid_len);\n          }" if (parenthesized_expression "(0 < iVar29)" ( (binary_expression "0 < iVar29" number_literal < identifier) )) (compound_statement "{\n            iVar29 = 0;\n            prVar28 = (re_node_set *)((int)prVar44 * -4);\n            piVar8 = pstr->offsets + (int)prVar44;\n            do {\n              iVar29 = iVar29 + 1;\n              piVar8[-(int)prVar44] = *piVar8 - (int)prVar44;\n              piVar8 = piVar8 + 1;\n            } while (iVar29 < pstr->valid_len);\n          }" { (expression_statement "iVar29 = 0;" (assignment_expression "iVar29 = 0" identifier = number_literal) ;) (expression_statement "prVar28 = (re_node_set *)((int)prVar44 * -4);" (assignment_expression "prVar28 = (re_node_set *)((int)prVar44 * -4)" identifier = (cast_expression "(re_node_set *)((int)prVar44 * -4)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)prVar44 * -4)" ( (binary_expression "(int)prVar44 * -4" (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "piVar8 = pstr->offsets + (int)prVar44;" (assignment_expression "piVar8 = pstr->offsets + (int)prVar44" identifier = (binary_expression "pstr->offsets + (int)prVar44" (field_expression "pstr->offsets" identifier -> field_identifier) + (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n              iVar29 = iVar29 + 1;\n              piVar8[-(int)prVar44] = *piVar8 - (int)prVar44;\n              piVar8 = piVar8 + 1;\n            } while (iVar29 < pstr->valid_len);" do (compound_statement "{\n              iVar29 = iVar29 + 1;\n              piVar8[-(int)prVar44] = *piVar8 - (int)prVar44;\n              piVar8 = piVar8 + 1;\n            }" { (expression_statement "iVar29 = iVar29 + 1;" (assignment_expression "iVar29 = iVar29 + 1" identifier = (binary_expression "iVar29 + 1" identifier + number_literal)) ;) (expression_statement "piVar8[-(int)prVar44] = *piVar8 - (int)prVar44;" (assignment_expression "piVar8[-(int)prVar44] = *piVar8 - (int)prVar44" (subscript_expression "piVar8[-(int)prVar44]" identifier [ (unary_expression "-(int)prVar44" - (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier)) ]) = (binary_expression "*piVar8 - (int)prVar44" (pointer_expression "*piVar8" * identifier) - (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" identifier = (binary_expression "piVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar29 < pstr->valid_len)" ( (binary_expression "iVar29 < pstr->valid_len" identifier < (field_expression "pstr->valid_len" identifier -> field_identifier)) )) ;) })) (expression_statement "prVar32 = (re_node_set *)pstr->mb_cur_max;" (assignment_expression "prVar32 = (re_node_set *)pstr->mb_cur_max" identifier = (cast_expression "(re_node_set *)pstr->mb_cur_max" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pstr->mb_cur_max" identifier -> field_identifier))) ;) (expression_statement "uVar16 = pstr->mbs_allocated;" (assignment_expression "uVar16 = pstr->mbs_allocated" identifier = (field_expression "pstr->mbs_allocated" identifier -> field_identifier)) ;) (expression_statement "prVar18 = (re_node_set *)(pstr->len - (int)prVar44);" (assignment_expression "prVar18 = (re_node_set *)(pstr->len - (int)prVar44)" identifier = (cast_expression "(re_node_set *)(pstr->len - (int)prVar44)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pstr->len - (int)prVar44)" ( (binary_expression "pstr->len - (int)prVar44" (field_expression "pstr->len" identifier -> field_identifier) - (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "IVar22 = pstr->stop - (int)prVar44;" (assignment_expression "IVar22 = pstr->stop - (int)prVar44" identifier = (binary_expression "pstr->stop - (int)prVar44" (field_expression "pstr->stop" identifier -> field_identifier) - (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n          pstr->offsets_needed = '\0';\n          prVar18 = (re_node_set *)(pstr->raw_len - idx);\n          IVar22 = pstr->raw_stop - idx;\n          pstr->len = (Idx)((int)&prVar44->alloc + (int)&prVar18->alloc);\n          pstr->stop = (Idx)(IVar22 + (int)prVar44);\n          if ((0 < (int)unaff_s3) &&\n             (prVar44 == *(re_node_set **)((int)unaff_s7 + (int)unaff_s3 * 4 + -4))) {\n            pIVar24 = &unaff_s7->alloc + (int)unaff_s3;\n            do {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n              if (unaff_s3 == (re_node_set *)0x0) break;\n              pIVar15 = pIVar24 + -2;\n              pIVar24 = pIVar24 + -1;\n            } while ((re_node_set *)*pIVar15 == prVar44);\n          }\n          iVar29 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            pwVar19 = pstr->wcs + (int)unaff_s3;\n            wVar33 = *pwVar19;\n            while (wVar33 == 0xffffffff) {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n              pwVar19 = pwVar19 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar29 = (int)unaff_s3 * 4;\n              wVar33 = *pwVar19;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (re_node_set *)((int)&unaff_s7->alloc + iVar29);\n            prVar28 = (re_node_set *)(unaff_s7->alloc - (int)prVar44);\n            pstr->valid_len = (Idx)prVar28;\n            if (prVar28 != (re_node_set *)0x0) {\n              if (0 < (int)prVar28) {\n                pwVar19 = pstr->wcs;\n                iVar29 = 0;\n                do {\n                  *pwVar19 = 0xffffffff;\n                  iVar29 = iVar29 + 1;\n                  pwVar19 = pwVar19 + 1;\n                } while (iVar29 < pstr->valid_len);\n              }\n              (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n              prVar28 = (re_node_set *)pstr->valid_len;\n              prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n              IVar22 = pstr->stop - (int)prVar44;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            prVar28 = (re_node_set *)0x0;\n            pstr->valid_len = 0;\n          }\n          prVar32 = (re_node_set *)pstr->mb_cur_max;\n          uVar16 = pstr->mbs_allocated;\n          pstr->valid_raw_len = (Idx)prVar28;\n        }" else (compound_statement "{\n          pstr->offsets_needed = '\0';\n          prVar18 = (re_node_set *)(pstr->raw_len - idx);\n          IVar22 = pstr->raw_stop - idx;\n          pstr->len = (Idx)((int)&prVar44->alloc + (int)&prVar18->alloc);\n          pstr->stop = (Idx)(IVar22 + (int)prVar44);\n          if ((0 < (int)unaff_s3) &&\n             (prVar44 == *(re_node_set **)((int)unaff_s7 + (int)unaff_s3 * 4 + -4))) {\n            pIVar24 = &unaff_s7->alloc + (int)unaff_s3;\n            do {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n              if (unaff_s3 == (re_node_set *)0x0) break;\n              pIVar15 = pIVar24 + -2;\n              pIVar24 = pIVar24 + -1;\n            } while ((re_node_set *)*pIVar15 == prVar44);\n          }\n          iVar29 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            pwVar19 = pstr->wcs + (int)unaff_s3;\n            wVar33 = *pwVar19;\n            while (wVar33 == 0xffffffff) {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n              pwVar19 = pwVar19 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar29 = (int)unaff_s3 * 4;\n              wVar33 = *pwVar19;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (re_node_set *)((int)&unaff_s7->alloc + iVar29);\n            prVar28 = (re_node_set *)(unaff_s7->alloc - (int)prVar44);\n            pstr->valid_len = (Idx)prVar28;\n            if (prVar28 != (re_node_set *)0x0) {\n              if (0 < (int)prVar28) {\n                pwVar19 = pstr->wcs;\n                iVar29 = 0;\n                do {\n                  *pwVar19 = 0xffffffff;\n                  iVar29 = iVar29 + 1;\n                  pwVar19 = pwVar19 + 1;\n                } while (iVar29 < pstr->valid_len);\n              }\n              (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n              prVar28 = (re_node_set *)pstr->valid_len;\n              prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n              IVar22 = pstr->stop - (int)prVar44;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            prVar28 = (re_node_set *)0x0;\n            pstr->valid_len = 0;\n          }\n          prVar32 = (re_node_set *)pstr->mb_cur_max;\n          uVar16 = pstr->mbs_allocated;\n          pstr->valid_raw_len = (Idx)prVar28;\n        }" { (expression_statement "pstr->offsets_needed = '\0';" (assignment_expression "pstr->offsets_needed = '\0'" (field_expression "pstr->offsets_needed" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "prVar18 = (re_node_set *)(pstr->raw_len - idx);" (assignment_expression "prVar18 = (re_node_set *)(pstr->raw_len - idx)" identifier = (cast_expression "(re_node_set *)(pstr->raw_len - idx)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pstr->raw_len - idx)" ( (binary_expression "pstr->raw_len - idx" (field_expression "pstr->raw_len" identifier -> field_identifier) - identifier) )))) ;) (expression_statement "IVar22 = pstr->raw_stop - idx;" (assignment_expression "IVar22 = pstr->raw_stop - idx" identifier = (binary_expression "pstr->raw_stop - idx" (field_expression "pstr->raw_stop" identifier -> field_identifier) - identifier)) ;) (expression_statement "pstr->len = (Idx)((int)&prVar44->alloc + (int)&prVar18->alloc);" (assignment_expression "pstr->len = (Idx)((int)&prVar44->alloc + (int)&prVar18->alloc)" (field_expression "pstr->len" identifier -> field_identifier) = (call_expression "(Idx)((int)&prVar44->alloc + (int)&prVar18->alloc)" (parenthesized_expression "(Idx)" ( identifier )) (argument_list "((int)&prVar44->alloc + (int)&prVar18->alloc)" ( (binary_expression "(int)&prVar44->alloc + (int)&prVar18->alloc" (cast_expression "(int)&prVar44->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar44->alloc" & (field_expression "prVar44->alloc" identifier -> field_identifier))) + (cast_expression "(int)&prVar18->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar18->alloc" & (field_expression "prVar18->alloc" identifier -> field_identifier)))) )))) ;) (expression_statement "pstr->stop = (Idx)(IVar22 + (int)prVar44);" (assignment_expression "pstr->stop = (Idx)(IVar22 + (int)prVar44)" (field_expression "pstr->stop" identifier -> field_identifier) = (call_expression "(Idx)(IVar22 + (int)prVar44)" (parenthesized_expression "(Idx)" ( identifier )) (argument_list "(IVar22 + (int)prVar44)" ( (binary_expression "IVar22 + (int)prVar44" identifier + (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if ((0 < (int)unaff_s3) &&\n             (prVar44 == *(re_node_set **)((int)unaff_s7 + (int)unaff_s3 * 4 + -4))) {\n            pIVar24 = &unaff_s7->alloc + (int)unaff_s3;\n            do {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n              if (unaff_s3 == (re_node_set *)0x0) break;\n              pIVar15 = pIVar24 + -2;\n              pIVar24 = pIVar24 + -1;\n            } while ((re_node_set *)*pIVar15 == prVar44);\n          }" if (parenthesized_expression "((0 < (int)unaff_s3) &&\n             (prVar44 == *(re_node_set **)((int)unaff_s7 + (int)unaff_s3 * 4 + -4)))" ( (binary_expression "(0 < (int)unaff_s3) &&\n             (prVar44 == *(re_node_set **)((int)unaff_s7 + (int)unaff_s3 * 4 + -4))" (parenthesized_expression "(0 < (int)unaff_s3)" ( (binary_expression "0 < (int)unaff_s3" number_literal < (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(prVar44 == *(re_node_set **)((int)unaff_s7 + (int)unaff_s3 * 4 + -4))" ( (binary_expression "prVar44 == *(re_node_set **)((int)unaff_s7 + (int)unaff_s3 * 4 + -4)" identifier == (pointer_expression "*(re_node_set **)((int)unaff_s7 + (int)unaff_s3 * 4 + -4)" * (cast_expression "(re_node_set **)((int)unaff_s7 + (int)unaff_s3 * 4 + -4)" ( (type_descriptor "re_node_set **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)unaff_s7 + (int)unaff_s3 * 4 + -4)" ( (binary_expression "(int)unaff_s7 + (int)unaff_s3 * 4 + -4" (binary_expression "(int)unaff_s7 + (int)unaff_s3 * 4" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)unaff_s3 * 4" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) ))))) ))) )) (compound_statement "{\n            pIVar24 = &unaff_s7->alloc + (int)unaff_s3;\n            do {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n              if (unaff_s3 == (re_node_set *)0x0) break;\n              pIVar15 = pIVar24 + -2;\n              pIVar24 = pIVar24 + -1;\n            } while ((re_node_set *)*pIVar15 == prVar44);\n          }" { (expression_statement "pIVar24 = &unaff_s7->alloc + (int)unaff_s3;" (assignment_expression "pIVar24 = &unaff_s7->alloc + (int)unaff_s3" identifier = (binary_expression "&unaff_s7->alloc + (int)unaff_s3" (pointer_expression "&unaff_s7->alloc" & (field_expression "unaff_s7->alloc" identifier -> field_identifier)) + (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n              if (unaff_s3 == (re_node_set *)0x0) break;\n              pIVar15 = pIVar24 + -2;\n              pIVar24 = pIVar24 + -1;\n            } while ((re_node_set *)*pIVar15 == prVar44);" do (compound_statement "{\n              unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n              if (unaff_s3 == (re_node_set *)0x0) break;\n              pIVar15 = pIVar24 + -2;\n              pIVar24 = pIVar24 + -1;\n            }" { (expression_statement "unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);" (assignment_expression "unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3)" identifier = (cast_expression "(re_node_set *)((int)&unaff_s3[-1].elems + 3)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s3[-1].elems + 3)" ( (binary_expression "(int)&unaff_s3[-1].elems + 3" (cast_expression "(int)&unaff_s3[-1].elems" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s3[-1].elems" & (field_expression "unaff_s3[-1].elems" (subscript_expression "unaff_s3[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (unaff_s3 == (re_node_set *)0x0) break;" if (parenthesized_expression "(unaff_s3 == (re_node_set *)0x0)" ( (binary_expression "unaff_s3 == (re_node_set *)0x0" identifier == (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pIVar15 = pIVar24 + -2;" (assignment_expression "pIVar15 = pIVar24 + -2" identifier = (binary_expression "pIVar24 + -2" identifier + number_literal)) ;) (expression_statement "pIVar24 = pIVar24 + -1;" (assignment_expression "pIVar24 = pIVar24 + -1" identifier = (binary_expression "pIVar24 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "((re_node_set *)*pIVar15 == prVar44)" ( (binary_expression "(re_node_set *)*pIVar15 == prVar44" (cast_expression "(re_node_set *)*pIVar15" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pIVar15" * identifier)) == identifier) )) ;) })) (expression_statement "iVar29 = (int)unaff_s3 * 4;" (assignment_expression "iVar29 = (int)unaff_s3 * 4" identifier = (binary_expression "(int)unaff_s3 * 4" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if ((int)unaff_s3 < (int)unaff_s2) {\n            pwVar19 = pstr->wcs + (int)unaff_s3;\n            wVar33 = *pwVar19;\n            while (wVar33 == 0xffffffff) {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n              pwVar19 = pwVar19 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar29 = (int)unaff_s3 * 4;\n              wVar33 = *pwVar19;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (re_node_set *)((int)&unaff_s7->alloc + iVar29);\n            prVar28 = (re_node_set *)(unaff_s7->alloc - (int)prVar44);\n            pstr->valid_len = (Idx)prVar28;\n            if (prVar28 != (re_node_set *)0x0) {\n              if (0 < (int)prVar28) {\n                pwVar19 = pstr->wcs;\n                iVar29 = 0;\n                do {\n                  *pwVar19 = 0xffffffff;\n                  iVar29 = iVar29 + 1;\n                  pwVar19 = pwVar19 + 1;\n                } while (iVar29 < pstr->valid_len);\n              }\n              (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n              prVar28 = (re_node_set *)pstr->valid_len;\n              prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n              IVar22 = pstr->stop - (int)prVar44;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            prVar28 = (re_node_set *)0x0;\n            pstr->valid_len = 0;\n          }" if (parenthesized_expression "((int)unaff_s3 < (int)unaff_s2)" ( (binary_expression "(int)unaff_s3 < (int)unaff_s2" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            pwVar19 = pstr->wcs + (int)unaff_s3;\n            wVar33 = *pwVar19;\n            while (wVar33 == 0xffffffff) {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n              pwVar19 = pwVar19 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar29 = (int)unaff_s3 * 4;\n              wVar33 = *pwVar19;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (re_node_set *)((int)&unaff_s7->alloc + iVar29);\n            prVar28 = (re_node_set *)(unaff_s7->alloc - (int)prVar44);\n            pstr->valid_len = (Idx)prVar28;\n            if (prVar28 != (re_node_set *)0x0) {\n              if (0 < (int)prVar28) {\n                pwVar19 = pstr->wcs;\n                iVar29 = 0;\n                do {\n                  *pwVar19 = 0xffffffff;\n                  iVar29 = iVar29 + 1;\n                  pwVar19 = pwVar19 + 1;\n                } while (iVar29 < pstr->valid_len);\n              }\n              (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n              prVar28 = (re_node_set *)pstr->valid_len;\n              prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n              IVar22 = pstr->stop - (int)prVar44;\n            }\n          }" { (expression_statement "pwVar19 = pstr->wcs + (int)unaff_s3;" (assignment_expression "pwVar19 = pstr->wcs + (int)unaff_s3" identifier = (binary_expression "pstr->wcs + (int)unaff_s3" (field_expression "pstr->wcs" identifier -> field_identifier) + (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "wVar33 = *pwVar19;" (assignment_expression "wVar33 = *pwVar19" identifier = (pointer_expression "*pwVar19" * identifier)) ;) (while_statement "while (wVar33 == 0xffffffff) {\n              unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n              pwVar19 = pwVar19 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar29 = (int)unaff_s3 * 4;\n              wVar33 = *pwVar19;\n            }" while (parenthesized_expression "(wVar33 == 0xffffffff)" ( (binary_expression "wVar33 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n              unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);\n              pwVar19 = pwVar19 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar29 = (int)unaff_s3 * 4;\n              wVar33 = *pwVar19;\n            }" { (expression_statement "unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1);" (assignment_expression "unaff_s3 = (re_node_set *)((int)&unaff_s3->alloc + 1)" identifier = (cast_expression "(re_node_set *)((int)&unaff_s3->alloc + 1)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s3->alloc + 1)" ( (binary_expression "(int)&unaff_s3->alloc + 1" (cast_expression "(int)&unaff_s3->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s3->alloc" & (field_expression "unaff_s3->alloc" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "pwVar19 = pwVar19 + 1;" (assignment_expression "pwVar19 = pwVar19 + 1" identifier = (binary_expression "pwVar19 + 1" identifier + number_literal)) ;) (if_statement "if (unaff_s3 == unaff_s2) goto LAB_0001d444;" if (parenthesized_expression "(unaff_s3 == unaff_s2)" ( (binary_expression "unaff_s3 == unaff_s2" identifier == identifier) )) (goto_statement "goto LAB_0001d444;" goto statement_identifier ;)) (expression_statement "iVar29 = (int)unaff_s3 * 4;" (assignment_expression "iVar29 = (int)unaff_s3 * 4" identifier = (binary_expression "(int)unaff_s3 * 4" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "wVar33 = *pwVar19;" (assignment_expression "wVar33 = *pwVar19" identifier = (pointer_expression "*pwVar19" * identifier)) ;) })) (labeled_statement "LAB_0001d4ac:\n            unaff_s7 = (re_node_set *)((int)&unaff_s7->alloc + iVar29);" statement_identifier : (expression_statement "unaff_s7 = (re_node_set *)((int)&unaff_s7->alloc + iVar29);" (assignment_expression "unaff_s7 = (re_node_set *)((int)&unaff_s7->alloc + iVar29)" identifier = (cast_expression "(re_node_set *)((int)&unaff_s7->alloc + iVar29)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s7->alloc + iVar29)" ( (binary_expression "(int)&unaff_s7->alloc + iVar29" (cast_expression "(int)&unaff_s7->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s7->alloc" & (field_expression "unaff_s7->alloc" identifier -> field_identifier))) + identifier) )))) ;)) (expression_statement "prVar28 = (re_node_set *)(unaff_s7->alloc - (int)prVar44);" (assignment_expression "prVar28 = (re_node_set *)(unaff_s7->alloc - (int)prVar44)" identifier = (cast_expression "(re_node_set *)(unaff_s7->alloc - (int)prVar44)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7->alloc - (int)prVar44)" ( (binary_expression "unaff_s7->alloc - (int)prVar44" (field_expression "unaff_s7->alloc" identifier -> field_identifier) - (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pstr->valid_len = (Idx)prVar28;" (assignment_expression "pstr->valid_len = (Idx)prVar28" (field_expression "pstr->valid_len" identifier -> field_identifier) = (cast_expression "(Idx)prVar28" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (if_statement "if (prVar28 != (re_node_set *)0x0) {\n              if (0 < (int)prVar28) {\n                pwVar19 = pstr->wcs;\n                iVar29 = 0;\n                do {\n                  *pwVar19 = 0xffffffff;\n                  iVar29 = iVar29 + 1;\n                  pwVar19 = pwVar19 + 1;\n                } while (iVar29 < pstr->valid_len);\n              }\n              (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n              prVar28 = (re_node_set *)pstr->valid_len;\n              prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n              IVar22 = pstr->stop - (int)prVar44;\n            }" if (parenthesized_expression "(prVar28 != (re_node_set *)0x0)" ( (binary_expression "prVar28 != (re_node_set *)0x0" identifier != (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (0 < (int)prVar28) {\n                pwVar19 = pstr->wcs;\n                iVar29 = 0;\n                do {\n                  *pwVar19 = 0xffffffff;\n                  iVar29 = iVar29 + 1;\n                  pwVar19 = pwVar19 + 1;\n                } while (iVar29 < pstr->valid_len);\n              }\n              (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n              prVar28 = (re_node_set *)pstr->valid_len;\n              prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n              IVar22 = pstr->stop - (int)prVar44;\n            }" { (if_statement "if (0 < (int)prVar28) {\n                pwVar19 = pstr->wcs;\n                iVar29 = 0;\n                do {\n                  *pwVar19 = 0xffffffff;\n                  iVar29 = iVar29 + 1;\n                  pwVar19 = pwVar19 + 1;\n                } while (iVar29 < pstr->valid_len);\n              }" if (parenthesized_expression "(0 < (int)prVar28)" ( (binary_expression "0 < (int)prVar28" number_literal < (cast_expression "(int)prVar28" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                pwVar19 = pstr->wcs;\n                iVar29 = 0;\n                do {\n                  *pwVar19 = 0xffffffff;\n                  iVar29 = iVar29 + 1;\n                  pwVar19 = pwVar19 + 1;\n                } while (iVar29 < pstr->valid_len);\n              }" { (expression_statement "pwVar19 = pstr->wcs;" (assignment_expression "pwVar19 = pstr->wcs" identifier = (field_expression "pstr->wcs" identifier -> field_identifier)) ;) (expression_statement "iVar29 = 0;" (assignment_expression "iVar29 = 0" identifier = number_literal) ;) (do_statement "do {\n                  *pwVar19 = 0xffffffff;\n                  iVar29 = iVar29 + 1;\n                  pwVar19 = pwVar19 + 1;\n                } while (iVar29 < pstr->valid_len);" do (compound_statement "{\n                  *pwVar19 = 0xffffffff;\n                  iVar29 = iVar29 + 1;\n                  pwVar19 = pwVar19 + 1;\n                }" { (expression_statement "*pwVar19 = 0xffffffff;" (assignment_expression "*pwVar19 = 0xffffffff" (pointer_expression "*pwVar19" * identifier) = number_literal) ;) (expression_statement "iVar29 = iVar29 + 1;" (assignment_expression "iVar29 = iVar29 + 1" identifier = (binary_expression "iVar29 + 1" identifier + number_literal)) ;) (expression_statement "pwVar19 = pwVar19 + 1;" (assignment_expression "pwVar19 = pwVar19 + 1" identifier = (binary_expression "pwVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar29 < pstr->valid_len)" ( (binary_expression "iVar29 < pstr->valid_len" identifier < (field_expression "pstr->valid_len" identifier -> field_identifier)) )) ;) })) (expression_statement "(*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);" (call_expression "(*(code *)PTR_memset_0003c290)(pstr->mbs,0xff)" (parenthesized_expression "(*(code *)PTR_memset_0003c290)" ( (pointer_expression "*(code *)PTR_memset_0003c290" * (cast_expression "(code *)PTR_memset_0003c290" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pstr->mbs,0xff)" ( (field_expression "pstr->mbs" identifier -> field_identifier) , number_literal ))) ;) (expression_statement "prVar28 = (re_node_set *)pstr->valid_len;" (assignment_expression "prVar28 = (re_node_set *)pstr->valid_len" identifier = (cast_expression "(re_node_set *)pstr->valid_len" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pstr->valid_len" identifier -> field_identifier))) ;) (expression_statement "prVar18 = (re_node_set *)(pstr->len - (int)prVar44);" (assignment_expression "prVar18 = (re_node_set *)(pstr->len - (int)prVar44)" identifier = (cast_expression "(re_node_set *)(pstr->len - (int)prVar44)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pstr->len - (int)prVar44)" ( (binary_expression "pstr->len - (int)prVar44" (field_expression "pstr->len" identifier -> field_identifier) - (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "IVar22 = pstr->stop - (int)prVar44;" (assignment_expression "IVar22 = pstr->stop - (int)prVar44" identifier = (binary_expression "pstr->stop - (int)prVar44" (field_expression "pstr->stop" identifier -> field_identifier) - (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) }) (else_clause "else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            prVar28 = (re_node_set *)0x0;\n            pstr->valid_len = 0;\n          }" else (compound_statement "{\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            prVar28 = (re_node_set *)0x0;\n            pstr->valid_len = 0;\n          }" { (if_statement "if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;" if (parenthesized_expression "(unaff_s3 != unaff_s2)" ( (binary_expression "unaff_s3 != unaff_s2" identifier != identifier) )) (goto_statement "goto LAB_0001d4ac;" goto statement_identifier ;)) (labeled_statement "LAB_0001d444:\n            prVar28 = (re_node_set *)0x0;" statement_identifier : (expression_statement "prVar28 = (re_node_set *)0x0;" (assignment_expression "prVar28 = (re_node_set *)0x0" identifier = (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pstr->valid_len = 0;" (assignment_expression "pstr->valid_len = 0" (field_expression "pstr->valid_len" identifier -> field_identifier) = number_literal) ;) }))) (expression_statement "prVar32 = (re_node_set *)pstr->mb_cur_max;" (assignment_expression "prVar32 = (re_node_set *)pstr->mb_cur_max" identifier = (cast_expression "(re_node_set *)pstr->mb_cur_max" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pstr->mb_cur_max" identifier -> field_identifier))) ;) (expression_statement "uVar16 = pstr->mbs_allocated;" (assignment_expression "uVar16 = pstr->mbs_allocated" identifier = (field_expression "pstr->mbs_allocated" identifier -> field_identifier)) ;) (expression_statement "pstr->valid_raw_len = (Idx)prVar28;" (assignment_expression "pstr->valid_raw_len = (Idx)prVar28" (field_expression "pstr->valid_raw_len" identifier -> field_identifier) = (cast_expression "(Idx)prVar28" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) }))) }))) (labeled_statement "LAB_0001d090:\n      prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);" statement_identifier : (expression_statement "prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);" (assignment_expression "prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT)" identifier = (cast_expression "(re_node_set *)(uint)((int)prVar32 < _REG_BADPAT)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)((int)prVar32 < _REG_BADPAT)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)prVar32 < _REG_BADPAT)" ( (binary_expression "(int)prVar32 < _REG_BADPAT" (cast_expression "(int)prVar32" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) ))))) ;)) (if_statement "if (uVar16 == '\0') {\nLAB_0001d098:\n        prVar44 = (re_node_set *)(pstr->mbs + (int)prVar44);\n        pstr->mbs = (uchar *)prVar44;\n      }" if (parenthesized_expression "(uVar16 == '\0')" ( (binary_expression "uVar16 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0001d098:\n        prVar44 = (re_node_set *)(pstr->mbs + (int)prVar44);\n        pstr->mbs = (uchar *)prVar44;\n      }" { (labeled_statement "LAB_0001d098:\n        prVar44 = (re_node_set *)(pstr->mbs + (int)prVar44);" statement_identifier : (expression_statement "prVar44 = (re_node_set *)(pstr->mbs + (int)prVar44);" (assignment_expression "prVar44 = (re_node_set *)(pstr->mbs + (int)prVar44)" identifier = (cast_expression "(re_node_set *)(pstr->mbs + (int)prVar44)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pstr->mbs + (int)prVar44)" ( (binary_expression "pstr->mbs + (int)prVar44" (field_expression "pstr->mbs" identifier -> field_identifier) + (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "pstr->mbs = (uchar *)prVar44;" (assignment_expression "pstr->mbs = (uchar *)prVar44" (field_expression "pstr->mbs" identifier -> field_identifier) = (cast_expression "(uchar *)prVar44" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "pstr->raw_mbs_idx = idx;" (assignment_expression "pstr->raw_mbs_idx = idx" (field_expression "pstr->raw_mbs_idx" identifier -> field_identifier) = identifier) ;) (expression_statement "pstr->len = (Idx)prVar18;" (assignment_expression "pstr->len = (Idx)prVar18" (field_expression "pstr->len" identifier -> field_identifier) = (cast_expression "(Idx)prVar18" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "pstr->stop = IVar22;" (assignment_expression "pstr->stop = IVar22" (field_expression "pstr->stop" identifier -> field_identifier) = identifier) ;) (if_statement "if (prVar26 == (re_node_set *)0x0) goto LAB_0001d0b4;" if (parenthesized_expression "(prVar26 == (re_node_set *)0x0)" ( (binary_expression "prVar26 == (re_node_set *)0x0" identifier == (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d0b4;" goto statement_identifier ;)) (labeled_statement "LAB_0001d148:\n      uVar16 = pstr->mbs_allocated;" statement_identifier : (expression_statement "uVar16 = pstr->mbs_allocated;" (assignment_expression "uVar16 = pstr->mbs_allocated" identifier = (field_expression "pstr->mbs_allocated" identifier -> field_identifier)) ;)) }) (else_clause "else {\n      if (pstr->offsets_needed != '\0') {\n        pstr->offsets_needed = '\0';\n        pstr->len = (Idx)((pstr->raw_len - idx) + (int)prVar44);\n        pstr->stop = (Idx)((pstr->raw_stop - idx) + (int)prVar44);\n      }\n      prVar32 = (re_node_set *)pstr->mb_cur_max;\n      unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n      prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);\n      pstr->valid_len = 0;\n      if (prVar26 == (re_node_set *)0x0) {\n        if (pstr->is_utf8 == '\0') {\nLAB_0001d228:\n          puVar23 = (uchar *)((int)&unaff_s8->alloc + iVar29);\n          if ((int)puVar23 < idx) {\n            unaff_s7 = (re_node_set *)&wc2;\n            do {\n              cur_state.__count = (pstr->cur_state).__count;\n              cur_state.__value = (pstr->cur_state).__value;\n              prVar18 = (re_node_set *)(pstr->raw_len - (int)puVar23);\n              prVar28 = prVar18;\n              sVar6 = rpl_mbrtowc((wchar_t *)unaff_s7,(char *)(puVar23 + (int)pstr->raw_mbs),\n                                  (size_t)prVar18,&pstr->cur_state);\n              unaff_s3 = (re_node_set *)wc2;\n              if (0xfffffffc < sVar6 - 1) {\n                if ((sVar6 == 0) || (prVar18 == (re_node_set *)0x0)) {\n                  unaff_s3 = (re_node_set *)0x0;\n                }\n                else {\n                  unaff_s3 = (re_node_set *)(uint)puVar23[(int)pstr->raw_mbs];\n                }\n                sVar6 = 1;\n                (pstr->cur_state).__count = cur_state.__count;\n                (pstr->cur_state).__value = cur_state.__value;\n              }\n              puVar23 = puVar23 + sVar6;\n            } while ((int)puVar23 < idx);\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n            if (unaff_s3 != (re_node_set *)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n          }\n          prVar28 = (re_node_set *)eflags;\n          uVar4 = re_string_context_at(pstr,(Idx)((int)&unaff_s2[-1].elems + 3),eflags);\n          pstr->tip_context = uVar4;\n        }\n        else {\n          prVar18 = (re_node_set *)pstr->raw_mbs;\n          unaff_s7 = (re_node_set *)((int)&unaff_s8->alloc + (int)&prVar18->alloc);\n          prVar28 = (re_node_set *)((int)unaff_s7 + ((int)prVar44 - (int)prVar32));\n          unaff_s3 = (re_node_set *)\n                     ((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)&unaff_s7->alloc);\n          if (prVar28 <= prVar18) {\n            prVar28 = prVar18;\n          }\n          if (unaff_s3 < prVar28) goto LAB_0001d228;\n          bVar1 = *(byte *)&unaff_s3->alloc;\n          while ((bVar1 & 0xc0) == 0x80) {\n            unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n            if (unaff_s3 < prVar28) goto LAB_0001d228;\n            bVar1 = *(byte *)&unaff_s3->alloc;\n          }\n          puVar23 = pstr->trans;\n          prVar28 = (re_node_set *)((int)unaff_s7 + (pstr->len - (int)unaff_s3));\n          prVar18 = unaff_s3;\n          if (puVar23 != (uchar *)0x0) {\n            prVar26 = (re_node_set *)0x6;\n            if ((int)prVar28 < 7) {\n              prVar26 = prVar28;\n            }\n            prVar18 = (re_node_set *)buf;\n            if (0 < (int)prVar28) {\n              puVar20 = (uchar *)((int)&prVar26->alloc + (int)&unaff_s3->alloc);\n              prVar26 = (re_node_set *)((int)&prVar26->alloc + (int)&prVar18->alloc);\n              do {\n                pbVar47 = puVar20 + -1;\n                prVar26 = (re_node_set *)((int)&prVar26[-1].elems + 3);\n                puVar20 = puVar20 + -1;\n                *(uchar *)&prVar26->alloc = puVar23[*pbVar47];\n              } while (prVar18 != prVar26);\n            }\n          }\n          cur_state.__count = 0;\n          cur_state.__value.__wch = 0;\n          puVar23 = (uchar *)rpl_mbrtowc(&wc2,(char *)prVar18,(size_t)prVar28,&cur_state);\n          puVar20 = (uchar *)((int)prVar44 + ((int)unaff_s7 - (int)unaff_s3));\n          if ((puVar23 < puVar20) || ((uchar *)0xfffffffd < puVar23)) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (re_node_set *)(puVar23 + -(int)puVar20);\n          (pstr->cur_state).__count = 0;\n          (pstr->cur_state).__value.__wch = 0;\n          pstr->valid_len = (Idx)unaff_s8;\n          unaff_s3 = (re_node_set *)wc2;\n          if (wc2 == -1) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((pstr->word_ops_used == '\0') ||\n             ((iVar29 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar29 == 0 &&\n              (unaff_s3 != (re_node_set *)0x5f)))) {\n            uVar4 = 2;\n            if (unaff_s3 == (re_node_set *)0xa) {\n              if (pstr->newline_anchor == '\0') {\n                uVar4 = 0;\n              }\n            }\n            else {\n              uVar4 = 0;\n            }\n          }\n          else {\n            uVar4 = 1;\n          }\n          pstr->tip_context = uVar4;\n        }\n        prVar18 = prVar28;\n        if (unaff_s8 == (re_node_set *)0x0) {\nLAB_0001d2cc:\n          uVar16 = pstr->mbs_allocated;\n          prVar28 = prVar18;\n        }\n        else {\n          iVar29 = 0;\n          prVar18 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            pwVar19 = pstr->wcs;\n            do {\n              *pwVar19 = 0xffffffff;\n              iVar29 = iVar29 + 1;\n              prVar18 = (re_node_set *)pstr->valid_len;\n              pwVar19 = pwVar19 + 1;\n            } while (iVar29 < (int)prVar18);\n          }\n          if (pstr->mbs_allocated != '\0') {\n            (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n            unaff_s8 = (re_node_set *)pstr->valid_len;\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (re_node_set *)pstr->valid_len;\n          uVar16 = '\0';\n        }\n        prVar32 = (re_node_set *)pstr->mb_cur_max;\n        pstr->valid_raw_len = (Idx)unaff_s8;\n        prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n        IVar22 = pstr->stop - (int)prVar44;\n        goto LAB_0001d090;\n      }\n      uVar4 = (uint)(byte)((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)pstr->raw_mbs)\n                          [(int)unaff_s8];\n      pstr->valid_raw_len = 0;\n      if (pstr->trans != (uchar *)0x0) {\n        uVar4 = (uint)pstr->trans[uVar4];\n      }\n      prVar28 = (re_node_set *)(pstr->word_char[(int)uVar4 >> 5] >> (uVar4 & 0x1f) & 1);\n      if (((prVar28 == (re_node_set *)0x0) && (uVar4 == 10)) &&\n         (prVar28 = (re_node_set *)0x2, pstr->newline_anchor == '\0')) {\n        prVar28 = (re_node_set *)0x0;\n      }\n      uVar16 = pstr->mbs_allocated;\n      pstr->tip_context = (uint)prVar28;\n      prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n      IVar22 = pstr->stop - (int)prVar44;\n      if (uVar16 == '\0') goto LAB_0001d098;\n      pstr->raw_mbs_idx = idx;\n      pstr->len = (Idx)prVar18;\n      pstr->stop = IVar22;\n    }" else (compound_statement "{\n      if (pstr->offsets_needed != '\0') {\n        pstr->offsets_needed = '\0';\n        pstr->len = (Idx)((pstr->raw_len - idx) + (int)prVar44);\n        pstr->stop = (Idx)((pstr->raw_stop - idx) + (int)prVar44);\n      }\n      prVar32 = (re_node_set *)pstr->mb_cur_max;\n      unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n      prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);\n      pstr->valid_len = 0;\n      if (prVar26 == (re_node_set *)0x0) {\n        if (pstr->is_utf8 == '\0') {\nLAB_0001d228:\n          puVar23 = (uchar *)((int)&unaff_s8->alloc + iVar29);\n          if ((int)puVar23 < idx) {\n            unaff_s7 = (re_node_set *)&wc2;\n            do {\n              cur_state.__count = (pstr->cur_state).__count;\n              cur_state.__value = (pstr->cur_state).__value;\n              prVar18 = (re_node_set *)(pstr->raw_len - (int)puVar23);\n              prVar28 = prVar18;\n              sVar6 = rpl_mbrtowc((wchar_t *)unaff_s7,(char *)(puVar23 + (int)pstr->raw_mbs),\n                                  (size_t)prVar18,&pstr->cur_state);\n              unaff_s3 = (re_node_set *)wc2;\n              if (0xfffffffc < sVar6 - 1) {\n                if ((sVar6 == 0) || (prVar18 == (re_node_set *)0x0)) {\n                  unaff_s3 = (re_node_set *)0x0;\n                }\n                else {\n                  unaff_s3 = (re_node_set *)(uint)puVar23[(int)pstr->raw_mbs];\n                }\n                sVar6 = 1;\n                (pstr->cur_state).__count = cur_state.__count;\n                (pstr->cur_state).__value = cur_state.__value;\n              }\n              puVar23 = puVar23 + sVar6;\n            } while ((int)puVar23 < idx);\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n            if (unaff_s3 != (re_node_set *)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n          }\n          prVar28 = (re_node_set *)eflags;\n          uVar4 = re_string_context_at(pstr,(Idx)((int)&unaff_s2[-1].elems + 3),eflags);\n          pstr->tip_context = uVar4;\n        }\n        else {\n          prVar18 = (re_node_set *)pstr->raw_mbs;\n          unaff_s7 = (re_node_set *)((int)&unaff_s8->alloc + (int)&prVar18->alloc);\n          prVar28 = (re_node_set *)((int)unaff_s7 + ((int)prVar44 - (int)prVar32));\n          unaff_s3 = (re_node_set *)\n                     ((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)&unaff_s7->alloc);\n          if (prVar28 <= prVar18) {\n            prVar28 = prVar18;\n          }\n          if (unaff_s3 < prVar28) goto LAB_0001d228;\n          bVar1 = *(byte *)&unaff_s3->alloc;\n          while ((bVar1 & 0xc0) == 0x80) {\n            unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n            if (unaff_s3 < prVar28) goto LAB_0001d228;\n            bVar1 = *(byte *)&unaff_s3->alloc;\n          }\n          puVar23 = pstr->trans;\n          prVar28 = (re_node_set *)((int)unaff_s7 + (pstr->len - (int)unaff_s3));\n          prVar18 = unaff_s3;\n          if (puVar23 != (uchar *)0x0) {\n            prVar26 = (re_node_set *)0x6;\n            if ((int)prVar28 < 7) {\n              prVar26 = prVar28;\n            }\n            prVar18 = (re_node_set *)buf;\n            if (0 < (int)prVar28) {\n              puVar20 = (uchar *)((int)&prVar26->alloc + (int)&unaff_s3->alloc);\n              prVar26 = (re_node_set *)((int)&prVar26->alloc + (int)&prVar18->alloc);\n              do {\n                pbVar47 = puVar20 + -1;\n                prVar26 = (re_node_set *)((int)&prVar26[-1].elems + 3);\n                puVar20 = puVar20 + -1;\n                *(uchar *)&prVar26->alloc = puVar23[*pbVar47];\n              } while (prVar18 != prVar26);\n            }\n          }\n          cur_state.__count = 0;\n          cur_state.__value.__wch = 0;\n          puVar23 = (uchar *)rpl_mbrtowc(&wc2,(char *)prVar18,(size_t)prVar28,&cur_state);\n          puVar20 = (uchar *)((int)prVar44 + ((int)unaff_s7 - (int)unaff_s3));\n          if ((puVar23 < puVar20) || ((uchar *)0xfffffffd < puVar23)) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (re_node_set *)(puVar23 + -(int)puVar20);\n          (pstr->cur_state).__count = 0;\n          (pstr->cur_state).__value.__wch = 0;\n          pstr->valid_len = (Idx)unaff_s8;\n          unaff_s3 = (re_node_set *)wc2;\n          if (wc2 == -1) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((pstr->word_ops_used == '\0') ||\n             ((iVar29 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar29 == 0 &&\n              (unaff_s3 != (re_node_set *)0x5f)))) {\n            uVar4 = 2;\n            if (unaff_s3 == (re_node_set *)0xa) {\n              if (pstr->newline_anchor == '\0') {\n                uVar4 = 0;\n              }\n            }\n            else {\n              uVar4 = 0;\n            }\n          }\n          else {\n            uVar4 = 1;\n          }\n          pstr->tip_context = uVar4;\n        }\n        prVar18 = prVar28;\n        if (unaff_s8 == (re_node_set *)0x0) {\nLAB_0001d2cc:\n          uVar16 = pstr->mbs_allocated;\n          prVar28 = prVar18;\n        }\n        else {\n          iVar29 = 0;\n          prVar18 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            pwVar19 = pstr->wcs;\n            do {\n              *pwVar19 = 0xffffffff;\n              iVar29 = iVar29 + 1;\n              prVar18 = (re_node_set *)pstr->valid_len;\n              pwVar19 = pwVar19 + 1;\n            } while (iVar29 < (int)prVar18);\n          }\n          if (pstr->mbs_allocated != '\0') {\n            (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n            unaff_s8 = (re_node_set *)pstr->valid_len;\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (re_node_set *)pstr->valid_len;\n          uVar16 = '\0';\n        }\n        prVar32 = (re_node_set *)pstr->mb_cur_max;\n        pstr->valid_raw_len = (Idx)unaff_s8;\n        prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n        IVar22 = pstr->stop - (int)prVar44;\n        goto LAB_0001d090;\n      }\n      uVar4 = (uint)(byte)((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)pstr->raw_mbs)\n                          [(int)unaff_s8];\n      pstr->valid_raw_len = 0;\n      if (pstr->trans != (uchar *)0x0) {\n        uVar4 = (uint)pstr->trans[uVar4];\n      }\n      prVar28 = (re_node_set *)(pstr->word_char[(int)uVar4 >> 5] >> (uVar4 & 0x1f) & 1);\n      if (((prVar28 == (re_node_set *)0x0) && (uVar4 == 10)) &&\n         (prVar28 = (re_node_set *)0x2, pstr->newline_anchor == '\0')) {\n        prVar28 = (re_node_set *)0x0;\n      }\n      uVar16 = pstr->mbs_allocated;\n      pstr->tip_context = (uint)prVar28;\n      prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n      IVar22 = pstr->stop - (int)prVar44;\n      if (uVar16 == '\0') goto LAB_0001d098;\n      pstr->raw_mbs_idx = idx;\n      pstr->len = (Idx)prVar18;\n      pstr->stop = IVar22;\n    }" { (if_statement "if (pstr->offsets_needed != '\0') {\n        pstr->offsets_needed = '\0';\n        pstr->len = (Idx)((pstr->raw_len - idx) + (int)prVar44);\n        pstr->stop = (Idx)((pstr->raw_stop - idx) + (int)prVar44);\n      }" if (parenthesized_expression "(pstr->offsets_needed != '\0')" ( (binary_expression "pstr->offsets_needed != '\0'" (field_expression "pstr->offsets_needed" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pstr->offsets_needed = '\0';\n        pstr->len = (Idx)((pstr->raw_len - idx) + (int)prVar44);\n        pstr->stop = (Idx)((pstr->raw_stop - idx) + (int)prVar44);\n      }" { (expression_statement "pstr->offsets_needed = '\0';" (assignment_expression "pstr->offsets_needed = '\0'" (field_expression "pstr->offsets_needed" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pstr->len = (Idx)((pstr->raw_len - idx) + (int)prVar44);" (assignment_expression "pstr->len = (Idx)((pstr->raw_len - idx) + (int)prVar44)" (field_expression "pstr->len" identifier -> field_identifier) = (call_expression "(Idx)((pstr->raw_len - idx) + (int)prVar44)" (parenthesized_expression "(Idx)" ( identifier )) (argument_list "((pstr->raw_len - idx) + (int)prVar44)" ( (binary_expression "(pstr->raw_len - idx) + (int)prVar44" (parenthesized_expression "(pstr->raw_len - idx)" ( (binary_expression "pstr->raw_len - idx" (field_expression "pstr->raw_len" identifier -> field_identifier) - identifier) )) + (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pstr->stop = (Idx)((pstr->raw_stop - idx) + (int)prVar44);" (assignment_expression "pstr->stop = (Idx)((pstr->raw_stop - idx) + (int)prVar44)" (field_expression "pstr->stop" identifier -> field_identifier) = (call_expression "(Idx)((pstr->raw_stop - idx) + (int)prVar44)" (parenthesized_expression "(Idx)" ( identifier )) (argument_list "((pstr->raw_stop - idx) + (int)prVar44)" ( (binary_expression "(pstr->raw_stop - idx) + (int)prVar44" (parenthesized_expression "(pstr->raw_stop - idx)" ( (binary_expression "pstr->raw_stop - idx" (field_expression "pstr->raw_stop" identifier -> field_identifier) - identifier) )) + (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "prVar32 = (re_node_set *)pstr->mb_cur_max;" (assignment_expression "prVar32 = (re_node_set *)pstr->mb_cur_max" identifier = (cast_expression "(re_node_set *)pstr->mb_cur_max" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pstr->mb_cur_max" identifier -> field_identifier))) ;) (expression_statement "unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;" (assignment_expression "unaff_s8 = (re_node_set *)pstr->raw_mbs_idx" identifier = (cast_expression "(re_node_set *)pstr->raw_mbs_idx" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pstr->raw_mbs_idx" identifier -> field_identifier))) ;) (expression_statement "prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);" (assignment_expression "prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT)" identifier = (cast_expression "(re_node_set *)(uint)((int)prVar32 < _REG_BADPAT)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)((int)prVar32 < _REG_BADPAT)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)prVar32 < _REG_BADPAT)" ( (binary_expression "(int)prVar32 < _REG_BADPAT" (cast_expression "(int)prVar32" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) ))))) ;) (expression_statement "pstr->valid_len = 0;" (assignment_expression "pstr->valid_len = 0" (field_expression "pstr->valid_len" identifier -> field_identifier) = number_literal) ;) (if_statement "if (prVar26 == (re_node_set *)0x0) {\n        if (pstr->is_utf8 == '\0') {\nLAB_0001d228:\n          puVar23 = (uchar *)((int)&unaff_s8->alloc + iVar29);\n          if ((int)puVar23 < idx) {\n            unaff_s7 = (re_node_set *)&wc2;\n            do {\n              cur_state.__count = (pstr->cur_state).__count;\n              cur_state.__value = (pstr->cur_state).__value;\n              prVar18 = (re_node_set *)(pstr->raw_len - (int)puVar23);\n              prVar28 = prVar18;\n              sVar6 = rpl_mbrtowc((wchar_t *)unaff_s7,(char *)(puVar23 + (int)pstr->raw_mbs),\n                                  (size_t)prVar18,&pstr->cur_state);\n              unaff_s3 = (re_node_set *)wc2;\n              if (0xfffffffc < sVar6 - 1) {\n                if ((sVar6 == 0) || (prVar18 == (re_node_set *)0x0)) {\n                  unaff_s3 = (re_node_set *)0x0;\n                }\n                else {\n                  unaff_s3 = (re_node_set *)(uint)puVar23[(int)pstr->raw_mbs];\n                }\n                sVar6 = 1;\n                (pstr->cur_state).__count = cur_state.__count;\n                (pstr->cur_state).__value = cur_state.__value;\n              }\n              puVar23 = puVar23 + sVar6;\n            } while ((int)puVar23 < idx);\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n            if (unaff_s3 != (re_node_set *)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n          }\n          prVar28 = (re_node_set *)eflags;\n          uVar4 = re_string_context_at(pstr,(Idx)((int)&unaff_s2[-1].elems + 3),eflags);\n          pstr->tip_context = uVar4;\n        }\n        else {\n          prVar18 = (re_node_set *)pstr->raw_mbs;\n          unaff_s7 = (re_node_set *)((int)&unaff_s8->alloc + (int)&prVar18->alloc);\n          prVar28 = (re_node_set *)((int)unaff_s7 + ((int)prVar44 - (int)prVar32));\n          unaff_s3 = (re_node_set *)\n                     ((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)&unaff_s7->alloc);\n          if (prVar28 <= prVar18) {\n            prVar28 = prVar18;\n          }\n          if (unaff_s3 < prVar28) goto LAB_0001d228;\n          bVar1 = *(byte *)&unaff_s3->alloc;\n          while ((bVar1 & 0xc0) == 0x80) {\n            unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n            if (unaff_s3 < prVar28) goto LAB_0001d228;\n            bVar1 = *(byte *)&unaff_s3->alloc;\n          }\n          puVar23 = pstr->trans;\n          prVar28 = (re_node_set *)((int)unaff_s7 + (pstr->len - (int)unaff_s3));\n          prVar18 = unaff_s3;\n          if (puVar23 != (uchar *)0x0) {\n            prVar26 = (re_node_set *)0x6;\n            if ((int)prVar28 < 7) {\n              prVar26 = prVar28;\n            }\n            prVar18 = (re_node_set *)buf;\n            if (0 < (int)prVar28) {\n              puVar20 = (uchar *)((int)&prVar26->alloc + (int)&unaff_s3->alloc);\n              prVar26 = (re_node_set *)((int)&prVar26->alloc + (int)&prVar18->alloc);\n              do {\n                pbVar47 = puVar20 + -1;\n                prVar26 = (re_node_set *)((int)&prVar26[-1].elems + 3);\n                puVar20 = puVar20 + -1;\n                *(uchar *)&prVar26->alloc = puVar23[*pbVar47];\n              } while (prVar18 != prVar26);\n            }\n          }\n          cur_state.__count = 0;\n          cur_state.__value.__wch = 0;\n          puVar23 = (uchar *)rpl_mbrtowc(&wc2,(char *)prVar18,(size_t)prVar28,&cur_state);\n          puVar20 = (uchar *)((int)prVar44 + ((int)unaff_s7 - (int)unaff_s3));\n          if ((puVar23 < puVar20) || ((uchar *)0xfffffffd < puVar23)) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (re_node_set *)(puVar23 + -(int)puVar20);\n          (pstr->cur_state).__count = 0;\n          (pstr->cur_state).__value.__wch = 0;\n          pstr->valid_len = (Idx)unaff_s8;\n          unaff_s3 = (re_node_set *)wc2;\n          if (wc2 == -1) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((pstr->word_ops_used == '\0') ||\n             ((iVar29 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar29 == 0 &&\n              (unaff_s3 != (re_node_set *)0x5f)))) {\n            uVar4 = 2;\n            if (unaff_s3 == (re_node_set *)0xa) {\n              if (pstr->newline_anchor == '\0') {\n                uVar4 = 0;\n              }\n            }\n            else {\n              uVar4 = 0;\n            }\n          }\n          else {\n            uVar4 = 1;\n          }\n          pstr->tip_context = uVar4;\n        }\n        prVar18 = prVar28;\n        if (unaff_s8 == (re_node_set *)0x0) {\nLAB_0001d2cc:\n          uVar16 = pstr->mbs_allocated;\n          prVar28 = prVar18;\n        }\n        else {\n          iVar29 = 0;\n          prVar18 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            pwVar19 = pstr->wcs;\n            do {\n              *pwVar19 = 0xffffffff;\n              iVar29 = iVar29 + 1;\n              prVar18 = (re_node_set *)pstr->valid_len;\n              pwVar19 = pwVar19 + 1;\n            } while (iVar29 < (int)prVar18);\n          }\n          if (pstr->mbs_allocated != '\0') {\n            (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n            unaff_s8 = (re_node_set *)pstr->valid_len;\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (re_node_set *)pstr->valid_len;\n          uVar16 = '\0';\n        }\n        prVar32 = (re_node_set *)pstr->mb_cur_max;\n        pstr->valid_raw_len = (Idx)unaff_s8;\n        prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n        IVar22 = pstr->stop - (int)prVar44;\n        goto LAB_0001d090;\n      }" if (parenthesized_expression "(prVar26 == (re_node_set *)0x0)" ( (binary_expression "prVar26 == (re_node_set *)0x0" identifier == (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pstr->is_utf8 == '\0') {\nLAB_0001d228:\n          puVar23 = (uchar *)((int)&unaff_s8->alloc + iVar29);\n          if ((int)puVar23 < idx) {\n            unaff_s7 = (re_node_set *)&wc2;\n            do {\n              cur_state.__count = (pstr->cur_state).__count;\n              cur_state.__value = (pstr->cur_state).__value;\n              prVar18 = (re_node_set *)(pstr->raw_len - (int)puVar23);\n              prVar28 = prVar18;\n              sVar6 = rpl_mbrtowc((wchar_t *)unaff_s7,(char *)(puVar23 + (int)pstr->raw_mbs),\n                                  (size_t)prVar18,&pstr->cur_state);\n              unaff_s3 = (re_node_set *)wc2;\n              if (0xfffffffc < sVar6 - 1) {\n                if ((sVar6 == 0) || (prVar18 == (re_node_set *)0x0)) {\n                  unaff_s3 = (re_node_set *)0x0;\n                }\n                else {\n                  unaff_s3 = (re_node_set *)(uint)puVar23[(int)pstr->raw_mbs];\n                }\n                sVar6 = 1;\n                (pstr->cur_state).__count = cur_state.__count;\n                (pstr->cur_state).__value = cur_state.__value;\n              }\n              puVar23 = puVar23 + sVar6;\n            } while ((int)puVar23 < idx);\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n            if (unaff_s3 != (re_node_set *)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n          }\n          prVar28 = (re_node_set *)eflags;\n          uVar4 = re_string_context_at(pstr,(Idx)((int)&unaff_s2[-1].elems + 3),eflags);\n          pstr->tip_context = uVar4;\n        }\n        else {\n          prVar18 = (re_node_set *)pstr->raw_mbs;\n          unaff_s7 = (re_node_set *)((int)&unaff_s8->alloc + (int)&prVar18->alloc);\n          prVar28 = (re_node_set *)((int)unaff_s7 + ((int)prVar44 - (int)prVar32));\n          unaff_s3 = (re_node_set *)\n                     ((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)&unaff_s7->alloc);\n          if (prVar28 <= prVar18) {\n            prVar28 = prVar18;\n          }\n          if (unaff_s3 < prVar28) goto LAB_0001d228;\n          bVar1 = *(byte *)&unaff_s3->alloc;\n          while ((bVar1 & 0xc0) == 0x80) {\n            unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n            if (unaff_s3 < prVar28) goto LAB_0001d228;\n            bVar1 = *(byte *)&unaff_s3->alloc;\n          }\n          puVar23 = pstr->trans;\n          prVar28 = (re_node_set *)((int)unaff_s7 + (pstr->len - (int)unaff_s3));\n          prVar18 = unaff_s3;\n          if (puVar23 != (uchar *)0x0) {\n            prVar26 = (re_node_set *)0x6;\n            if ((int)prVar28 < 7) {\n              prVar26 = prVar28;\n            }\n            prVar18 = (re_node_set *)buf;\n            if (0 < (int)prVar28) {\n              puVar20 = (uchar *)((int)&prVar26->alloc + (int)&unaff_s3->alloc);\n              prVar26 = (re_node_set *)((int)&prVar26->alloc + (int)&prVar18->alloc);\n              do {\n                pbVar47 = puVar20 + -1;\n                prVar26 = (re_node_set *)((int)&prVar26[-1].elems + 3);\n                puVar20 = puVar20 + -1;\n                *(uchar *)&prVar26->alloc = puVar23[*pbVar47];\n              } while (prVar18 != prVar26);\n            }\n          }\n          cur_state.__count = 0;\n          cur_state.__value.__wch = 0;\n          puVar23 = (uchar *)rpl_mbrtowc(&wc2,(char *)prVar18,(size_t)prVar28,&cur_state);\n          puVar20 = (uchar *)((int)prVar44 + ((int)unaff_s7 - (int)unaff_s3));\n          if ((puVar23 < puVar20) || ((uchar *)0xfffffffd < puVar23)) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (re_node_set *)(puVar23 + -(int)puVar20);\n          (pstr->cur_state).__count = 0;\n          (pstr->cur_state).__value.__wch = 0;\n          pstr->valid_len = (Idx)unaff_s8;\n          unaff_s3 = (re_node_set *)wc2;\n          if (wc2 == -1) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((pstr->word_ops_used == '\0') ||\n             ((iVar29 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar29 == 0 &&\n              (unaff_s3 != (re_node_set *)0x5f)))) {\n            uVar4 = 2;\n            if (unaff_s3 == (re_node_set *)0xa) {\n              if (pstr->newline_anchor == '\0') {\n                uVar4 = 0;\n              }\n            }\n            else {\n              uVar4 = 0;\n            }\n          }\n          else {\n            uVar4 = 1;\n          }\n          pstr->tip_context = uVar4;\n        }\n        prVar18 = prVar28;\n        if (unaff_s8 == (re_node_set *)0x0) {\nLAB_0001d2cc:\n          uVar16 = pstr->mbs_allocated;\n          prVar28 = prVar18;\n        }\n        else {\n          iVar29 = 0;\n          prVar18 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            pwVar19 = pstr->wcs;\n            do {\n              *pwVar19 = 0xffffffff;\n              iVar29 = iVar29 + 1;\n              prVar18 = (re_node_set *)pstr->valid_len;\n              pwVar19 = pwVar19 + 1;\n            } while (iVar29 < (int)prVar18);\n          }\n          if (pstr->mbs_allocated != '\0') {\n            (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n            unaff_s8 = (re_node_set *)pstr->valid_len;\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (re_node_set *)pstr->valid_len;\n          uVar16 = '\0';\n        }\n        prVar32 = (re_node_set *)pstr->mb_cur_max;\n        pstr->valid_raw_len = (Idx)unaff_s8;\n        prVar18 = (re_node_set *)(pstr->len - (int)prVar44);\n        IVar22 = pstr->stop - (int)prVar44;\n        goto LAB_0001d090;\n      }" { (if_statement "if (pstr->is_utf8 == '\0') {\nLAB_0001d228:\n          puVar23 = (uchar *)((int)&unaff_s8->alloc + iVar29);\n          if ((int)puVar23 < idx) {\n            unaff_s7 = (re_node_set *)&wc2;\n            do {\n              cur_state.__count = (pstr->cur_state).__count;\n              cur_state.__value = (pstr->cur_state).__value;\n              prVar18 = (re_node_set *)(pstr->raw_len - (int)puVar23);\n              prVar28 = prVar18;\n              sVar6 = rpl_mbrtowc((wchar_t *)unaff_s7,(char *)(puVar23 + (int)pstr->raw_mbs),\n                                  (size_t)prVar18,&pstr->cur_state);\n              unaff_s3 = (re_node_set *)wc2;\n              if (0xfffffffc < sVar6 - 1) {\n                if ((sVar6 == 0) || (prVar18 == (re_node_set *)0x0)) {\n                  unaff_s3 = (re_node_set *)0x0;\n                }\n                else {\n                  unaff_s3 = (re_node_set *)(uint)puVar23[(int)pstr->raw_mbs];\n                }\n                sVar6 = 1;\n                (pstr->cur_state).__count = cur_state.__count;\n                (pstr->cur_state).__value = cur_state.__value;\n              }\n              puVar23 = puVar23 + sVar6;\n            } while ((int)puVar23 < idx);\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n            if (unaff_s3 != (re_node_set *)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n          }\n          prVar28 = (re_node_set *)eflags;\n          uVar4 = re_string_context_at(pstr,(Idx)((int)&unaff_s2[-1].elems + 3),eflags);\n          pstr->tip_context = uVar4;\n        }\n        else {\n          prVar18 = (re_node_set *)pstr->raw_mbs;\n          unaff_s7 = (re_node_set *)((int)&unaff_s8->alloc + (int)&prVar18->alloc);\n          prVar28 = (re_node_set *)((int)unaff_s7 + ((int)prVar44 - (int)prVar32));\n          unaff_s3 = (re_node_set *)\n                     ((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)&unaff_s7->alloc);\n          if (prVar28 <= prVar18) {\n            prVar28 = prVar18;\n          }\n          if (unaff_s3 < prVar28) goto LAB_0001d228;\n          bVar1 = *(byte *)&unaff_s3->alloc;\n          while ((bVar1 & 0xc0) == 0x80) {\n            unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n            if (unaff_s3 < prVar28) goto LAB_0001d228;\n            bVar1 = *(byte *)&unaff_s3->alloc;\n          }\n          puVar23 = pstr->trans;\n          prVar28 = (re_node_set *)((int)unaff_s7 + (pstr->len - (int)unaff_s3));\n          prVar18 = unaff_s3;\n          if (puVar23 != (uchar *)0x0) {\n            prVar26 = (re_node_set *)0x6;\n            if ((int)prVar28 < 7) {\n              prVar26 = prVar28;\n            }\n            prVar18 = (re_node_set *)buf;\n            if (0 < (int)prVar28) {\n              puVar20 = (uchar *)((int)&prVar26->alloc + (int)&unaff_s3->alloc);\n              prVar26 = (re_node_set *)((int)&prVar26->alloc + (int)&prVar18->alloc);\n              do {\n                pbVar47 = puVar20 + -1;\n                prVar26 = (re_node_set *)((int)&prVar26[-1].elems + 3);\n                puVar20 = puVar20 + -1;\n                *(uchar *)&prVar26->alloc = puVar23[*pbVar47];\n              } while (prVar18 != prVar26);\n            }\n          }\n          cur_state.__count = 0;\n          cur_state.__value.__wch = 0;\n          puVar23 = (uchar *)rpl_mbrtowc(&wc2,(char *)prVar18,(size_t)prVar28,&cur_state);\n          puVar20 = (uchar *)((int)prVar44 + ((int)unaff_s7 - (int)unaff_s3));\n          if ((puVar23 < puVar20) || ((uchar *)0xfffffffd < puVar23)) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (re_node_set *)(puVar23 + -(int)puVar20);\n          (pstr->cur_state).__count = 0;\n          (pstr->cur_state).__value.__wch = 0;\n          pstr->valid_len = (Idx)unaff_s8;\n          unaff_s3 = (re_node_set *)wc2;\n          if (wc2 == -1) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((pstr->word_ops_used == '\0') ||\n             ((iVar29 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar29 == 0 &&\n              (unaff_s3 != (re_node_set *)0x5f)))) {\n            uVar4 = 2;\n            if (unaff_s3 == (re_node_set *)0xa) {\n              if (pstr->newline_anchor == '\0') {\n                uVar4 = 0;\n              }\n            }\n            else {\n              uVar4 = 0;\n            }\n          }\n          else {\n            uVar4 = 1;\n          }\n          pstr->tip_context = uVar4;\n        }" if (parenthesized_expression "(pstr->is_utf8 == '\0')" ( (binary_expression "pstr->is_utf8 == '\0'" (field_expression "pstr->is_utf8" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0001d228:\n          puVar23 = (uchar *)((int)&unaff_s8->alloc + iVar29);\n          if ((int)puVar23 < idx) {\n            unaff_s7 = (re_node_set *)&wc2;\n            do {\n              cur_state.__count = (pstr->cur_state).__count;\n              cur_state.__value = (pstr->cur_state).__value;\n              prVar18 = (re_node_set *)(pstr->raw_len - (int)puVar23);\n              prVar28 = prVar18;\n              sVar6 = rpl_mbrtowc((wchar_t *)unaff_s7,(char *)(puVar23 + (int)pstr->raw_mbs),\n                                  (size_t)prVar18,&pstr->cur_state);\n              unaff_s3 = (re_node_set *)wc2;\n              if (0xfffffffc < sVar6 - 1) {\n                if ((sVar6 == 0) || (prVar18 == (re_node_set *)0x0)) {\n                  unaff_s3 = (re_node_set *)0x0;\n                }\n                else {\n                  unaff_s3 = (re_node_set *)(uint)puVar23[(int)pstr->raw_mbs];\n                }\n                sVar6 = 1;\n                (pstr->cur_state).__count = cur_state.__count;\n                (pstr->cur_state).__value = cur_state.__value;\n              }\n              puVar23 = puVar23 + sVar6;\n            } while ((int)puVar23 < idx);\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n            if (unaff_s3 != (re_node_set *)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n          }\n          prVar28 = (re_node_set *)eflags;\n          uVar4 = re_string_context_at(pstr,(Idx)((int)&unaff_s2[-1].elems + 3),eflags);\n          pstr->tip_context = uVar4;\n        }" { (labeled_statement "LAB_0001d228:\n          puVar23 = (uchar *)((int)&unaff_s8->alloc + iVar29);" statement_identifier : (expression_statement "puVar23 = (uchar *)((int)&unaff_s8->alloc + iVar29);" (assignment_expression "puVar23 = (uchar *)((int)&unaff_s8->alloc + iVar29)" identifier = (cast_expression "(uchar *)((int)&unaff_s8->alloc + iVar29)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s8->alloc + iVar29)" ( (binary_expression "(int)&unaff_s8->alloc + iVar29" (cast_expression "(int)&unaff_s8->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s8->alloc" & (field_expression "unaff_s8->alloc" identifier -> field_identifier))) + identifier) )))) ;)) (if_statement "if ((int)puVar23 < idx) {\n            unaff_s7 = (re_node_set *)&wc2;\n            do {\n              cur_state.__count = (pstr->cur_state).__count;\n              cur_state.__value = (pstr->cur_state).__value;\n              prVar18 = (re_node_set *)(pstr->raw_len - (int)puVar23);\n              prVar28 = prVar18;\n              sVar6 = rpl_mbrtowc((wchar_t *)unaff_s7,(char *)(puVar23 + (int)pstr->raw_mbs),\n                                  (size_t)prVar18,&pstr->cur_state);\n              unaff_s3 = (re_node_set *)wc2;\n              if (0xfffffffc < sVar6 - 1) {\n                if ((sVar6 == 0) || (prVar18 == (re_node_set *)0x0)) {\n                  unaff_s3 = (re_node_set *)0x0;\n                }\n                else {\n                  unaff_s3 = (re_node_set *)(uint)puVar23[(int)pstr->raw_mbs];\n                }\n                sVar6 = 1;\n                (pstr->cur_state).__count = cur_state.__count;\n                (pstr->cur_state).__value = cur_state.__value;\n              }\n              puVar23 = puVar23 + sVar6;\n            } while ((int)puVar23 < idx);\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n            if (unaff_s3 != (re_node_set *)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n          }" if (parenthesized_expression "((int)puVar23 < idx)" ( (binary_expression "(int)puVar23 < idx" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n            unaff_s7 = (re_node_set *)&wc2;\n            do {\n              cur_state.__count = (pstr->cur_state).__count;\n              cur_state.__value = (pstr->cur_state).__value;\n              prVar18 = (re_node_set *)(pstr->raw_len - (int)puVar23);\n              prVar28 = prVar18;\n              sVar6 = rpl_mbrtowc((wchar_t *)unaff_s7,(char *)(puVar23 + (int)pstr->raw_mbs),\n                                  (size_t)prVar18,&pstr->cur_state);\n              unaff_s3 = (re_node_set *)wc2;\n              if (0xfffffffc < sVar6 - 1) {\n                if ((sVar6 == 0) || (prVar18 == (re_node_set *)0x0)) {\n                  unaff_s3 = (re_node_set *)0x0;\n                }\n                else {\n                  unaff_s3 = (re_node_set *)(uint)puVar23[(int)pstr->raw_mbs];\n                }\n                sVar6 = 1;\n                (pstr->cur_state).__count = cur_state.__count;\n                (pstr->cur_state).__value = cur_state.__value;\n              }\n              puVar23 = puVar23 + sVar6;\n            } while ((int)puVar23 < idx);\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n            if (unaff_s3 != (re_node_set *)0xffffffff) goto LAB_0001d2a4;\n          }" { (expression_statement "unaff_s7 = (re_node_set *)&wc2;" (assignment_expression "unaff_s7 = (re_node_set *)&wc2" identifier = (cast_expression "(re_node_set *)&wc2" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&wc2" & identifier))) ;) (do_statement "do {\n              cur_state.__count = (pstr->cur_state).__count;\n              cur_state.__value = (pstr->cur_state).__value;\n              prVar18 = (re_node_set *)(pstr->raw_len - (int)puVar23);\n              prVar28 = prVar18;\n              sVar6 = rpl_mbrtowc((wchar_t *)unaff_s7,(char *)(puVar23 + (int)pstr->raw_mbs),\n                                  (size_t)prVar18,&pstr->cur_state);\n              unaff_s3 = (re_node_set *)wc2;\n              if (0xfffffffc < sVar6 - 1) {\n                if ((sVar6 == 0) || (prVar18 == (re_node_set *)0x0)) {\n                  unaff_s3 = (re_node_set *)0x0;\n                }\n                else {\n                  unaff_s3 = (re_node_set *)(uint)puVar23[(int)pstr->raw_mbs];\n                }\n                sVar6 = 1;\n                (pstr->cur_state).__count = cur_state.__count;\n                (pstr->cur_state).__value = cur_state.__value;\n              }\n              puVar23 = puVar23 + sVar6;\n            } while ((int)puVar23 < idx);" do (compound_statement "{\n              cur_state.__count = (pstr->cur_state).__count;\n              cur_state.__value = (pstr->cur_state).__value;\n              prVar18 = (re_node_set *)(pstr->raw_len - (int)puVar23);\n              prVar28 = prVar18;\n              sVar6 = rpl_mbrtowc((wchar_t *)unaff_s7,(char *)(puVar23 + (int)pstr->raw_mbs),\n                                  (size_t)prVar18,&pstr->cur_state);\n              unaff_s3 = (re_node_set *)wc2;\n              if (0xfffffffc < sVar6 - 1) {\n                if ((sVar6 == 0) || (prVar18 == (re_node_set *)0x0)) {\n                  unaff_s3 = (re_node_set *)0x0;\n                }\n                else {\n                  unaff_s3 = (re_node_set *)(uint)puVar23[(int)pstr->raw_mbs];\n                }\n                sVar6 = 1;\n                (pstr->cur_state).__count = cur_state.__count;\n                (pstr->cur_state).__value = cur_state.__value;\n              }\n              puVar23 = puVar23 + sVar6;\n            }" { (expression_statement "cur_state.__count = (pstr->cur_state).__count;" (assignment_expression "cur_state.__count = (pstr->cur_state).__count" (field_expression "cur_state.__count" identifier . field_identifier) = (field_expression "(pstr->cur_state).__count" (parenthesized_expression "(pstr->cur_state)" ( (field_expression "pstr->cur_state" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "cur_state.__value = (pstr->cur_state).__value;" (assignment_expression "cur_state.__value = (pstr->cur_state).__value" (field_expression "cur_state.__value" identifier . field_identifier) = (field_expression "(pstr->cur_state).__value" (parenthesized_expression "(pstr->cur_state)" ( (field_expression "pstr->cur_state" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "prVar18 = (re_node_set *)(pstr->raw_len - (int)puVar23);" (assignment_expression "prVar18 = (re_node_set *)(pstr->raw_len - (int)puVar23)" identifier = (cast_expression "(re_node_set *)(pstr->raw_len - (int)puVar23)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pstr->raw_len - (int)puVar23)" ( (binary_expression "pstr->raw_len - (int)puVar23" (field_expression "pstr->raw_len" identifier -> field_identifier) - (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "prVar28 = prVar18;" (assignment_expression "prVar28 = prVar18" identifier = identifier) ;) (expression_statement "sVar6 = rpl_mbrtowc((wchar_t *)unaff_s7,(char *)(puVar23 + (int)pstr->raw_mbs),\n                                  (size_t)prVar18,&pstr->cur_state);" (assignment_expression "sVar6 = rpl_mbrtowc((wchar_t *)unaff_s7,(char *)(puVar23 + (int)pstr->raw_mbs),\n                                  (size_t)prVar18,&pstr->cur_state)" identifier = (call_expression "rpl_mbrtowc((wchar_t *)unaff_s7,(char *)(puVar23 + (int)pstr->raw_mbs),\n                                  (size_t)prVar18,&pstr->cur_state)" identifier (argument_list "((wchar_t *)unaff_s7,(char *)(puVar23 + (int)pstr->raw_mbs),\n                                  (size_t)prVar18,&pstr->cur_state)" ( (cast_expression "(wchar_t *)unaff_s7" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)(puVar23 + (int)pstr->raw_mbs)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + (int)pstr->raw_mbs)" ( (binary_expression "puVar23 + (int)pstr->raw_mbs" identifier + (cast_expression "(int)pstr->raw_mbs" ( (type_descriptor "int" primitive_type) ) (field_expression "pstr->raw_mbs" identifier -> field_identifier))) ))) , (cast_expression "(size_t)prVar18" ( (type_descriptor "size_t" primitive_type) ) identifier) , (pointer_expression "&pstr->cur_state" & (field_expression "pstr->cur_state" identifier -> field_identifier)) )))) ;) (expression_statement "unaff_s3 = (re_node_set *)wc2;" (assignment_expression "unaff_s3 = (re_node_set *)wc2" identifier = (cast_expression "(re_node_set *)wc2" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (0xfffffffc < sVar6 - 1) {\n                if ((sVar6 == 0) || (prVar18 == (re_node_set *)0x0)) {\n                  unaff_s3 = (re_node_set *)0x0;\n                }\n                else {\n                  unaff_s3 = (re_node_set *)(uint)puVar23[(int)pstr->raw_mbs];\n                }\n                sVar6 = 1;\n                (pstr->cur_state).__count = cur_state.__count;\n                (pstr->cur_state).__value = cur_state.__value;\n              }" if (parenthesized_expression "(0xfffffffc < sVar6 - 1)" ( (binary_expression "0xfffffffc < sVar6 - 1" number_literal < (binary_expression "sVar6 - 1" identifier - number_literal)) )) (compound_statement "{\n                if ((sVar6 == 0) || (prVar18 == (re_node_set *)0x0)) {\n                  unaff_s3 = (re_node_set *)0x0;\n                }\n                else {\n                  unaff_s3 = (re_node_set *)(uint)puVar23[(int)pstr->raw_mbs];\n                }\n                sVar6 = 1;\n                (pstr->cur_state).__count = cur_state.__count;\n                (pstr->cur_state).__value = cur_state.__value;\n              }" { (if_statement "if ((sVar6 == 0) || (prVar18 == (re_node_set *)0x0)) {\n                  unaff_s3 = (re_node_set *)0x0;\n                }\n                else {\n                  unaff_s3 = (re_node_set *)(uint)puVar23[(int)pstr->raw_mbs];\n                }" if (parenthesized_expression "((sVar6 == 0) || (prVar18 == (re_node_set *)0x0))" ( (binary_expression "(sVar6 == 0) || (prVar18 == (re_node_set *)0x0)" (parenthesized_expression "(sVar6 == 0)" ( (binary_expression "sVar6 == 0" identifier == number_literal) )) || (parenthesized_expression "(prVar18 == (re_node_set *)0x0)" ( (binary_expression "prVar18 == (re_node_set *)0x0" identifier == (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                  unaff_s3 = (re_node_set *)0x0;\n                }" { (expression_statement "unaff_s3 = (re_node_set *)0x0;" (assignment_expression "unaff_s3 = (re_node_set *)0x0" identifier = (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n                  unaff_s3 = (re_node_set *)(uint)puVar23[(int)pstr->raw_mbs];\n                }" else (compound_statement "{\n                  unaff_s3 = (re_node_set *)(uint)puVar23[(int)pstr->raw_mbs];\n                }" { (expression_statement "unaff_s3 = (re_node_set *)(uint)puVar23[(int)pstr->raw_mbs];" (assignment_expression "unaff_s3 = (re_node_set *)(uint)puVar23[(int)pstr->raw_mbs]" identifier = (cast_expression "(re_node_set *)(uint)puVar23[(int)pstr->raw_mbs]" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)puVar23[(int)pstr->raw_mbs]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar23[(int)pstr->raw_mbs]" identifier [ (cast_expression "(int)pstr->raw_mbs" ( (type_descriptor "int" primitive_type) ) (field_expression "pstr->raw_mbs" identifier -> field_identifier)) ])))) ;) }))) (expression_statement "sVar6 = 1;" (assignment_expression "sVar6 = 1" identifier = number_literal) ;) (expression_statement "(pstr->cur_state).__count = cur_state.__count;" (assignment_expression "(pstr->cur_state).__count = cur_state.__count" (field_expression "(pstr->cur_state).__count" (parenthesized_expression "(pstr->cur_state)" ( (field_expression "pstr->cur_state" identifier -> field_identifier) )) . field_identifier) = (field_expression "cur_state.__count" identifier . field_identifier)) ;) (expression_statement "(pstr->cur_state).__value = cur_state.__value;" (assignment_expression "(pstr->cur_state).__value = cur_state.__value" (field_expression "(pstr->cur_state).__value" (parenthesized_expression "(pstr->cur_state)" ( (field_expression "pstr->cur_state" identifier -> field_identifier) )) . field_identifier) = (field_expression "cur_state.__value" identifier . field_identifier)) ;) })) (expression_statement "puVar23 = puVar23 + sVar6;" (assignment_expression "puVar23 = puVar23 + sVar6" identifier = (binary_expression "puVar23 + sVar6" identifier + identifier)) ;) }) while (parenthesized_expression "((int)puVar23 < idx)" ( (binary_expression "(int)puVar23 < idx" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) (expression_statement "unaff_s8 = (re_node_set *)(puVar23 + -idx);" (assignment_expression "unaff_s8 = (re_node_set *)(puVar23 + -idx)" identifier = (cast_expression "(re_node_set *)(puVar23 + -idx)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + -idx)" ( (binary_expression "puVar23 + -idx" identifier + (unary_expression "-idx" - identifier)) )))) ;) (expression_statement "pstr->valid_len = (Idx)unaff_s8;" (assignment_expression "pstr->valid_len = (Idx)unaff_s8" (field_expression "pstr->valid_len" identifier -> field_identifier) = (cast_expression "(Idx)unaff_s8" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (if_statement "if (unaff_s3 != (re_node_set *)0xffffffff) goto LAB_0001d2a4;" if (parenthesized_expression "(unaff_s3 != (re_node_set *)0xffffffff)" ( (binary_expression "unaff_s3 != (re_node_set *)0xffffffff" identifier != (cast_expression "(re_node_set *)0xffffffff" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d2a4;" goto statement_identifier ;)) }) (else_clause "else {\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n          }" else (compound_statement "{\n            unaff_s8 = (re_node_set *)(puVar23 + -idx);\n            pstr->valid_len = (Idx)unaff_s8;\n          }" { (expression_statement "unaff_s8 = (re_node_set *)(puVar23 + -idx);" (assignment_expression "unaff_s8 = (re_node_set *)(puVar23 + -idx)" identifier = (cast_expression "(re_node_set *)(puVar23 + -idx)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + -idx)" ( (binary_expression "puVar23 + -idx" identifier + (unary_expression "-idx" - identifier)) )))) ;) (expression_statement "pstr->valid_len = (Idx)unaff_s8;" (assignment_expression "pstr->valid_len = (Idx)unaff_s8" (field_expression "pstr->valid_len" identifier -> field_identifier) = (cast_expression "(Idx)unaff_s8" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) }))) (expression_statement "prVar28 = (re_node_set *)eflags;" (assignment_expression "prVar28 = (re_node_set *)eflags" identifier = (cast_expression "(re_node_set *)eflags" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar4 = re_string_context_at(pstr,(Idx)((int)&unaff_s2[-1].elems + 3),eflags);" (assignment_expression "uVar4 = re_string_context_at(pstr,(Idx)((int)&unaff_s2[-1].elems + 3),eflags)" identifier = (call_expression "re_string_context_at(pstr,(Idx)((int)&unaff_s2[-1].elems + 3),eflags)" identifier (argument_list "(pstr,(Idx)((int)&unaff_s2[-1].elems + 3),eflags)" ( identifier , (call_expression "(Idx)((int)&unaff_s2[-1].elems + 3)" (parenthesized_expression "(Idx)" ( identifier )) (argument_list "((int)&unaff_s2[-1].elems + 3)" ( (binary_expression "(int)&unaff_s2[-1].elems + 3" (cast_expression "(int)&unaff_s2[-1].elems" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s2[-1].elems" & (field_expression "unaff_s2[-1].elems" (subscript_expression "unaff_s2[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))) , identifier )))) ;) (expression_statement "pstr->tip_context = uVar4;" (assignment_expression "pstr->tip_context = uVar4" (field_expression "pstr->tip_context" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n          prVar18 = (re_node_set *)pstr->raw_mbs;\n          unaff_s7 = (re_node_set *)((int)&unaff_s8->alloc + (int)&prVar18->alloc);\n          prVar28 = (re_node_set *)((int)unaff_s7 + ((int)prVar44 - (int)prVar32));\n          unaff_s3 = (re_node_set *)\n                     ((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)&unaff_s7->alloc);\n          if (prVar28 <= prVar18) {\n            prVar28 = prVar18;\n          }\n          if (unaff_s3 < prVar28) goto LAB_0001d228;\n          bVar1 = *(byte *)&unaff_s3->alloc;\n          while ((bVar1 & 0xc0) == 0x80) {\n            unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n            if (unaff_s3 < prVar28) goto LAB_0001d228;\n            bVar1 = *(byte *)&unaff_s3->alloc;\n          }\n          puVar23 = pstr->trans;\n          prVar28 = (re_node_set *)((int)unaff_s7 + (pstr->len - (int)unaff_s3));\n          prVar18 = unaff_s3;\n          if (puVar23 != (uchar *)0x0) {\n            prVar26 = (re_node_set *)0x6;\n            if ((int)prVar28 < 7) {\n              prVar26 = prVar28;\n            }\n            prVar18 = (re_node_set *)buf;\n            if (0 < (int)prVar28) {\n              puVar20 = (uchar *)((int)&prVar26->alloc + (int)&unaff_s3->alloc);\n              prVar26 = (re_node_set *)((int)&prVar26->alloc + (int)&prVar18->alloc);\n              do {\n                pbVar47 = puVar20 + -1;\n                prVar26 = (re_node_set *)((int)&prVar26[-1].elems + 3);\n                puVar20 = puVar20 + -1;\n                *(uchar *)&prVar26->alloc = puVar23[*pbVar47];\n              } while (prVar18 != prVar26);\n            }\n          }\n          cur_state.__count = 0;\n          cur_state.__value.__wch = 0;\n          puVar23 = (uchar *)rpl_mbrtowc(&wc2,(char *)prVar18,(size_t)prVar28,&cur_state);\n          puVar20 = (uchar *)((int)prVar44 + ((int)unaff_s7 - (int)unaff_s3));\n          if ((puVar23 < puVar20) || ((uchar *)0xfffffffd < puVar23)) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (re_node_set *)(puVar23 + -(int)puVar20);\n          (pstr->cur_state).__count = 0;\n          (pstr->cur_state).__value.__wch = 0;\n          pstr->valid_len = (Idx)unaff_s8;\n          unaff_s3 = (re_node_set *)wc2;\n          if (wc2 == -1) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((pstr->word_ops_used == '\0') ||\n             ((iVar29 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar29 == 0 &&\n              (unaff_s3 != (re_node_set *)0x5f)))) {\n            uVar4 = 2;\n            if (unaff_s3 == (re_node_set *)0xa) {\n              if (pstr->newline_anchor == '\0') {\n                uVar4 = 0;\n              }\n            }\n            else {\n              uVar4 = 0;\n            }\n          }\n          else {\n            uVar4 = 1;\n          }\n          pstr->tip_context = uVar4;\n        }" else (compound_statement "{\n          prVar18 = (re_node_set *)pstr->raw_mbs;\n          unaff_s7 = (re_node_set *)((int)&unaff_s8->alloc + (int)&prVar18->alloc);\n          prVar28 = (re_node_set *)((int)unaff_s7 + ((int)prVar44 - (int)prVar32));\n          unaff_s3 = (re_node_set *)\n                     ((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)&unaff_s7->alloc);\n          if (prVar28 <= prVar18) {\n            prVar28 = prVar18;\n          }\n          if (unaff_s3 < prVar28) goto LAB_0001d228;\n          bVar1 = *(byte *)&unaff_s3->alloc;\n          while ((bVar1 & 0xc0) == 0x80) {\n            unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n            if (unaff_s3 < prVar28) goto LAB_0001d228;\n            bVar1 = *(byte *)&unaff_s3->alloc;\n          }\n          puVar23 = pstr->trans;\n          prVar28 = (re_node_set *)((int)unaff_s7 + (pstr->len - (int)unaff_s3));\n          prVar18 = unaff_s3;\n          if (puVar23 != (uchar *)0x0) {\n            prVar26 = (re_node_set *)0x6;\n            if ((int)prVar28 < 7) {\n              prVar26 = prVar28;\n            }\n            prVar18 = (re_node_set *)buf;\n            if (0 < (int)prVar28) {\n              puVar20 = (uchar *)((int)&prVar26->alloc + (int)&unaff_s3->alloc);\n              prVar26 = (re_node_set *)((int)&prVar26->alloc + (int)&prVar18->alloc);\n              do {\n                pbVar47 = puVar20 + -1;\n                prVar26 = (re_node_set *)((int)&prVar26[-1].elems + 3);\n                puVar20 = puVar20 + -1;\n                *(uchar *)&prVar26->alloc = puVar23[*pbVar47];\n              } while (prVar18 != prVar26);\n            }\n          }\n          cur_state.__count = 0;\n          cur_state.__value.__wch = 0;\n          puVar23 = (uchar *)rpl_mbrtowc(&wc2,(char *)prVar18,(size_t)prVar28,&cur_state);\n          puVar20 = (uchar *)((int)prVar44 + ((int)unaff_s7 - (int)unaff_s3));\n          if ((puVar23 < puVar20) || ((uchar *)0xfffffffd < puVar23)) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (re_node_set *)(puVar23 + -(int)puVar20);\n          (pstr->cur_state).__count = 0;\n          (pstr->cur_state).__value.__wch = 0;\n          pstr->valid_len = (Idx)unaff_s8;\n          unaff_s3 = (re_node_set *)wc2;\n          if (wc2 == -1) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((pstr->word_ops_used == '\0') ||\n             ((iVar29 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar29 == 0 &&\n              (unaff_s3 != (re_node_set *)0x5f)))) {\n            uVar4 = 2;\n            if (unaff_s3 == (re_node_set *)0xa) {\n              if (pstr->newline_anchor == '\0') {\n                uVar4 = 0;\n              }\n            }\n            else {\n              uVar4 = 0;\n            }\n          }\n          else {\n            uVar4 = 1;\n          }\n          pstr->tip_context = uVar4;\n        }" { (expression_statement "prVar18 = (re_node_set *)pstr->raw_mbs;" (assignment_expression "prVar18 = (re_node_set *)pstr->raw_mbs" identifier = (cast_expression "(re_node_set *)pstr->raw_mbs" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pstr->raw_mbs" identifier -> field_identifier))) ;) (expression_statement "unaff_s7 = (re_node_set *)((int)&unaff_s8->alloc + (int)&prVar18->alloc);" (assignment_expression "unaff_s7 = (re_node_set *)((int)&unaff_s8->alloc + (int)&prVar18->alloc)" identifier = (cast_expression "(re_node_set *)((int)&unaff_s8->alloc + (int)&prVar18->alloc)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s8->alloc + (int)&prVar18->alloc)" ( (binary_expression "(int)&unaff_s8->alloc + (int)&prVar18->alloc" (cast_expression "(int)&unaff_s8->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s8->alloc" & (field_expression "unaff_s8->alloc" identifier -> field_identifier))) + (cast_expression "(int)&prVar18->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar18->alloc" & (field_expression "prVar18->alloc" identifier -> field_identifier)))) )))) ;) (expression_statement "prVar28 = (re_node_set *)((int)unaff_s7 + ((int)prVar44 - (int)prVar32));" (assignment_expression "prVar28 = (re_node_set *)((int)unaff_s7 + ((int)prVar44 - (int)prVar32))" identifier = (cast_expression "(re_node_set *)((int)unaff_s7 + ((int)prVar44 - (int)prVar32))" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s7 + ((int)prVar44 - (int)prVar32))" ( (binary_expression "(int)unaff_s7 + ((int)prVar44 - (int)prVar32)" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)prVar44 - (int)prVar32)" ( (binary_expression "(int)prVar44 - (int)prVar32" (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)prVar32" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "unaff_s3 = (re_node_set *)\n                     ((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)&unaff_s7->alloc);" (assignment_expression "unaff_s3 = (re_node_set *)\n                     ((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)&unaff_s7->alloc)" identifier = (cast_expression "(re_node_set *)\n                     ((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)&unaff_s7->alloc)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)&unaff_s7->alloc)" ( (binary_expression "(undefined1 *)((int)&prVar44[-1].elems + 3) + (int)&unaff_s7->alloc" (cast_expression "(undefined1 *)((int)&prVar44[-1].elems + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar44[-1].elems + 3)" ( (binary_expression "(int)&prVar44[-1].elems + 3" (cast_expression "(int)&prVar44[-1].elems" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar44[-1].elems" & (field_expression "prVar44[-1].elems" (subscript_expression "prVar44[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))) + (cast_expression "(int)&unaff_s7->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s7->alloc" & (field_expression "unaff_s7->alloc" identifier -> field_identifier)))) )))) ;) (if_statement "if (prVar28 <= prVar18) {\n            prVar28 = prVar18;\n          }" if (parenthesized_expression "(prVar28 <= prVar18)" ( (binary_expression "prVar28 <= prVar18" identifier <= identifier) )) (compound_statement "{\n            prVar28 = prVar18;\n          }" { (expression_statement "prVar28 = prVar18;" (assignment_expression "prVar28 = prVar18" identifier = identifier) ;) })) (if_statement "if (unaff_s3 < prVar28) goto LAB_0001d228;" if (parenthesized_expression "(unaff_s3 < prVar28)" ( (binary_expression "unaff_s3 < prVar28" identifier < identifier) )) (goto_statement "goto LAB_0001d228;" goto statement_identifier ;)) (expression_statement "bVar1 = *(byte *)&unaff_s3->alloc;" (assignment_expression "bVar1 = *(byte *)&unaff_s3->alloc" identifier = (pointer_expression "*(byte *)&unaff_s3->alloc" * (cast_expression "(byte *)&unaff_s3->alloc" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&unaff_s3->alloc" & (field_expression "unaff_s3->alloc" identifier -> field_identifier))))) ;) (while_statement "while ((bVar1 & 0xc0) == 0x80) {\n            unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n            if (unaff_s3 < prVar28) goto LAB_0001d228;\n            bVar1 = *(byte *)&unaff_s3->alloc;\n          }" while (parenthesized_expression "((bVar1 & 0xc0) == 0x80)" ( (binary_expression "(bVar1 & 0xc0) == 0x80" (parenthesized_expression "(bVar1 & 0xc0)" ( (binary_expression "bVar1 & 0xc0" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);\n            if (unaff_s3 < prVar28) goto LAB_0001d228;\n            bVar1 = *(byte *)&unaff_s3->alloc;\n          }" { (expression_statement "unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3);" (assignment_expression "unaff_s3 = (re_node_set *)((int)&unaff_s3[-1].elems + 3)" identifier = (cast_expression "(re_node_set *)((int)&unaff_s3[-1].elems + 3)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s3[-1].elems + 3)" ( (binary_expression "(int)&unaff_s3[-1].elems + 3" (cast_expression "(int)&unaff_s3[-1].elems" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s3[-1].elems" & (field_expression "unaff_s3[-1].elems" (subscript_expression "unaff_s3[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (unaff_s3 < prVar28) goto LAB_0001d228;" if (parenthesized_expression "(unaff_s3 < prVar28)" ( (binary_expression "unaff_s3 < prVar28" identifier < identifier) )) (goto_statement "goto LAB_0001d228;" goto statement_identifier ;)) (expression_statement "bVar1 = *(byte *)&unaff_s3->alloc;" (assignment_expression "bVar1 = *(byte *)&unaff_s3->alloc" identifier = (pointer_expression "*(byte *)&unaff_s3->alloc" * (cast_expression "(byte *)&unaff_s3->alloc" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&unaff_s3->alloc" & (field_expression "unaff_s3->alloc" identifier -> field_identifier))))) ;) })) (expression_statement "puVar23 = pstr->trans;" (assignment_expression "puVar23 = pstr->trans" identifier = (field_expression "pstr->trans" identifier -> field_identifier)) ;) (expression_statement "prVar28 = (re_node_set *)((int)unaff_s7 + (pstr->len - (int)unaff_s3));" (assignment_expression "prVar28 = (re_node_set *)((int)unaff_s7 + (pstr->len - (int)unaff_s3))" identifier = (cast_expression "(re_node_set *)((int)unaff_s7 + (pstr->len - (int)unaff_s3))" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s7 + (pstr->len - (int)unaff_s3))" ( (binary_expression "(int)unaff_s7 + (pstr->len - (int)unaff_s3)" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(pstr->len - (int)unaff_s3)" ( (binary_expression "pstr->len - (int)unaff_s3" (field_expression "pstr->len" identifier -> field_identifier) - (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "prVar18 = unaff_s3;" (assignment_expression "prVar18 = unaff_s3" identifier = identifier) ;) (if_statement "if (puVar23 != (uchar *)0x0) {\n            prVar26 = (re_node_set *)0x6;\n            if ((int)prVar28 < 7) {\n              prVar26 = prVar28;\n            }\n            prVar18 = (re_node_set *)buf;\n            if (0 < (int)prVar28) {\n              puVar20 = (uchar *)((int)&prVar26->alloc + (int)&unaff_s3->alloc);\n              prVar26 = (re_node_set *)((int)&prVar26->alloc + (int)&prVar18->alloc);\n              do {\n                pbVar47 = puVar20 + -1;\n                prVar26 = (re_node_set *)((int)&prVar26[-1].elems + 3);\n                puVar20 = puVar20 + -1;\n                *(uchar *)&prVar26->alloc = puVar23[*pbVar47];\n              } while (prVar18 != prVar26);\n            }\n          }" if (parenthesized_expression "(puVar23 != (uchar *)0x0)" ( (binary_expression "puVar23 != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            prVar26 = (re_node_set *)0x6;\n            if ((int)prVar28 < 7) {\n              prVar26 = prVar28;\n            }\n            prVar18 = (re_node_set *)buf;\n            if (0 < (int)prVar28) {\n              puVar20 = (uchar *)((int)&prVar26->alloc + (int)&unaff_s3->alloc);\n              prVar26 = (re_node_set *)((int)&prVar26->alloc + (int)&prVar18->alloc);\n              do {\n                pbVar47 = puVar20 + -1;\n                prVar26 = (re_node_set *)((int)&prVar26[-1].elems + 3);\n                puVar20 = puVar20 + -1;\n                *(uchar *)&prVar26->alloc = puVar23[*pbVar47];\n              } while (prVar18 != prVar26);\n            }\n          }" { (expression_statement "prVar26 = (re_node_set *)0x6;" (assignment_expression "prVar26 = (re_node_set *)0x6" identifier = (cast_expression "(re_node_set *)0x6" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((int)prVar28 < 7) {\n              prVar26 = prVar28;\n            }" if (parenthesized_expression "((int)prVar28 < 7)" ( (binary_expression "(int)prVar28 < 7" (cast_expression "(int)prVar28" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n              prVar26 = prVar28;\n            }" { (expression_statement "prVar26 = prVar28;" (assignment_expression "prVar26 = prVar28" identifier = identifier) ;) })) (expression_statement "prVar18 = (re_node_set *)buf;" (assignment_expression "prVar18 = (re_node_set *)buf" identifier = (cast_expression "(re_node_set *)buf" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (0 < (int)prVar28) {\n              puVar20 = (uchar *)((int)&prVar26->alloc + (int)&unaff_s3->alloc);\n              prVar26 = (re_node_set *)((int)&prVar26->alloc + (int)&prVar18->alloc);\n              do {\n                pbVar47 = puVar20 + -1;\n                prVar26 = (re_node_set *)((int)&prVar26[-1].elems + 3);\n                puVar20 = puVar20 + -1;\n                *(uchar *)&prVar26->alloc = puVar23[*pbVar47];\n              } while (prVar18 != prVar26);\n            }" if (parenthesized_expression "(0 < (int)prVar28)" ( (binary_expression "0 < (int)prVar28" number_literal < (cast_expression "(int)prVar28" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              puVar20 = (uchar *)((int)&prVar26->alloc + (int)&unaff_s3->alloc);\n              prVar26 = (re_node_set *)((int)&prVar26->alloc + (int)&prVar18->alloc);\n              do {\n                pbVar47 = puVar20 + -1;\n                prVar26 = (re_node_set *)((int)&prVar26[-1].elems + 3);\n                puVar20 = puVar20 + -1;\n                *(uchar *)&prVar26->alloc = puVar23[*pbVar47];\n              } while (prVar18 != prVar26);\n            }" { (expression_statement "puVar20 = (uchar *)((int)&prVar26->alloc + (int)&unaff_s3->alloc);" (assignment_expression "puVar20 = (uchar *)((int)&prVar26->alloc + (int)&unaff_s3->alloc)" identifier = (cast_expression "(uchar *)((int)&prVar26->alloc + (int)&unaff_s3->alloc)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar26->alloc + (int)&unaff_s3->alloc)" ( (binary_expression "(int)&prVar26->alloc + (int)&unaff_s3->alloc" (cast_expression "(int)&prVar26->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar26->alloc" & (field_expression "prVar26->alloc" identifier -> field_identifier))) + (cast_expression "(int)&unaff_s3->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s3->alloc" & (field_expression "unaff_s3->alloc" identifier -> field_identifier)))) )))) ;) (expression_statement "prVar26 = (re_node_set *)((int)&prVar26->alloc + (int)&prVar18->alloc);" (assignment_expression "prVar26 = (re_node_set *)((int)&prVar26->alloc + (int)&prVar18->alloc)" identifier = (cast_expression "(re_node_set *)((int)&prVar26->alloc + (int)&prVar18->alloc)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar26->alloc + (int)&prVar18->alloc)" ( (binary_expression "(int)&prVar26->alloc + (int)&prVar18->alloc" (cast_expression "(int)&prVar26->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar26->alloc" & (field_expression "prVar26->alloc" identifier -> field_identifier))) + (cast_expression "(int)&prVar18->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar18->alloc" & (field_expression "prVar18->alloc" identifier -> field_identifier)))) )))) ;) (do_statement "do {\n                pbVar47 = puVar20 + -1;\n                prVar26 = (re_node_set *)((int)&prVar26[-1].elems + 3);\n                puVar20 = puVar20 + -1;\n                *(uchar *)&prVar26->alloc = puVar23[*pbVar47];\n              } while (prVar18 != prVar26);" do (compound_statement "{\n                pbVar47 = puVar20 + -1;\n                prVar26 = (re_node_set *)((int)&prVar26[-1].elems + 3);\n                puVar20 = puVar20 + -1;\n                *(uchar *)&prVar26->alloc = puVar23[*pbVar47];\n              }" { (expression_statement "pbVar47 = puVar20 + -1;" (assignment_expression "pbVar47 = puVar20 + -1" identifier = (binary_expression "puVar20 + -1" identifier + number_literal)) ;) (expression_statement "prVar26 = (re_node_set *)((int)&prVar26[-1].elems + 3);" (assignment_expression "prVar26 = (re_node_set *)((int)&prVar26[-1].elems + 3)" identifier = (cast_expression "(re_node_set *)((int)&prVar26[-1].elems + 3)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar26[-1].elems + 3)" ( (binary_expression "(int)&prVar26[-1].elems + 3" (cast_expression "(int)&prVar26[-1].elems" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar26[-1].elems" & (field_expression "prVar26[-1].elems" (subscript_expression "prVar26[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "puVar20 = puVar20 + -1;" (assignment_expression "puVar20 = puVar20 + -1" identifier = (binary_expression "puVar20 + -1" identifier + number_literal)) ;) (expression_statement "*(uchar *)&prVar26->alloc = puVar23[*pbVar47];" (assignment_expression "*(uchar *)&prVar26->alloc = puVar23[*pbVar47]" (pointer_expression "*(uchar *)&prVar26->alloc" * (cast_expression "(uchar *)&prVar26->alloc" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar26->alloc" & (field_expression "prVar26->alloc" identifier -> field_identifier)))) = (subscript_expression "puVar23[*pbVar47]" identifier [ (pointer_expression "*pbVar47" * identifier) ])) ;) }) while (parenthesized_expression "(prVar18 != prVar26)" ( (binary_expression "prVar18 != prVar26" identifier != identifier) )) ;) })) })) (expression_statement "cur_state.__count = 0;" (assignment_expression "cur_state.__count = 0" (field_expression "cur_state.__count" identifier . field_identifier) = number_literal) ;) (expression_statement "cur_state.__value.__wch = 0;" (assignment_expression "cur_state.__value.__wch = 0" (field_expression "cur_state.__value.__wch" (field_expression "cur_state.__value" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "puVar23 = (uchar *)rpl_mbrtowc(&wc2,(char *)prVar18,(size_t)prVar28,&cur_state);" (assignment_expression "puVar23 = (uchar *)rpl_mbrtowc(&wc2,(char *)prVar18,(size_t)prVar28,&cur_state)" identifier = (cast_expression "(uchar *)rpl_mbrtowc(&wc2,(char *)prVar18,(size_t)prVar28,&cur_state)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "rpl_mbrtowc(&wc2,(char *)prVar18,(size_t)prVar28,&cur_state)" identifier (argument_list "(&wc2,(char *)prVar18,(size_t)prVar28,&cur_state)" ( (pointer_expression "&wc2" & identifier) , (cast_expression "(char *)prVar18" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(size_t)prVar28" ( (type_descriptor "size_t" primitive_type) ) identifier) , (pointer_expression "&cur_state" & identifier) ))))) ;) (expression_statement "puVar20 = (uchar *)((int)prVar44 + ((int)unaff_s7 - (int)unaff_s3));" (assignment_expression "puVar20 = (uchar *)((int)prVar44 + ((int)unaff_s7 - (int)unaff_s3))" identifier = (cast_expression "(uchar *)((int)prVar44 + ((int)unaff_s7 - (int)unaff_s3))" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)prVar44 + ((int)unaff_s7 - (int)unaff_s3))" ( (binary_expression "(int)prVar44 + ((int)unaff_s7 - (int)unaff_s3)" (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)unaff_s7 - (int)unaff_s3)" ( (binary_expression "(int)unaff_s7 - (int)unaff_s3" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (if_statement "if ((puVar23 < puVar20) || ((uchar *)0xfffffffd < puVar23)) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }" if (parenthesized_expression "((puVar23 < puVar20) || ((uchar *)0xfffffffd < puVar23))" ( (binary_expression "(puVar23 < puVar20) || ((uchar *)0xfffffffd < puVar23)" (parenthesized_expression "(puVar23 < puVar20)" ( (binary_expression "puVar23 < puVar20" identifier < identifier) )) || (parenthesized_expression "((uchar *)0xfffffffd < puVar23)" ( (binary_expression "(uchar *)0xfffffffd < puVar23" (cast_expression "(uchar *)0xfffffffd" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) ))) )) (compound_statement "{\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }" { (expression_statement "unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;" (assignment_expression "unaff_s8 = (re_node_set *)pstr->raw_mbs_idx" identifier = (cast_expression "(re_node_set *)pstr->raw_mbs_idx" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pstr->raw_mbs_idx" identifier -> field_identifier))) ;) (expression_statement "iVar29 = pstr->valid_raw_len;" (assignment_expression "iVar29 = pstr->valid_raw_len" identifier = (field_expression "pstr->valid_raw_len" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0001d228;" goto statement_identifier ;) })) (expression_statement "unaff_s8 = (re_node_set *)(puVar23 + -(int)puVar20);" (assignment_expression "unaff_s8 = (re_node_set *)(puVar23 + -(int)puVar20)" identifier = (cast_expression "(re_node_set *)(puVar23 + -(int)puVar20)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + -(int)puVar20)" ( (binary_expression "puVar23 + -(int)puVar20" identifier + (unary_expression "-(int)puVar20" - (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (expression_statement "(pstr->cur_state).__count = 0;" (assignment_expression "(pstr->cur_state).__count = 0" (field_expression "(pstr->cur_state).__count" (parenthesized_expression "(pstr->cur_state)" ( (field_expression "pstr->cur_state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(pstr->cur_state).__value.__wch = 0;" (assignment_expression "(pstr->cur_state).__value.__wch = 0" (field_expression "(pstr->cur_state).__value.__wch" (field_expression "(pstr->cur_state).__value" (parenthesized_expression "(pstr->cur_state)" ( (field_expression "pstr->cur_state" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "pstr->valid_len = (Idx)unaff_s8;" (assignment_expression "pstr->valid_len = (Idx)unaff_s8" (field_expression "pstr->valid_len" identifier -> field_identifier) = (cast_expression "(Idx)unaff_s8" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "unaff_s3 = (re_node_set *)wc2;" (assignment_expression "unaff_s3 = (re_node_set *)wc2" identifier = (cast_expression "(re_node_set *)wc2" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (wc2 == -1) {\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }" if (parenthesized_expression "(wc2 == -1)" ( (binary_expression "wc2 == -1" identifier == number_literal) )) (compound_statement "{\n            unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;\n            iVar29 = pstr->valid_raw_len;\n            goto LAB_0001d228;\n          }" { (expression_statement "unaff_s8 = (re_node_set *)pstr->raw_mbs_idx;" (assignment_expression "unaff_s8 = (re_node_set *)pstr->raw_mbs_idx" identifier = (cast_expression "(re_node_set *)pstr->raw_mbs_idx" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pstr->raw_mbs_idx" identifier -> field_identifier))) ;) (expression_statement "iVar29 = pstr->valid_raw_len;" (assignment_expression "iVar29 = pstr->valid_raw_len" identifier = (field_expression "pstr->valid_raw_len" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0001d228;" goto statement_identifier ;) })) (labeled_statement "LAB_0001d2a4:\n          if ((pstr->word_ops_used == '\0') ||\n             ((iVar29 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar29 == 0 &&\n              (unaff_s3 != (re_node_set *)0x5f)))) {\n            uVar4 = 2;\n            if (unaff_s3 == (re_node_set *)0xa) {\n              if (pstr->newline_anchor == '\0') {\n                uVar4 = 0;\n              }\n            }\n            else {\n              uVar4 = 0;\n            }\n          }\n          else {\n            uVar4 = 1;\n          }" statement_identifier : (if_statement "if ((pstr->word_ops_used == '\0') ||\n             ((iVar29 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar29 == 0 &&\n              (unaff_s3 != (re_node_set *)0x5f)))) {\n            uVar4 = 2;\n            if (unaff_s3 == (re_node_set *)0xa) {\n              if (pstr->newline_anchor == '\0') {\n                uVar4 = 0;\n              }\n            }\n            else {\n              uVar4 = 0;\n            }\n          }\n          else {\n            uVar4 = 1;\n          }" if (parenthesized_expression "((pstr->word_ops_used == '\0') ||\n             ((iVar29 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar29 == 0 &&\n              (unaff_s3 != (re_node_set *)0x5f))))" ( (binary_expression "(pstr->word_ops_used == '\0') ||\n             ((iVar29 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar29 == 0 &&\n              (unaff_s3 != (re_node_set *)0x5f)))" (parenthesized_expression "(pstr->word_ops_used == '\0')" ( (binary_expression "pstr->word_ops_used == '\0'" (field_expression "pstr->word_ops_used" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "((iVar29 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar29 == 0 &&\n              (unaff_s3 != (re_node_set *)0x5f)))" ( (parenthesized_expression "(iVar29 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar29 == 0 &&\n              (unaff_s3 != (re_node_set *)0x5f))" ( (comma_expression "iVar29 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar29 == 0 &&\n              (unaff_s3 != (re_node_set *)0x5f)" (assignment_expression "iVar29 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3)" identifier = (call_expression "(*(code *)PTR_iswalnum_0003c288)(unaff_s3)" (parenthesized_expression "(*(code *)PTR_iswalnum_0003c288)" ( (pointer_expression "*(code *)PTR_iswalnum_0003c288" * (cast_expression "(code *)PTR_iswalnum_0003c288" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s3)" ( identifier )))) , (binary_expression "iVar29 == 0 &&\n              (unaff_s3 != (re_node_set *)0x5f)" (binary_expression "iVar29 == 0" identifier == number_literal) && (parenthesized_expression "(unaff_s3 != (re_node_set *)0x5f)" ( (binary_expression "unaff_s3 != (re_node_set *)0x5f" identifier != (cast_expression "(re_node_set *)0x5f" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) )) ))) )) (compound_statement "{\n            uVar4 = 2;\n            if (unaff_s3 == (re_node_set *)0xa) {\n              if (pstr->newline_anchor == '\0') {\n                uVar4 = 0;\n              }\n            }\n            else {\n              uVar4 = 0;\n            }\n          }" { (expression_statement "uVar4 = 2;" (assignment_expression "uVar4 = 2" identifier = number_literal) ;) (if_statement "if (unaff_s3 == (re_node_set *)0xa) {\n              if (pstr->newline_anchor == '\0') {\n                uVar4 = 0;\n              }\n            }\n            else {\n              uVar4 = 0;\n            }" if (parenthesized_expression "(unaff_s3 == (re_node_set *)0xa)" ( (binary_expression "unaff_s3 == (re_node_set *)0xa" identifier == (cast_expression "(re_node_set *)0xa" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (pstr->newline_anchor == '\0') {\n                uVar4 = 0;\n              }\n            }" { (if_statement "if (pstr->newline_anchor == '\0') {\n                uVar4 = 0;\n              }" if (parenthesized_expression "(pstr->newline_anchor == '\0')" ( (binary_expression "pstr->newline_anchor == '\0'" (field_expression "pstr->newline_anchor" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                uVar4 = 0;\n              }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n              uVar4 = 0;\n            }" else (compound_statement "{\n              uVar4 = 0;\n            }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n            uVar4 = 1;\n          }" else (compound_statement "{\n            uVar4 = 1;\n          }" { (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;) })))) (expression_statement "pstr->tip_context = uVar4;" (assignment_expression "pstr->tip_context = uVar4" (field_expression "pstr->tip_context" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "prVar18 = prVar28;" (assignment_expression "prVar18 = prVar28" identifier = identifier) ;) (if_statement "if (unaff_s8 == (re_node_set *)0x0) {\nLAB_0001d2cc:\n          uVar16 = pstr->mbs_allocated;\n          prVar28 = prVar18;\n        }\n        else {\n          iVar29 = 0;\n          prVar18 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            pwVar19 = pstr->wcs;\n            do {\n              *pwVar19 = 0xffffffff;\n              iVar29 = iVar29 + 1;\n              prVar18 = (re_node_set *)pstr->valid_len;\n              pwVar19 = pwVar19 + 1;\n            } while (iVar29 < (int)prVar18);\n          }\n          if (pstr->mbs_allocated != '\0') {\n            (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n            unaff_s8 = (re_node_set *)pstr->valid_len;\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (re_node_set *)pstr->valid_len;\n          uVar16 = '\0';\n        }" if (parenthesized_expression "(unaff_s8 == (re_node_set *)0x0)" ( (binary_expression "unaff_s8 == (re_node_set *)0x0" identifier == (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0001d2cc:\n          uVar16 = pstr->mbs_allocated;\n          prVar28 = prVar18;\n        }" { (labeled_statement "LAB_0001d2cc:\n          uVar16 = pstr->mbs_allocated;" statement_identifier : (expression_statement "uVar16 = pstr->mbs_allocated;" (assignment_expression "uVar16 = pstr->mbs_allocated" identifier = (field_expression "pstr->mbs_allocated" identifier -> field_identifier)) ;)) (expression_statement "prVar28 = prVar18;" (assignment_expression "prVar28 = prVar18" identifier = identifier) ;) }) (else_clause "else {\n          iVar29 = 0;\n          prVar18 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            pwVar19 = pstr->wcs;\n            do {\n              *pwVar19 = 0xffffffff;\n              iVar29 = iVar29 + 1;\n              prVar18 = (re_node_set *)pstr->valid_len;\n              pwVar19 = pwVar19 + 1;\n            } while (iVar29 < (int)prVar18);\n          }\n          if (pstr->mbs_allocated != '\0') {\n            (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n            unaff_s8 = (re_node_set *)pstr->valid_len;\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (re_node_set *)pstr->valid_len;\n          uVar16 = '\0';\n        }" else (compound_statement "{\n          iVar29 = 0;\n          prVar18 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            pwVar19 = pstr->wcs;\n            do {\n              *pwVar19 = 0xffffffff;\n              iVar29 = iVar29 + 1;\n              prVar18 = (re_node_set *)pstr->valid_len;\n              pwVar19 = pwVar19 + 1;\n            } while (iVar29 < (int)prVar18);\n          }\n          if (pstr->mbs_allocated != '\0') {\n            (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n            unaff_s8 = (re_node_set *)pstr->valid_len;\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (re_node_set *)pstr->valid_len;\n          uVar16 = '\0';\n        }" { (expression_statement "iVar29 = 0;" (assignment_expression "iVar29 = 0" identifier = number_literal) ;) (expression_statement "prVar18 = unaff_s8;" (assignment_expression "prVar18 = unaff_s8" identifier = identifier) ;) (if_statement "if (0 < (int)unaff_s8) {\n            pwVar19 = pstr->wcs;\n            do {\n              *pwVar19 = 0xffffffff;\n              iVar29 = iVar29 + 1;\n              prVar18 = (re_node_set *)pstr->valid_len;\n              pwVar19 = pwVar19 + 1;\n            } while (iVar29 < (int)prVar18);\n          }" if (parenthesized_expression "(0 < (int)unaff_s8)" ( (binary_expression "0 < (int)unaff_s8" number_literal < (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            pwVar19 = pstr->wcs;\n            do {\n              *pwVar19 = 0xffffffff;\n              iVar29 = iVar29 + 1;\n              prVar18 = (re_node_set *)pstr->valid_len;\n              pwVar19 = pwVar19 + 1;\n            } while (iVar29 < (int)prVar18);\n          }" { (expression_statement "pwVar19 = pstr->wcs;" (assignment_expression "pwVar19 = pstr->wcs" identifier = (field_expression "pstr->wcs" identifier -> field_identifier)) ;) (do_statement "do {\n              *pwVar19 = 0xffffffff;\n              iVar29 = iVar29 + 1;\n              prVar18 = (re_node_set *)pstr->valid_len;\n              pwVar19 = pwVar19 + 1;\n            } while (iVar29 < (int)prVar18);" do (compound_statement "{\n              *pwVar19 = 0xffffffff;\n              iVar29 = iVar29 + 1;\n              prVar18 = (re_node_set *)pstr->valid_len;\n              pwVar19 = pwVar19 + 1;\n            }" { (expression_statement "*pwVar19 = 0xffffffff;" (assignment_expression "*pwVar19 = 0xffffffff" (pointer_expression "*pwVar19" * identifier) = number_literal) ;) (expression_statement "iVar29 = iVar29 + 1;" (assignment_expression "iVar29 = iVar29 + 1" identifier = (binary_expression "iVar29 + 1" identifier + number_literal)) ;) (expression_statement "prVar18 = (re_node_set *)pstr->valid_len;" (assignment_expression "prVar18 = (re_node_set *)pstr->valid_len" identifier = (cast_expression "(re_node_set *)pstr->valid_len" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pstr->valid_len" identifier -> field_identifier))) ;) (expression_statement "pwVar19 = pwVar19 + 1;" (assignment_expression "pwVar19 = pwVar19 + 1" identifier = (binary_expression "pwVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar29 < (int)prVar18)" ( (binary_expression "iVar29 < (int)prVar18" identifier < (cast_expression "(int)prVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (if_statement "if (pstr->mbs_allocated != '\0') {\n            (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n            unaff_s8 = (re_node_set *)pstr->valid_len;\n            goto LAB_0001d2cc;\n          }" if (parenthesized_expression "(pstr->mbs_allocated != '\0')" ( (binary_expression "pstr->mbs_allocated != '\0'" (field_expression "pstr->mbs_allocated" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            (*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);\n            unaff_s8 = (re_node_set *)pstr->valid_len;\n            goto LAB_0001d2cc;\n          }" { (expression_statement "(*(code *)PTR_memset_0003c290)(pstr->mbs,0xff);" (call_expression "(*(code *)PTR_memset_0003c290)(pstr->mbs,0xff)" (parenthesized_expression "(*(code *)PTR_memset_0003c290)" ( (pointer_expression "*(code *)PTR_memset_0003c290" * (cast_expression "(code *)PTR_memset_0003c290" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pstr->mbs,0xff)" ( (field_expression "pstr->mbs" identifier -> field_identifier) , number_literal ))) ;) (expression_statement "unaff_s8 = (re_node_set *)pstr->valid_len;" (assignment_expression "unaff_s8 = (re_node_set *)pstr->valid_len" identifier = (cast_expression "(re_node_set *)pstr->valid_len" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pstr->valid_len" identifier -> field_identifier))) ;) (goto_statement "goto LAB_0001d2cc;" goto statement_identifier ;) })) (expression_statement "unaff_s8 = (re_node_set *)pstr->valid_len;" (assignment_expression "unaff_s8 = (re_node_set *)pstr->valid_len" identifier = (cast_expression "(re_node_set *)pstr->valid_len" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pstr->valid_len" identifier -> field_identifier))) ;) (expression_statement "uVar16 = '\0';" (assignment_expression "uVar16 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (expression_statement "prVar32 = (re_node_set *)pstr->mb_cur_max;" (assignment_expression "prVar32 = (re_node_set *)pstr->mb_cur_max" identifier = (cast_expression "(re_node_set *)pstr->mb_cur_max" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pstr->mb_cur_max" identifier -> field_identifier))) ;) (expression_statement "pstr->valid_raw_len = (Idx)unaff_s8;" (assignment_expression "pstr->valid_raw_len = (Idx)unaff_s8" (field_expression "pstr->valid_raw_len" identifier -> field_identifier) = (cast_expression "(Idx)unaff_s8" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "prVar18 = (re_node_set *)(pstr->len - (int)prVar44);" (assignment_expression "prVar18 = (re_node_set *)(pstr->len - (int)prVar44)" identifier = (cast_expression "(re_node_set *)(pstr->len - (int)prVar44)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pstr->len - (int)prVar44)" ( (binary_expression "pstr->len - (int)prVar44" (field_expression "pstr->len" identifier -> field_identifier) - (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "IVar22 = pstr->stop - (int)prVar44;" (assignment_expression "IVar22 = pstr->stop - (int)prVar44" identifier = (binary_expression "pstr->stop - (int)prVar44" (field_expression "pstr->stop" identifier -> field_identifier) - (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (goto_statement "goto LAB_0001d090;" goto statement_identifier ;) })) (expression_statement "uVar4 = (uint)(byte)((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)pstr->raw_mbs)\n                          [(int)unaff_s8];" (assignment_expression "uVar4 = (uint)(byte)((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)pstr->raw_mbs)\n                          [(int)unaff_s8]" identifier = (subscript_expression "(uint)(byte)((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)pstr->raw_mbs)\n                          [(int)unaff_s8]" (call_expression "(uint)(byte)((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)pstr->raw_mbs)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "((undefined1 *)((int)&prVar44[-1].elems + 3) + (int)pstr->raw_mbs)" ( (binary_expression "(undefined1 *)((int)&prVar44[-1].elems + 3) + (int)pstr->raw_mbs" (cast_expression "(undefined1 *)((int)&prVar44[-1].elems + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar44[-1].elems + 3)" ( (binary_expression "(int)&prVar44[-1].elems + 3" (cast_expression "(int)&prVar44[-1].elems" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar44[-1].elems" & (field_expression "prVar44[-1].elems" (subscript_expression "prVar44[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))) + (cast_expression "(int)pstr->raw_mbs" ( (type_descriptor "int" primitive_type) ) (field_expression "pstr->raw_mbs" identifier -> field_identifier))) ))) [ (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) (expression_statement "pstr->valid_raw_len = 0;" (assignment_expression "pstr->valid_raw_len = 0" (field_expression "pstr->valid_raw_len" identifier -> field_identifier) = number_literal) ;) (if_statement "if (pstr->trans != (uchar *)0x0) {\n        uVar4 = (uint)pstr->trans[uVar4];\n      }" if (parenthesized_expression "(pstr->trans != (uchar *)0x0)" ( (binary_expression "pstr->trans != (uchar *)0x0" (field_expression "pstr->trans" identifier -> field_identifier) != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar4 = (uint)pstr->trans[uVar4];\n      }" { (expression_statement "uVar4 = (uint)pstr->trans[uVar4];" (assignment_expression "uVar4 = (uint)pstr->trans[uVar4]" identifier = (cast_expression "(uint)pstr->trans[uVar4]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pstr->trans[uVar4]" (field_expression "pstr->trans" identifier -> field_identifier) [ identifier ]))) ;) })) (expression_statement "prVar28 = (re_node_set *)(pstr->word_char[(int)uVar4 >> 5] >> (uVar4 & 0x1f) & 1);" (assignment_expression "prVar28 = (re_node_set *)(pstr->word_char[(int)uVar4 >> 5] >> (uVar4 & 0x1f) & 1)" identifier = (cast_expression "(re_node_set *)(pstr->word_char[(int)uVar4 >> 5] >> (uVar4 & 0x1f) & 1)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pstr->word_char[(int)uVar4 >> 5] >> (uVar4 & 0x1f) & 1)" ( (binary_expression "pstr->word_char[(int)uVar4 >> 5] >> (uVar4 & 0x1f) & 1" (binary_expression "pstr->word_char[(int)uVar4 >> 5] >> (uVar4 & 0x1f)" (subscript_expression "pstr->word_char[(int)uVar4 >> 5]" (field_expression "pstr->word_char" identifier -> field_identifier) [ (binary_expression "(int)uVar4 >> 5" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ]) >> (parenthesized_expression "(uVar4 & 0x1f)" ( (binary_expression "uVar4 & 0x1f" identifier & number_literal) ))) & number_literal) )))) ;) (if_statement "if (((prVar28 == (re_node_set *)0x0) && (uVar4 == 10)) &&\n         (prVar28 = (re_node_set *)0x2, pstr->newline_anchor == '\0')) {\n        prVar28 = (re_node_set *)0x0;\n      }" if (parenthesized_expression "(((prVar28 == (re_node_set *)0x0) && (uVar4 == 10)) &&\n         (prVar28 = (re_node_set *)0x2, pstr->newline_anchor == '\0'))" ( (binary_expression "((prVar28 == (re_node_set *)0x0) && (uVar4 == 10)) &&\n         (prVar28 = (re_node_set *)0x2, pstr->newline_anchor == '\0')" (parenthesized_expression "((prVar28 == (re_node_set *)0x0) && (uVar4 == 10))" ( (binary_expression "(prVar28 == (re_node_set *)0x0) && (uVar4 == 10)" (parenthesized_expression "(prVar28 == (re_node_set *)0x0)" ( (binary_expression "prVar28 == (re_node_set *)0x0" identifier == (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(uVar4 == 10)" ( (binary_expression "uVar4 == 10" identifier == number_literal) ))) )) && (parenthesized_expression "(prVar28 = (re_node_set *)0x2, pstr->newline_anchor == '\0')" ( (comma_expression "prVar28 = (re_node_set *)0x2, pstr->newline_anchor == '\0'" (assignment_expression "prVar28 = (re_node_set *)0x2" identifier = (cast_expression "(re_node_set *)0x2" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) , (binary_expression "pstr->newline_anchor == '\0'" (field_expression "pstr->newline_anchor" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n        prVar28 = (re_node_set *)0x0;\n      }" { (expression_statement "prVar28 = (re_node_set *)0x0;" (assignment_expression "prVar28 = (re_node_set *)0x0" identifier = (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "uVar16 = pstr->mbs_allocated;" (assignment_expression "uVar16 = pstr->mbs_allocated" identifier = (field_expression "pstr->mbs_allocated" identifier -> field_identifier)) ;) (expression_statement "pstr->tip_context = (uint)prVar28;" (assignment_expression "pstr->tip_context = (uint)prVar28" (field_expression "pstr->tip_context" identifier -> field_identifier) = (cast_expression "(uint)prVar28" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "prVar18 = (re_node_set *)(pstr->len - (int)prVar44);" (assignment_expression "prVar18 = (re_node_set *)(pstr->len - (int)prVar44)" identifier = (cast_expression "(re_node_set *)(pstr->len - (int)prVar44)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pstr->len - (int)prVar44)" ( (binary_expression "pstr->len - (int)prVar44" (field_expression "pstr->len" identifier -> field_identifier) - (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "IVar22 = pstr->stop - (int)prVar44;" (assignment_expression "IVar22 = pstr->stop - (int)prVar44" identifier = (binary_expression "pstr->stop - (int)prVar44" (field_expression "pstr->stop" identifier -> field_identifier) - (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (uVar16 == '\0') goto LAB_0001d098;" if (parenthesized_expression "(uVar16 == '\0')" ( (binary_expression "uVar16 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001d098;" goto statement_identifier ;)) (expression_statement "pstr->raw_mbs_idx = idx;" (assignment_expression "pstr->raw_mbs_idx = idx" (field_expression "pstr->raw_mbs_idx" identifier -> field_identifier) = identifier) ;) (expression_statement "pstr->len = (Idx)prVar18;" (assignment_expression "pstr->len = (Idx)prVar18" (field_expression "pstr->len" identifier -> field_identifier) = (cast_expression "(Idx)prVar18" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "pstr->stop = IVar22;" (assignment_expression "pstr->stop = IVar22" (field_expression "pstr->stop" identifier -> field_identifier) = identifier) ;) }))) (if_statement "if (uVar16 == '\0') {\n      pstr->valid_len = (Idx)prVar18;\n    }\n    else if (pstr->icase == '\0') {\n      prVar26 = (re_node_set *)pstr->trans;\n      if (prVar26 != (re_node_set *)0x0) {\n        prVar28 = (re_node_set *)pstr->bufs_len;\n        prVar35 = (re_node_set *)pstr->valid_len;\n        if ((int)prVar28 <= (int)prVar18) {\n          prVar18 = prVar28;\n        }\n        if ((int)prVar35 < (int)prVar18) {\n          while( true ) {\n            prVar28 = (re_node_set *)(pstr->mbs + (int)prVar35);\n            idx = (int)&prVar35->alloc + (int)(pstr->raw_mbs + idx);\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            prVar26 = (re_node_set *)\n                      ((int)&prVar26->alloc + (uint)*(byte *)&((re_node_set *)idx)->alloc);\n            *(uchar *)&prVar28->alloc = *(uchar *)&prVar26->alloc;\n            if (prVar18 == prVar35) break;\n            idx = pstr->raw_mbs_idx;\n            prVar26 = (re_node_set *)pstr->trans;\n          }\n          pstr->valid_len = (Idx)prVar18;\n          pstr->valid_raw_len = (Idx)prVar18;\n        }\n        else {\n          pstr->valid_len = (Idx)prVar35;\n          pstr->valid_raw_len = (Idx)prVar35;\n        }\n      }\n    }\n    else {\n      build_upper_buffer(pstr);\n    }" if (parenthesized_expression "(uVar16 == '\0')" ( (binary_expression "uVar16 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pstr->valid_len = (Idx)prVar18;\n    }" { (expression_statement "pstr->valid_len = (Idx)prVar18;" (assignment_expression "pstr->valid_len = (Idx)prVar18" (field_expression "pstr->valid_len" identifier -> field_identifier) = (cast_expression "(Idx)prVar18" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) }) (else_clause "else if (pstr->icase == '\0') {\n      prVar26 = (re_node_set *)pstr->trans;\n      if (prVar26 != (re_node_set *)0x0) {\n        prVar28 = (re_node_set *)pstr->bufs_len;\n        prVar35 = (re_node_set *)pstr->valid_len;\n        if ((int)prVar28 <= (int)prVar18) {\n          prVar18 = prVar28;\n        }\n        if ((int)prVar35 < (int)prVar18) {\n          while( true ) {\n            prVar28 = (re_node_set *)(pstr->mbs + (int)prVar35);\n            idx = (int)&prVar35->alloc + (int)(pstr->raw_mbs + idx);\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            prVar26 = (re_node_set *)\n                      ((int)&prVar26->alloc + (uint)*(byte *)&((re_node_set *)idx)->alloc);\n            *(uchar *)&prVar28->alloc = *(uchar *)&prVar26->alloc;\n            if (prVar18 == prVar35) break;\n            idx = pstr->raw_mbs_idx;\n            prVar26 = (re_node_set *)pstr->trans;\n          }\n          pstr->valid_len = (Idx)prVar18;\n          pstr->valid_raw_len = (Idx)prVar18;\n        }\n        else {\n          pstr->valid_len = (Idx)prVar35;\n          pstr->valid_raw_len = (Idx)prVar35;\n        }\n      }\n    }\n    else {\n      build_upper_buffer(pstr);\n    }" else (if_statement "if (pstr->icase == '\0') {\n      prVar26 = (re_node_set *)pstr->trans;\n      if (prVar26 != (re_node_set *)0x0) {\n        prVar28 = (re_node_set *)pstr->bufs_len;\n        prVar35 = (re_node_set *)pstr->valid_len;\n        if ((int)prVar28 <= (int)prVar18) {\n          prVar18 = prVar28;\n        }\n        if ((int)prVar35 < (int)prVar18) {\n          while( true ) {\n            prVar28 = (re_node_set *)(pstr->mbs + (int)prVar35);\n            idx = (int)&prVar35->alloc + (int)(pstr->raw_mbs + idx);\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            prVar26 = (re_node_set *)\n                      ((int)&prVar26->alloc + (uint)*(byte *)&((re_node_set *)idx)->alloc);\n            *(uchar *)&prVar28->alloc = *(uchar *)&prVar26->alloc;\n            if (prVar18 == prVar35) break;\n            idx = pstr->raw_mbs_idx;\n            prVar26 = (re_node_set *)pstr->trans;\n          }\n          pstr->valid_len = (Idx)prVar18;\n          pstr->valid_raw_len = (Idx)prVar18;\n        }\n        else {\n          pstr->valid_len = (Idx)prVar35;\n          pstr->valid_raw_len = (Idx)prVar35;\n        }\n      }\n    }\n    else {\n      build_upper_buffer(pstr);\n    }" if (parenthesized_expression "(pstr->icase == '\0')" ( (binary_expression "pstr->icase == '\0'" (field_expression "pstr->icase" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      prVar26 = (re_node_set *)pstr->trans;\n      if (prVar26 != (re_node_set *)0x0) {\n        prVar28 = (re_node_set *)pstr->bufs_len;\n        prVar35 = (re_node_set *)pstr->valid_len;\n        if ((int)prVar28 <= (int)prVar18) {\n          prVar18 = prVar28;\n        }\n        if ((int)prVar35 < (int)prVar18) {\n          while( true ) {\n            prVar28 = (re_node_set *)(pstr->mbs + (int)prVar35);\n            idx = (int)&prVar35->alloc + (int)(pstr->raw_mbs + idx);\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            prVar26 = (re_node_set *)\n                      ((int)&prVar26->alloc + (uint)*(byte *)&((re_node_set *)idx)->alloc);\n            *(uchar *)&prVar28->alloc = *(uchar *)&prVar26->alloc;\n            if (prVar18 == prVar35) break;\n            idx = pstr->raw_mbs_idx;\n            prVar26 = (re_node_set *)pstr->trans;\n          }\n          pstr->valid_len = (Idx)prVar18;\n          pstr->valid_raw_len = (Idx)prVar18;\n        }\n        else {\n          pstr->valid_len = (Idx)prVar35;\n          pstr->valid_raw_len = (Idx)prVar35;\n        }\n      }\n    }" { (expression_statement "prVar26 = (re_node_set *)pstr->trans;" (assignment_expression "prVar26 = (re_node_set *)pstr->trans" identifier = (cast_expression "(re_node_set *)pstr->trans" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pstr->trans" identifier -> field_identifier))) ;) (if_statement "if (prVar26 != (re_node_set *)0x0) {\n        prVar28 = (re_node_set *)pstr->bufs_len;\n        prVar35 = (re_node_set *)pstr->valid_len;\n        if ((int)prVar28 <= (int)prVar18) {\n          prVar18 = prVar28;\n        }\n        if ((int)prVar35 < (int)prVar18) {\n          while( true ) {\n            prVar28 = (re_node_set *)(pstr->mbs + (int)prVar35);\n            idx = (int)&prVar35->alloc + (int)(pstr->raw_mbs + idx);\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            prVar26 = (re_node_set *)\n                      ((int)&prVar26->alloc + (uint)*(byte *)&((re_node_set *)idx)->alloc);\n            *(uchar *)&prVar28->alloc = *(uchar *)&prVar26->alloc;\n            if (prVar18 == prVar35) break;\n            idx = pstr->raw_mbs_idx;\n            prVar26 = (re_node_set *)pstr->trans;\n          }\n          pstr->valid_len = (Idx)prVar18;\n          pstr->valid_raw_len = (Idx)prVar18;\n        }\n        else {\n          pstr->valid_len = (Idx)prVar35;\n          pstr->valid_raw_len = (Idx)prVar35;\n        }\n      }" if (parenthesized_expression "(prVar26 != (re_node_set *)0x0)" ( (binary_expression "prVar26 != (re_node_set *)0x0" identifier != (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        prVar28 = (re_node_set *)pstr->bufs_len;\n        prVar35 = (re_node_set *)pstr->valid_len;\n        if ((int)prVar28 <= (int)prVar18) {\n          prVar18 = prVar28;\n        }\n        if ((int)prVar35 < (int)prVar18) {\n          while( true ) {\n            prVar28 = (re_node_set *)(pstr->mbs + (int)prVar35);\n            idx = (int)&prVar35->alloc + (int)(pstr->raw_mbs + idx);\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            prVar26 = (re_node_set *)\n                      ((int)&prVar26->alloc + (uint)*(byte *)&((re_node_set *)idx)->alloc);\n            *(uchar *)&prVar28->alloc = *(uchar *)&prVar26->alloc;\n            if (prVar18 == prVar35) break;\n            idx = pstr->raw_mbs_idx;\n            prVar26 = (re_node_set *)pstr->trans;\n          }\n          pstr->valid_len = (Idx)prVar18;\n          pstr->valid_raw_len = (Idx)prVar18;\n        }\n        else {\n          pstr->valid_len = (Idx)prVar35;\n          pstr->valid_raw_len = (Idx)prVar35;\n        }\n      }" { (expression_statement "prVar28 = (re_node_set *)pstr->bufs_len;" (assignment_expression "prVar28 = (re_node_set *)pstr->bufs_len" identifier = (cast_expression "(re_node_set *)pstr->bufs_len" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pstr->bufs_len" identifier -> field_identifier))) ;) (expression_statement "prVar35 = (re_node_set *)pstr->valid_len;" (assignment_expression "prVar35 = (re_node_set *)pstr->valid_len" identifier = (cast_expression "(re_node_set *)pstr->valid_len" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pstr->valid_len" identifier -> field_identifier))) ;) (if_statement "if ((int)prVar28 <= (int)prVar18) {\n          prVar18 = prVar28;\n        }" if (parenthesized_expression "((int)prVar28 <= (int)prVar18)" ( (binary_expression "(int)prVar28 <= (int)prVar18" (cast_expression "(int)prVar28" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)prVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          prVar18 = prVar28;\n        }" { (expression_statement "prVar18 = prVar28;" (assignment_expression "prVar18 = prVar28" identifier = identifier) ;) })) (if_statement "if ((int)prVar35 < (int)prVar18) {\n          while( true ) {\n            prVar28 = (re_node_set *)(pstr->mbs + (int)prVar35);\n            idx = (int)&prVar35->alloc + (int)(pstr->raw_mbs + idx);\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            prVar26 = (re_node_set *)\n                      ((int)&prVar26->alloc + (uint)*(byte *)&((re_node_set *)idx)->alloc);\n            *(uchar *)&prVar28->alloc = *(uchar *)&prVar26->alloc;\n            if (prVar18 == prVar35) break;\n            idx = pstr->raw_mbs_idx;\n            prVar26 = (re_node_set *)pstr->trans;\n          }\n          pstr->valid_len = (Idx)prVar18;\n          pstr->valid_raw_len = (Idx)prVar18;\n        }\n        else {\n          pstr->valid_len = (Idx)prVar35;\n          pstr->valid_raw_len = (Idx)prVar35;\n        }" if (parenthesized_expression "((int)prVar35 < (int)prVar18)" ( (binary_expression "(int)prVar35 < (int)prVar18" (cast_expression "(int)prVar35" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)prVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          while( true ) {\n            prVar28 = (re_node_set *)(pstr->mbs + (int)prVar35);\n            idx = (int)&prVar35->alloc + (int)(pstr->raw_mbs + idx);\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            prVar26 = (re_node_set *)\n                      ((int)&prVar26->alloc + (uint)*(byte *)&((re_node_set *)idx)->alloc);\n            *(uchar *)&prVar28->alloc = *(uchar *)&prVar26->alloc;\n            if (prVar18 == prVar35) break;\n            idx = pstr->raw_mbs_idx;\n            prVar26 = (re_node_set *)pstr->trans;\n          }\n          pstr->valid_len = (Idx)prVar18;\n          pstr->valid_raw_len = (Idx)prVar18;\n        }" { (while_statement "while( true ) {\n            prVar28 = (re_node_set *)(pstr->mbs + (int)prVar35);\n            idx = (int)&prVar35->alloc + (int)(pstr->raw_mbs + idx);\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            prVar26 = (re_node_set *)\n                      ((int)&prVar26->alloc + (uint)*(byte *)&((re_node_set *)idx)->alloc);\n            *(uchar *)&prVar28->alloc = *(uchar *)&prVar26->alloc;\n            if (prVar18 == prVar35) break;\n            idx = pstr->raw_mbs_idx;\n            prVar26 = (re_node_set *)pstr->trans;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            prVar28 = (re_node_set *)(pstr->mbs + (int)prVar35);\n            idx = (int)&prVar35->alloc + (int)(pstr->raw_mbs + idx);\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            prVar26 = (re_node_set *)\n                      ((int)&prVar26->alloc + (uint)*(byte *)&((re_node_set *)idx)->alloc);\n            *(uchar *)&prVar28->alloc = *(uchar *)&prVar26->alloc;\n            if (prVar18 == prVar35) break;\n            idx = pstr->raw_mbs_idx;\n            prVar26 = (re_node_set *)pstr->trans;\n          }" { (expression_statement "prVar28 = (re_node_set *)(pstr->mbs + (int)prVar35);" (assignment_expression "prVar28 = (re_node_set *)(pstr->mbs + (int)prVar35)" identifier = (cast_expression "(re_node_set *)(pstr->mbs + (int)prVar35)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pstr->mbs + (int)prVar35)" ( (binary_expression "pstr->mbs + (int)prVar35" (field_expression "pstr->mbs" identifier -> field_identifier) + (cast_expression "(int)prVar35" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "idx = (int)&prVar35->alloc + (int)(pstr->raw_mbs + idx);" (assignment_expression "idx = (int)&prVar35->alloc + (int)(pstr->raw_mbs + idx)" identifier = (binary_expression "(int)&prVar35->alloc + (int)(pstr->raw_mbs + idx)" (cast_expression "(int)&prVar35->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar35->alloc" & (field_expression "prVar35->alloc" identifier -> field_identifier))) + (cast_expression "(int)(pstr->raw_mbs + idx)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pstr->raw_mbs + idx)" ( (binary_expression "pstr->raw_mbs + idx" (field_expression "pstr->raw_mbs" identifier -> field_identifier) + identifier) ))))) ;) (expression_statement "prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);" (assignment_expression "prVar35 = (re_node_set *)((int)&prVar35->alloc + 1)" identifier = (cast_expression "(re_node_set *)((int)&prVar35->alloc + 1)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar35->alloc + 1)" ( (binary_expression "(int)&prVar35->alloc + 1" (cast_expression "(int)&prVar35->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar35->alloc" & (field_expression "prVar35->alloc" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "prVar26 = (re_node_set *)\n                      ((int)&prVar26->alloc + (uint)*(byte *)&((re_node_set *)idx)->alloc);" (assignment_expression "prVar26 = (re_node_set *)\n                      ((int)&prVar26->alloc + (uint)*(byte *)&((re_node_set *)idx)->alloc)" identifier = (cast_expression "(re_node_set *)\n                      ((int)&prVar26->alloc + (uint)*(byte *)&((re_node_set *)idx)->alloc)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar26->alloc + (uint)*(byte *)&((re_node_set *)idx)->alloc)" ( (binary_expression "(int)&prVar26->alloc + (uint)*(byte *)&((re_node_set *)idx)->alloc" (cast_expression "(int)&prVar26->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar26->alloc" & (field_expression "prVar26->alloc" identifier -> field_identifier))) + (binary_expression "(uint)*(byte *)&((re_node_set *)idx)->alloc" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)&((re_node_set *)idx)->alloc" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((re_node_set *)idx)->alloc" & (field_expression "((re_node_set *)idx)->alloc" (parenthesized_expression "((re_node_set *)idx)" ( (cast_expression "(re_node_set *)idx" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))))) )))) ;) (expression_statement "*(uchar *)&prVar28->alloc = *(uchar *)&prVar26->alloc;" (assignment_expression "*(uchar *)&prVar28->alloc = *(uchar *)&prVar26->alloc" (pointer_expression "*(uchar *)&prVar28->alloc" * (cast_expression "(uchar *)&prVar28->alloc" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar28->alloc" & (field_expression "prVar28->alloc" identifier -> field_identifier)))) = (pointer_expression "*(uchar *)&prVar26->alloc" * (cast_expression "(uchar *)&prVar26->alloc" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar26->alloc" & (field_expression "prVar26->alloc" identifier -> field_identifier))))) ;) (if_statement "if (prVar18 == prVar35) break;" if (parenthesized_expression "(prVar18 == prVar35)" ( (binary_expression "prVar18 == prVar35" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "idx = pstr->raw_mbs_idx;" (assignment_expression "idx = pstr->raw_mbs_idx" identifier = (field_expression "pstr->raw_mbs_idx" identifier -> field_identifier)) ;) (expression_statement "prVar26 = (re_node_set *)pstr->trans;" (assignment_expression "prVar26 = (re_node_set *)pstr->trans" identifier = (cast_expression "(re_node_set *)pstr->trans" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pstr->trans" identifier -> field_identifier))) ;) })) (expression_statement "pstr->valid_len = (Idx)prVar18;" (assignment_expression "pstr->valid_len = (Idx)prVar18" (field_expression "pstr->valid_len" identifier -> field_identifier) = (cast_expression "(Idx)prVar18" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "pstr->valid_raw_len = (Idx)prVar18;" (assignment_expression "pstr->valid_raw_len = (Idx)prVar18" (field_expression "pstr->valid_raw_len" identifier -> field_identifier) = (cast_expression "(Idx)prVar18" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) }) (else_clause "else {\n          pstr->valid_len = (Idx)prVar35;\n          pstr->valid_raw_len = (Idx)prVar35;\n        }" else (compound_statement "{\n          pstr->valid_len = (Idx)prVar35;\n          pstr->valid_raw_len = (Idx)prVar35;\n        }" { (expression_statement "pstr->valid_len = (Idx)prVar35;" (assignment_expression "pstr->valid_len = (Idx)prVar35" (field_expression "pstr->valid_len" identifier -> field_identifier) = (cast_expression "(Idx)prVar35" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "pstr->valid_raw_len = (Idx)prVar35;" (assignment_expression "pstr->valid_raw_len = (Idx)prVar35" (field_expression "pstr->valid_raw_len" identifier -> field_identifier) = (cast_expression "(Idx)prVar35" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) }))) })) }) (else_clause "else {\n      build_upper_buffer(pstr);\n    }" else (compound_statement "{\n      build_upper_buffer(pstr);\n    }" { (expression_statement "build_upper_buffer(pstr);" (call_expression "build_upper_buffer(pstr)" identifier (argument_list "(pstr)" ( identifier ))) ;) }))))) (labeled_statement "LAB_0001d0dc:\n    rVar5 = _REG_NOERROR;" statement_identifier : (expression_statement "rVar5 = _REG_NOERROR;" (assignment_expression "rVar5 = _REG_NOERROR" identifier = identifier) ;)) (expression_statement "pstr->cur_idx = 0;" (assignment_expression "pstr->cur_idx = 0" (field_expression "pstr->cur_idx" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else {\nLAB_0001d010:\n    if (prVar44 != (re_node_set *)0x0) goto LAB_0001d018;\nLAB_0001d128:\n    prVar32 = (re_node_set *)pstr->mb_cur_max;\n    prVar18 = (re_node_set *)pstr->len;\n    prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);\n    pstr->raw_mbs_idx = idx;\n    pstr->len = (Idx)prVar18;\n    pstr->stop = pstr->stop;\n    if (prVar26 != (re_node_set *)0x0) goto LAB_0001d148;\nLAB_0001d0b4:\n    if (pstr->icase == '\0') {\n      build_wcs_buffer(pstr);\n      goto LAB_0001d0dc;\n    }\n    rVar5 = build_wcs_upper_buffer(pstr);\n    if (rVar5 == _REG_NOERROR) goto LAB_0001d0dc;\n  }" else (compound_statement "{\nLAB_0001d010:\n    if (prVar44 != (re_node_set *)0x0) goto LAB_0001d018;\nLAB_0001d128:\n    prVar32 = (re_node_set *)pstr->mb_cur_max;\n    prVar18 = (re_node_set *)pstr->len;\n    prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);\n    pstr->raw_mbs_idx = idx;\n    pstr->len = (Idx)prVar18;\n    pstr->stop = pstr->stop;\n    if (prVar26 != (re_node_set *)0x0) goto LAB_0001d148;\nLAB_0001d0b4:\n    if (pstr->icase == '\0') {\n      build_wcs_buffer(pstr);\n      goto LAB_0001d0dc;\n    }\n    rVar5 = build_wcs_upper_buffer(pstr);\n    if (rVar5 == _REG_NOERROR) goto LAB_0001d0dc;\n  }" { (labeled_statement "LAB_0001d010:\n    if (prVar44 != (re_node_set *)0x0) goto LAB_0001d018;" statement_identifier : (if_statement "if (prVar44 != (re_node_set *)0x0) goto LAB_0001d018;" if (parenthesized_expression "(prVar44 != (re_node_set *)0x0)" ( (binary_expression "prVar44 != (re_node_set *)0x0" identifier != (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d018;" goto statement_identifier ;))) (labeled_statement "LAB_0001d128:\n    prVar32 = (re_node_set *)pstr->mb_cur_max;" statement_identifier : (expression_statement "prVar32 = (re_node_set *)pstr->mb_cur_max;" (assignment_expression "prVar32 = (re_node_set *)pstr->mb_cur_max" identifier = (cast_expression "(re_node_set *)pstr->mb_cur_max" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pstr->mb_cur_max" identifier -> field_identifier))) ;)) (expression_statement "prVar18 = (re_node_set *)pstr->len;" (assignment_expression "prVar18 = (re_node_set *)pstr->len" identifier = (cast_expression "(re_node_set *)pstr->len" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pstr->len" identifier -> field_identifier))) ;) (expression_statement "prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT);" (assignment_expression "prVar26 = (re_node_set *)(uint)((int)prVar32 < _REG_BADPAT)" identifier = (cast_expression "(re_node_set *)(uint)((int)prVar32 < _REG_BADPAT)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)((int)prVar32 < _REG_BADPAT)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)prVar32 < _REG_BADPAT)" ( (binary_expression "(int)prVar32 < _REG_BADPAT" (cast_expression "(int)prVar32" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) ))))) ;) (expression_statement "pstr->raw_mbs_idx = idx;" (assignment_expression "pstr->raw_mbs_idx = idx" (field_expression "pstr->raw_mbs_idx" identifier -> field_identifier) = identifier) ;) (expression_statement "pstr->len = (Idx)prVar18;" (assignment_expression "pstr->len = (Idx)prVar18" (field_expression "pstr->len" identifier -> field_identifier) = (cast_expression "(Idx)prVar18" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "pstr->stop = pstr->stop;" (assignment_expression "pstr->stop = pstr->stop" (field_expression "pstr->stop" identifier -> field_identifier) = (field_expression "pstr->stop" identifier -> field_identifier)) ;) (if_statement "if (prVar26 != (re_node_set *)0x0) goto LAB_0001d148;" if (parenthesized_expression "(prVar26 != (re_node_set *)0x0)" ( (binary_expression "prVar26 != (re_node_set *)0x0" identifier != (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d148;" goto statement_identifier ;)) (labeled_statement "LAB_0001d0b4:\n    if (pstr->icase == '\0') {\n      build_wcs_buffer(pstr);\n      goto LAB_0001d0dc;\n    }" statement_identifier : (if_statement "if (pstr->icase == '\0') {\n      build_wcs_buffer(pstr);\n      goto LAB_0001d0dc;\n    }" if (parenthesized_expression "(pstr->icase == '\0')" ( (binary_expression "pstr->icase == '\0'" (field_expression "pstr->icase" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      build_wcs_buffer(pstr);\n      goto LAB_0001d0dc;\n    }" { (expression_statement "build_wcs_buffer(pstr);" (call_expression "build_wcs_buffer(pstr)" identifier (argument_list "(pstr)" ( identifier ))) ;) (goto_statement "goto LAB_0001d0dc;" goto statement_identifier ;) }))) (expression_statement "rVar5 = build_wcs_upper_buffer(pstr);" (assignment_expression "rVar5 = build_wcs_upper_buffer(pstr)" identifier = (call_expression "build_wcs_upper_buffer(pstr)" identifier (argument_list "(pstr)" ( identifier )))) ;) (if_statement "if (rVar5 == _REG_NOERROR) goto LAB_0001d0dc;" if (parenthesized_expression "(rVar5 == _REG_NOERROR)" ( (binary_expression "rVar5 == _REG_NOERROR" identifier == identifier) )) (goto_statement "goto LAB_0001d0dc;" goto statement_identifier ;)) }))) (if_statement "if (prVar17 == *(re_node_set **)puVar3) {\n    return rVar5;\n  }" if (parenthesized_expression "(prVar17 == *(re_node_set **)puVar3)" ( (binary_expression "prVar17 == *(re_node_set **)puVar3" identifier == (pointer_expression "*(re_node_set **)puVar3" * (cast_expression "(re_node_set **)puVar3" ( (type_descriptor "re_node_set **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return rVar5;\n  }" { (return_statement "return rVar5;" return identifier ;) })) (expression_statement "pcVar52 = sub_epsilon_src_nodes;" (assignment_expression "pcVar52 = sub_epsilon_src_nodes" identifier = identifier) ;) (expression_statement "puVar49 = PTR___stack_chk_fail_0003c2f4;" (assignment_expression "puVar49 = 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 "puVar51 = puVar49 + 0x26830;" (assignment_expression "puVar51 = puVar49 + 0x26830" identifier = (binary_expression "puVar49 + 0x26830" identifier + number_literal)) ;) (expression_statement "puStack_9c = *(undefined4 **)(puVar49 + 0x1ea74);" (assignment_expression "puStack_9c = *(undefined4 **)(puVar49 + 0x1ea74)" identifier = (pointer_expression "*(undefined4 **)(puVar49 + 0x1ea74)" * (cast_expression "(undefined4 **)(puVar49 + 0x1ea74)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + 0x1ea74)" ( (binary_expression "puVar49 + 0x1ea74" identifier + number_literal) ))))) ;) (expression_statement "auStack_98._0_4_ = 0;" (assignment_expression "auStack_98._0_4_ = 0" (field_expression "auStack_98._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "auStack_98._4_4_ = (re_node_set *)0x0;" (assignment_expression "auStack_98._4_4_ = (re_node_set *)0x0" (field_expression "auStack_98._4_4_" identifier . field_identifier) = (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "auStack_98._8_4_ = (Idx *)0x0;" (assignment_expression "auStack_98._8_4_ = (Idx *)0x0" (field_expression "auStack_98._8_4_" identifier . field_identifier) = (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar29 = prVar17[2].nelem + (int)prVar26 * 0xc;" (assignment_expression "iVar29 = prVar17[2].nelem + (int)prVar26 * 0xc" identifier = (binary_expression "prVar17[2].nelem + (int)prVar26 * 0xc" (field_expression "prVar17[2].nelem" (subscript_expression "prVar17[2]" identifier [ number_literal ]) . field_identifier) + (binary_expression "(int)prVar26 * 0xc" (cast_expression "(int)prVar26" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "puStack_78 = puVar3;" (assignment_expression "puStack_78 = puVar3" identifier = identifier) ;) (expression_statement "prStack_8c = (re_node_set *)*puStack_9c;" (assignment_expression "prStack_8c = (re_node_set *)*puStack_9c" identifier = (cast_expression "(re_node_set *)*puStack_9c" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puStack_9c" * identifier))) ;) (expression_statement "prVar35 = *(re_node_set **)(iVar29 + 4);" (assignment_expression "prVar35 = *(re_node_set **)(iVar29 + 4)" identifier = (pointer_expression "*(re_node_set **)(iVar29 + 4)" * (cast_expression "(re_node_set **)(iVar29 + 4)" ( (type_descriptor "re_node_set **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar29 + 4)" ( (binary_expression "iVar29 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar45 = *(int *)(puVar49 + 0x1e948);" (assignment_expression "iVar45 = *(int *)(puVar49 + 0x1e948)" identifier = (pointer_expression "*(int *)(puVar49 + 0x1e948)" * (cast_expression "(int *)(puVar49 + 0x1e948)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + 0x1e948)" ( (binary_expression "puVar49 + 0x1e948" identifier + number_literal) ))))) ;) (expression_statement "prVar18 = prVar26;" (assignment_expression "prVar18 = prVar26" identifier = identifier) ;) (expression_statement "puStack_a8 = puVar51;" (assignment_expression "puStack_a8 = puVar51" identifier = identifier) ;) (expression_statement "prStack_a0 = prVar32;" (assignment_expression "prStack_a0 = prVar32" identifier = identifier) ;) (expression_statement "prStack_88 = pstr;" (assignment_expression "prStack_88 = pstr" identifier = identifier) ;) (expression_statement "prStack_84 = prVar44;" (assignment_expression "prStack_84 = prVar44" identifier = identifier) ;) (expression_statement "prStack_80 = unaff_s2;" (assignment_expression "prStack_80 = unaff_s2" identifier = identifier) ;) (expression_statement "prStack_7c = unaff_s3;" (assignment_expression "prStack_7c = unaff_s3" identifier = identifier) ;) (expression_statement "prStack_74 = (re_node_set *)idx;" (assignment_expression "prStack_74 = (re_node_set *)idx" identifier = (cast_expression "(re_node_set *)idx" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iStack_70 = eflags;" (assignment_expression "iStack_70 = eflags" identifier = identifier) ;) (expression_statement "prStack_6c = unaff_s7;" (assignment_expression "prStack_6c = unaff_s7" identifier = identifier) ;) (expression_statement "prStack_68 = unaff_s8;" (assignment_expression "prStack_68 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_64 = pcVar52;" (assignment_expression "pcStack_64 = pcVar52" identifier = identifier) ;) (if_statement "if (0 < (int)prVar35) {\n    prVar32 = (re_node_set *)auStack_98;\n    prVar42 = (re_string_t *)0x0;\n    prVar44 = (re_node_set *)(iVar29 + 8);\n    iVar45 = iVar45 + -0x5d30;\n    iVar46 = *(int *)(puVar49 + 0x1e948) + -20000;\n    do {\n      prVar7 = *(re_node_set **)(*(int *)(iVar29 + 8) + (int)prVar42 * 4);\n      if ((prVar26 != prVar7) && ((*(byte *)(prVar17->alloc + (int)prVar7 * 8 + 4) & 8) != 0)) {\n        iVar38 = (int)prVar7 * 0xc;\n        pIVar24 = prVar17[1].elems + (int)prVar7 * 3;\n        puVar41 = (undefined4 *)pIVar24[2];\n        prVar7 = (re_node_set *)*puVar41;\n        prVar18 = prVar44;\n        IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7);\n        if (pIVar24[1] < 2) {\n          puVar51 = puStack_a8;\n          if (IVar22 == 0) {\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((IVar22 == 0) &&\n                (IVar22 = re_node_set_contains\n                                    ((re_node_set *)prVar28->nelem,(Idx)&prVar28->elems,prVar7),\n                IVar22 != 0)) {\nLAB_0001d960:\n          iVar27 = prVar17[2].nelem;\nLAB_0001d964:\n          prVar18 = prStack_a0;\n          prVar35 = (re_node_set *)\n                    re_node_set_add_intersect(prVar32,prStack_a0,(re_node_set *)(iVar27 + iVar38));\n          if (prVar35 != (re_node_set *)0x0) {\n            prStack_a0 = prVar35;\n            (**(code **)(puStack_a8 + -0x7db0))(auStack_98._8_4_);\n            prVar35 = prStack_a0;\n            goto LAB_0001db20;\n          }\n          prVar35 = *(re_node_set **)(iVar29 + 4);\n          puVar51 = puStack_a8;\n        }\n        else {\n          prVar7 = (re_node_set *)puVar41[1];\n          prVar18 = prVar44;\n          puVar51 = puStack_a8;\n          if ((0 < (int)prVar7) &&\n             (IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7), puVar51 = puStack_a8,\n             IVar22 == 0)) {\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) {\n              iVar27 = prVar17[2].nelem;\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }\n      prVar42 = (re_string_t *)((int)&prVar42->raw_mbs + 1);\n    } while ((int)prVar42 < (int)prVar35);\n    pstr = prVar42;\n    unaff_s2 = prVar26;\n    unaff_s3 = prVar28;\n    idx = (Idx)prVar44;\n    eflags = iVar46;\n    unaff_s7 = prVar32;\n    unaff_s8 = prVar17;\n    if (0 < (int)prVar35) {\n      iVar46 = 0;\n      prVar26 = (re_node_set *)&prVar28->nelem;\n      prVar17 = (re_node_set *)&prVar28->elems;\n      prVar44 = (re_node_set *)(auStack_98 + 8);\n      do {\n        prVar18 = *(re_node_set **)(*(int *)(iVar29 + 8) + iVar46 * 4);\n        prVar7 = prVar44;\n        IVar22 = re_node_set_contains((re_node_set *)auStack_98._4_4_,(Idx)prVar44,prVar18);\n        prVar32 = prVar17;\n        if (IVar22 == 0) {\n          set = (re_node_set *)prVar28->nelem;\n          idx_00 = prVar17;\n          IVar22 = re_node_set_contains(set,(Idx)prVar17,prVar18);\n          prVar18 = (re_node_set *)(IVar22 + -1);\n          prVar44 = prVar17;\n          prVar32 = idx_00;\n          if ((-1 < (int)prVar18) && ((int)prVar18 < (int)set)) {\n            prVar28->nelem = (Idx)((int)&set[-1].elems + 3);\n            re_node_set_remove_at(prVar26,(Idx)idx_00,prVar18);\n            prVar35 = *(re_node_set **)(iVar29 + 4);\n            prVar44 = idx_00;\n          }\n        }\n        iVar46 = iVar46 + 1;\n        prVar18 = prVar44;\n        prVar17 = prVar32;\n        prVar44 = prVar7;\n        puVar51 = puStack_a8;\n      } while (iVar46 < (int)prVar35);\n    }\n  }" if (parenthesized_expression "(0 < (int)prVar35)" ( (binary_expression "0 < (int)prVar35" number_literal < (cast_expression "(int)prVar35" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    prVar32 = (re_node_set *)auStack_98;\n    prVar42 = (re_string_t *)0x0;\n    prVar44 = (re_node_set *)(iVar29 + 8);\n    iVar45 = iVar45 + -0x5d30;\n    iVar46 = *(int *)(puVar49 + 0x1e948) + -20000;\n    do {\n      prVar7 = *(re_node_set **)(*(int *)(iVar29 + 8) + (int)prVar42 * 4);\n      if ((prVar26 != prVar7) && ((*(byte *)(prVar17->alloc + (int)prVar7 * 8 + 4) & 8) != 0)) {\n        iVar38 = (int)prVar7 * 0xc;\n        pIVar24 = prVar17[1].elems + (int)prVar7 * 3;\n        puVar41 = (undefined4 *)pIVar24[2];\n        prVar7 = (re_node_set *)*puVar41;\n        prVar18 = prVar44;\n        IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7);\n        if (pIVar24[1] < 2) {\n          puVar51 = puStack_a8;\n          if (IVar22 == 0) {\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((IVar22 == 0) &&\n                (IVar22 = re_node_set_contains\n                                    ((re_node_set *)prVar28->nelem,(Idx)&prVar28->elems,prVar7),\n                IVar22 != 0)) {\nLAB_0001d960:\n          iVar27 = prVar17[2].nelem;\nLAB_0001d964:\n          prVar18 = prStack_a0;\n          prVar35 = (re_node_set *)\n                    re_node_set_add_intersect(prVar32,prStack_a0,(re_node_set *)(iVar27 + iVar38));\n          if (prVar35 != (re_node_set *)0x0) {\n            prStack_a0 = prVar35;\n            (**(code **)(puStack_a8 + -0x7db0))(auStack_98._8_4_);\n            prVar35 = prStack_a0;\n            goto LAB_0001db20;\n          }\n          prVar35 = *(re_node_set **)(iVar29 + 4);\n          puVar51 = puStack_a8;\n        }\n        else {\n          prVar7 = (re_node_set *)puVar41[1];\n          prVar18 = prVar44;\n          puVar51 = puStack_a8;\n          if ((0 < (int)prVar7) &&\n             (IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7), puVar51 = puStack_a8,\n             IVar22 == 0)) {\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) {\n              iVar27 = prVar17[2].nelem;\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }\n      prVar42 = (re_string_t *)((int)&prVar42->raw_mbs + 1);\n    } while ((int)prVar42 < (int)prVar35);\n    pstr = prVar42;\n    unaff_s2 = prVar26;\n    unaff_s3 = prVar28;\n    idx = (Idx)prVar44;\n    eflags = iVar46;\n    unaff_s7 = prVar32;\n    unaff_s8 = prVar17;\n    if (0 < (int)prVar35) {\n      iVar46 = 0;\n      prVar26 = (re_node_set *)&prVar28->nelem;\n      prVar17 = (re_node_set *)&prVar28->elems;\n      prVar44 = (re_node_set *)(auStack_98 + 8);\n      do {\n        prVar18 = *(re_node_set **)(*(int *)(iVar29 + 8) + iVar46 * 4);\n        prVar7 = prVar44;\n        IVar22 = re_node_set_contains((re_node_set *)auStack_98._4_4_,(Idx)prVar44,prVar18);\n        prVar32 = prVar17;\n        if (IVar22 == 0) {\n          set = (re_node_set *)prVar28->nelem;\n          idx_00 = prVar17;\n          IVar22 = re_node_set_contains(set,(Idx)prVar17,prVar18);\n          prVar18 = (re_node_set *)(IVar22 + -1);\n          prVar44 = prVar17;\n          prVar32 = idx_00;\n          if ((-1 < (int)prVar18) && ((int)prVar18 < (int)set)) {\n            prVar28->nelem = (Idx)((int)&set[-1].elems + 3);\n            re_node_set_remove_at(prVar26,(Idx)idx_00,prVar18);\n            prVar35 = *(re_node_set **)(iVar29 + 4);\n            prVar44 = idx_00;\n          }\n        }\n        iVar46 = iVar46 + 1;\n        prVar18 = prVar44;\n        prVar17 = prVar32;\n        prVar44 = prVar7;\n        puVar51 = puStack_a8;\n      } while (iVar46 < (int)prVar35);\n    }\n  }" { (expression_statement "prVar32 = (re_node_set *)auStack_98;" (assignment_expression "prVar32 = (re_node_set *)auStack_98" identifier = (cast_expression "(re_node_set *)auStack_98" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "prVar42 = (re_string_t *)0x0;" (assignment_expression "prVar42 = (re_string_t *)0x0" identifier = (cast_expression "(re_string_t *)0x0" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "prVar44 = (re_node_set *)(iVar29 + 8);" (assignment_expression "prVar44 = (re_node_set *)(iVar29 + 8)" identifier = (cast_expression "(re_node_set *)(iVar29 + 8)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 8)" ( (binary_expression "iVar29 + 8" identifier + number_literal) )))) ;) (expression_statement "iVar45 = iVar45 + -0x5d30;" (assignment_expression "iVar45 = iVar45 + -0x5d30" identifier = (binary_expression "iVar45 + -0x5d30" identifier + number_literal)) ;) (expression_statement "iVar46 = *(int *)(puVar49 + 0x1e948) + -20000;" (assignment_expression "iVar46 = *(int *)(puVar49 + 0x1e948) + -20000" identifier = (binary_expression "*(int *)(puVar49 + 0x1e948) + -20000" (pointer_expression "*(int *)(puVar49 + 0x1e948)" * (cast_expression "(int *)(puVar49 + 0x1e948)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + 0x1e948)" ( (binary_expression "puVar49 + 0x1e948" identifier + number_literal) )))) + number_literal)) ;) (do_statement "do {\n      prVar7 = *(re_node_set **)(*(int *)(iVar29 + 8) + (int)prVar42 * 4);\n      if ((prVar26 != prVar7) && ((*(byte *)(prVar17->alloc + (int)prVar7 * 8 + 4) & 8) != 0)) {\n        iVar38 = (int)prVar7 * 0xc;\n        pIVar24 = prVar17[1].elems + (int)prVar7 * 3;\n        puVar41 = (undefined4 *)pIVar24[2];\n        prVar7 = (re_node_set *)*puVar41;\n        prVar18 = prVar44;\n        IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7);\n        if (pIVar24[1] < 2) {\n          puVar51 = puStack_a8;\n          if (IVar22 == 0) {\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((IVar22 == 0) &&\n                (IVar22 = re_node_set_contains\n                                    ((re_node_set *)prVar28->nelem,(Idx)&prVar28->elems,prVar7),\n                IVar22 != 0)) {\nLAB_0001d960:\n          iVar27 = prVar17[2].nelem;\nLAB_0001d964:\n          prVar18 = prStack_a0;\n          prVar35 = (re_node_set *)\n                    re_node_set_add_intersect(prVar32,prStack_a0,(re_node_set *)(iVar27 + iVar38));\n          if (prVar35 != (re_node_set *)0x0) {\n            prStack_a0 = prVar35;\n            (**(code **)(puStack_a8 + -0x7db0))(auStack_98._8_4_);\n            prVar35 = prStack_a0;\n            goto LAB_0001db20;\n          }\n          prVar35 = *(re_node_set **)(iVar29 + 4);\n          puVar51 = puStack_a8;\n        }\n        else {\n          prVar7 = (re_node_set *)puVar41[1];\n          prVar18 = prVar44;\n          puVar51 = puStack_a8;\n          if ((0 < (int)prVar7) &&\n             (IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7), puVar51 = puStack_a8,\n             IVar22 == 0)) {\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) {\n              iVar27 = prVar17[2].nelem;\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }\n      prVar42 = (re_string_t *)((int)&prVar42->raw_mbs + 1);\n    } while ((int)prVar42 < (int)prVar35);" do (compound_statement "{\n      prVar7 = *(re_node_set **)(*(int *)(iVar29 + 8) + (int)prVar42 * 4);\n      if ((prVar26 != prVar7) && ((*(byte *)(prVar17->alloc + (int)prVar7 * 8 + 4) & 8) != 0)) {\n        iVar38 = (int)prVar7 * 0xc;\n        pIVar24 = prVar17[1].elems + (int)prVar7 * 3;\n        puVar41 = (undefined4 *)pIVar24[2];\n        prVar7 = (re_node_set *)*puVar41;\n        prVar18 = prVar44;\n        IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7);\n        if (pIVar24[1] < 2) {\n          puVar51 = puStack_a8;\n          if (IVar22 == 0) {\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((IVar22 == 0) &&\n                (IVar22 = re_node_set_contains\n                                    ((re_node_set *)prVar28->nelem,(Idx)&prVar28->elems,prVar7),\n                IVar22 != 0)) {\nLAB_0001d960:\n          iVar27 = prVar17[2].nelem;\nLAB_0001d964:\n          prVar18 = prStack_a0;\n          prVar35 = (re_node_set *)\n                    re_node_set_add_intersect(prVar32,prStack_a0,(re_node_set *)(iVar27 + iVar38));\n          if (prVar35 != (re_node_set *)0x0) {\n            prStack_a0 = prVar35;\n            (**(code **)(puStack_a8 + -0x7db0))(auStack_98._8_4_);\n            prVar35 = prStack_a0;\n            goto LAB_0001db20;\n          }\n          prVar35 = *(re_node_set **)(iVar29 + 4);\n          puVar51 = puStack_a8;\n        }\n        else {\n          prVar7 = (re_node_set *)puVar41[1];\n          prVar18 = prVar44;\n          puVar51 = puStack_a8;\n          if ((0 < (int)prVar7) &&\n             (IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7), puVar51 = puStack_a8,\n             IVar22 == 0)) {\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) {\n              iVar27 = prVar17[2].nelem;\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }\n      prVar42 = (re_string_t *)((int)&prVar42->raw_mbs + 1);\n    }" { (expression_statement "prVar7 = *(re_node_set **)(*(int *)(iVar29 + 8) + (int)prVar42 * 4);" (assignment_expression "prVar7 = *(re_node_set **)(*(int *)(iVar29 + 8) + (int)prVar42 * 4)" identifier = (pointer_expression "*(re_node_set **)(*(int *)(iVar29 + 8) + (int)prVar42 * 4)" * (cast_expression "(re_node_set **)(*(int *)(iVar29 + 8) + (int)prVar42 * 4)" ( (type_descriptor "re_node_set **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar29 + 8) + (int)prVar42 * 4)" ( (binary_expression "*(int *)(iVar29 + 8) + (int)prVar42 * 4" (pointer_expression "*(int *)(iVar29 + 8)" * (cast_expression "(int *)(iVar29 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 8)" ( (binary_expression "iVar29 + 8" identifier + number_literal) )))) + (binary_expression "(int)prVar42 * 4" (cast_expression "(int)prVar42" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (if_statement "if ((prVar26 != prVar7) && ((*(byte *)(prVar17->alloc + (int)prVar7 * 8 + 4) & 8) != 0)) {\n        iVar38 = (int)prVar7 * 0xc;\n        pIVar24 = prVar17[1].elems + (int)prVar7 * 3;\n        puVar41 = (undefined4 *)pIVar24[2];\n        prVar7 = (re_node_set *)*puVar41;\n        prVar18 = prVar44;\n        IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7);\n        if (pIVar24[1] < 2) {\n          puVar51 = puStack_a8;\n          if (IVar22 == 0) {\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((IVar22 == 0) &&\n                (IVar22 = re_node_set_contains\n                                    ((re_node_set *)prVar28->nelem,(Idx)&prVar28->elems,prVar7),\n                IVar22 != 0)) {\nLAB_0001d960:\n          iVar27 = prVar17[2].nelem;\nLAB_0001d964:\n          prVar18 = prStack_a0;\n          prVar35 = (re_node_set *)\n                    re_node_set_add_intersect(prVar32,prStack_a0,(re_node_set *)(iVar27 + iVar38));\n          if (prVar35 != (re_node_set *)0x0) {\n            prStack_a0 = prVar35;\n            (**(code **)(puStack_a8 + -0x7db0))(auStack_98._8_4_);\n            prVar35 = prStack_a0;\n            goto LAB_0001db20;\n          }\n          prVar35 = *(re_node_set **)(iVar29 + 4);\n          puVar51 = puStack_a8;\n        }\n        else {\n          prVar7 = (re_node_set *)puVar41[1];\n          prVar18 = prVar44;\n          puVar51 = puStack_a8;\n          if ((0 < (int)prVar7) &&\n             (IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7), puVar51 = puStack_a8,\n             IVar22 == 0)) {\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) {\n              iVar27 = prVar17[2].nelem;\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }" if (parenthesized_expression "((prVar26 != prVar7) && ((*(byte *)(prVar17->alloc + (int)prVar7 * 8 + 4) & 8) != 0))" ( (binary_expression "(prVar26 != prVar7) && ((*(byte *)(prVar17->alloc + (int)prVar7 * 8 + 4) & 8) != 0)" (parenthesized_expression "(prVar26 != prVar7)" ( (binary_expression "prVar26 != prVar7" identifier != identifier) )) && (parenthesized_expression "((*(byte *)(prVar17->alloc + (int)prVar7 * 8 + 4) & 8) != 0)" ( (binary_expression "(*(byte *)(prVar17->alloc + (int)prVar7 * 8 + 4) & 8) != 0" (parenthesized_expression "(*(byte *)(prVar17->alloc + (int)prVar7 * 8 + 4) & 8)" ( (binary_expression "*(byte *)(prVar17->alloc + (int)prVar7 * 8 + 4) & 8" (pointer_expression "*(byte *)(prVar17->alloc + (int)prVar7 * 8 + 4)" * (cast_expression "(byte *)(prVar17->alloc + (int)prVar7 * 8 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prVar17->alloc + (int)prVar7 * 8 + 4)" ( (binary_expression "prVar17->alloc + (int)prVar7 * 8 + 4" (binary_expression "prVar17->alloc + (int)prVar7 * 8" (field_expression "prVar17->alloc" identifier -> field_identifier) + (binary_expression "(int)prVar7 * 8" (cast_expression "(int)prVar7" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        iVar38 = (int)prVar7 * 0xc;\n        pIVar24 = prVar17[1].elems + (int)prVar7 * 3;\n        puVar41 = (undefined4 *)pIVar24[2];\n        prVar7 = (re_node_set *)*puVar41;\n        prVar18 = prVar44;\n        IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7);\n        if (pIVar24[1] < 2) {\n          puVar51 = puStack_a8;\n          if (IVar22 == 0) {\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((IVar22 == 0) &&\n                (IVar22 = re_node_set_contains\n                                    ((re_node_set *)prVar28->nelem,(Idx)&prVar28->elems,prVar7),\n                IVar22 != 0)) {\nLAB_0001d960:\n          iVar27 = prVar17[2].nelem;\nLAB_0001d964:\n          prVar18 = prStack_a0;\n          prVar35 = (re_node_set *)\n                    re_node_set_add_intersect(prVar32,prStack_a0,(re_node_set *)(iVar27 + iVar38));\n          if (prVar35 != (re_node_set *)0x0) {\n            prStack_a0 = prVar35;\n            (**(code **)(puStack_a8 + -0x7db0))(auStack_98._8_4_);\n            prVar35 = prStack_a0;\n            goto LAB_0001db20;\n          }\n          prVar35 = *(re_node_set **)(iVar29 + 4);\n          puVar51 = puStack_a8;\n        }\n        else {\n          prVar7 = (re_node_set *)puVar41[1];\n          prVar18 = prVar44;\n          puVar51 = puStack_a8;\n          if ((0 < (int)prVar7) &&\n             (IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7), puVar51 = puStack_a8,\n             IVar22 == 0)) {\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) {\n              iVar27 = prVar17[2].nelem;\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }" { (expression_statement "iVar38 = (int)prVar7 * 0xc;" (assignment_expression "iVar38 = (int)prVar7 * 0xc" identifier = (binary_expression "(int)prVar7 * 0xc" (cast_expression "(int)prVar7" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "pIVar24 = prVar17[1].elems + (int)prVar7 * 3;" (assignment_expression "pIVar24 = prVar17[1].elems + (int)prVar7 * 3" identifier = (binary_expression "prVar17[1].elems + (int)prVar7 * 3" (field_expression "prVar17[1].elems" (subscript_expression "prVar17[1]" identifier [ number_literal ]) . field_identifier) + (binary_expression "(int)prVar7 * 3" (cast_expression "(int)prVar7" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "puVar41 = (undefined4 *)pIVar24[2];" (assignment_expression "puVar41 = (undefined4 *)pIVar24[2]" identifier = (cast_expression "(undefined4 *)pIVar24[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pIVar24[2]" identifier [ number_literal ]))) ;) (expression_statement "prVar7 = (re_node_set *)*puVar41;" (assignment_expression "prVar7 = (re_node_set *)*puVar41" identifier = (cast_expression "(re_node_set *)*puVar41" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar41" * identifier))) ;) (expression_statement "prVar18 = prVar44;" (assignment_expression "prVar18 = prVar44" identifier = identifier) ;) (expression_statement "IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7);" (assignment_expression "IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7)" identifier = (call_expression "re_node_set_contains(prVar35,(Idx)prVar44,prVar7)" identifier (argument_list "(prVar35,(Idx)prVar44,prVar7)" ( identifier , (cast_expression "(Idx)prVar44" ( (type_descriptor "Idx" type_identifier) ) identifier) , identifier )))) ;) (if_statement "if (pIVar24[1] < 2) {\n          puVar51 = puStack_a8;\n          if (IVar22 == 0) {\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((IVar22 == 0) &&\n                (IVar22 = re_node_set_contains\n                                    ((re_node_set *)prVar28->nelem,(Idx)&prVar28->elems,prVar7),\n                IVar22 != 0)) {\nLAB_0001d960:\n          iVar27 = prVar17[2].nelem;\nLAB_0001d964:\n          prVar18 = prStack_a0;\n          prVar35 = (re_node_set *)\n                    re_node_set_add_intersect(prVar32,prStack_a0,(re_node_set *)(iVar27 + iVar38));\n          if (prVar35 != (re_node_set *)0x0) {\n            prStack_a0 = prVar35;\n            (**(code **)(puStack_a8 + -0x7db0))(auStack_98._8_4_);\n            prVar35 = prStack_a0;\n            goto LAB_0001db20;\n          }\n          prVar35 = *(re_node_set **)(iVar29 + 4);\n          puVar51 = puStack_a8;\n        }\n        else {\n          prVar7 = (re_node_set *)puVar41[1];\n          prVar18 = prVar44;\n          puVar51 = puStack_a8;\n          if ((0 < (int)prVar7) &&\n             (IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7), puVar51 = puStack_a8,\n             IVar22 == 0)) {\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) {\n              iVar27 = prVar17[2].nelem;\n              goto LAB_0001d964;\n            }\n          }\n        }" if (parenthesized_expression "(pIVar24[1] < 2)" ( (binary_expression "pIVar24[1] < 2" (subscript_expression "pIVar24[1]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n          puVar51 = puStack_a8;\n          if (IVar22 == 0) {\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) goto LAB_0001d960;\n          }\n        }" { (expression_statement "puVar51 = puStack_a8;" (assignment_expression "puVar51 = puStack_a8" identifier = identifier) ;) (if_statement "if (IVar22 == 0) {\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) goto LAB_0001d960;\n          }" if (parenthesized_expression "(IVar22 == 0)" ( (binary_expression "IVar22 == 0" identifier == number_literal) )) (compound_statement "{\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) goto LAB_0001d960;\n          }" { (expression_statement "prVar18 = (re_node_set *)&prVar28->elems;" (assignment_expression "prVar18 = (re_node_set *)&prVar28->elems" identifier = (cast_expression "(re_node_set *)&prVar28->elems" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar28->elems" & (field_expression "prVar28->elems" identifier -> field_identifier)))) ;) (expression_statement "IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);" (assignment_expression "IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7)" identifier = (call_expression "re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7)" identifier (argument_list "((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7)" ( (cast_expression "(re_node_set *)prVar28->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prVar28->nelem" identifier -> field_identifier)) , (cast_expression "(Idx)prVar18" ( (type_descriptor "Idx" type_identifier) ) identifier) , identifier )))) ;) (expression_statement "puVar51 = puStack_a8;" (assignment_expression "puVar51 = puStack_a8" identifier = identifier) ;) (if_statement "if (IVar22 != 0) goto LAB_0001d960;" if (parenthesized_expression "(IVar22 != 0)" ( (binary_expression "IVar22 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001d960;" goto statement_identifier ;)) })) }) (else_clause "else if ((IVar22 == 0) &&\n                (IVar22 = re_node_set_contains\n                                    ((re_node_set *)prVar28->nelem,(Idx)&prVar28->elems,prVar7),\n                IVar22 != 0)) {\nLAB_0001d960:\n          iVar27 = prVar17[2].nelem;\nLAB_0001d964:\n          prVar18 = prStack_a0;\n          prVar35 = (re_node_set *)\n                    re_node_set_add_intersect(prVar32,prStack_a0,(re_node_set *)(iVar27 + iVar38));\n          if (prVar35 != (re_node_set *)0x0) {\n            prStack_a0 = prVar35;\n            (**(code **)(puStack_a8 + -0x7db0))(auStack_98._8_4_);\n            prVar35 = prStack_a0;\n            goto LAB_0001db20;\n          }\n          prVar35 = *(re_node_set **)(iVar29 + 4);\n          puVar51 = puStack_a8;\n        }\n        else {\n          prVar7 = (re_node_set *)puVar41[1];\n          prVar18 = prVar44;\n          puVar51 = puStack_a8;\n          if ((0 < (int)prVar7) &&\n             (IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7), puVar51 = puStack_a8,\n             IVar22 == 0)) {\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) {\n              iVar27 = prVar17[2].nelem;\n              goto LAB_0001d964;\n            }\n          }\n        }" else (if_statement "if ((IVar22 == 0) &&\n                (IVar22 = re_node_set_contains\n                                    ((re_node_set *)prVar28->nelem,(Idx)&prVar28->elems,prVar7),\n                IVar22 != 0)) {\nLAB_0001d960:\n          iVar27 = prVar17[2].nelem;\nLAB_0001d964:\n          prVar18 = prStack_a0;\n          prVar35 = (re_node_set *)\n                    re_node_set_add_intersect(prVar32,prStack_a0,(re_node_set *)(iVar27 + iVar38));\n          if (prVar35 != (re_node_set *)0x0) {\n            prStack_a0 = prVar35;\n            (**(code **)(puStack_a8 + -0x7db0))(auStack_98._8_4_);\n            prVar35 = prStack_a0;\n            goto LAB_0001db20;\n          }\n          prVar35 = *(re_node_set **)(iVar29 + 4);\n          puVar51 = puStack_a8;\n        }\n        else {\n          prVar7 = (re_node_set *)puVar41[1];\n          prVar18 = prVar44;\n          puVar51 = puStack_a8;\n          if ((0 < (int)prVar7) &&\n             (IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7), puVar51 = puStack_a8,\n             IVar22 == 0)) {\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) {\n              iVar27 = prVar17[2].nelem;\n              goto LAB_0001d964;\n            }\n          }\n        }" if (parenthesized_expression "((IVar22 == 0) &&\n                (IVar22 = re_node_set_contains\n                                    ((re_node_set *)prVar28->nelem,(Idx)&prVar28->elems,prVar7),\n                IVar22 != 0))" ( (binary_expression "(IVar22 == 0) &&\n                (IVar22 = re_node_set_contains\n                                    ((re_node_set *)prVar28->nelem,(Idx)&prVar28->elems,prVar7),\n                IVar22 != 0)" (parenthesized_expression "(IVar22 == 0)" ( (binary_expression "IVar22 == 0" identifier == number_literal) )) && (parenthesized_expression "(IVar22 = re_node_set_contains\n                                    ((re_node_set *)prVar28->nelem,(Idx)&prVar28->elems,prVar7),\n                IVar22 != 0)" ( (comma_expression "IVar22 = re_node_set_contains\n                                    ((re_node_set *)prVar28->nelem,(Idx)&prVar28->elems,prVar7),\n                IVar22 != 0" (assignment_expression "IVar22 = re_node_set_contains\n                                    ((re_node_set *)prVar28->nelem,(Idx)&prVar28->elems,prVar7)" identifier = (call_expression "re_node_set_contains\n                                    ((re_node_set *)prVar28->nelem,(Idx)&prVar28->elems,prVar7)" identifier (argument_list "((re_node_set *)prVar28->nelem,(Idx)&prVar28->elems,prVar7)" ( (cast_expression "(re_node_set *)prVar28->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prVar28->nelem" identifier -> field_identifier)) , (binary_expression "(Idx)&prVar28->elems" (parenthesized_expression "(Idx)" ( identifier )) & (field_expression "prVar28->elems" identifier -> field_identifier)) , identifier )))) , (binary_expression "IVar22 != 0" identifier != number_literal)) ))) )) (compound_statement "{\nLAB_0001d960:\n          iVar27 = prVar17[2].nelem;\nLAB_0001d964:\n          prVar18 = prStack_a0;\n          prVar35 = (re_node_set *)\n                    re_node_set_add_intersect(prVar32,prStack_a0,(re_node_set *)(iVar27 + iVar38));\n          if (prVar35 != (re_node_set *)0x0) {\n            prStack_a0 = prVar35;\n            (**(code **)(puStack_a8 + -0x7db0))(auStack_98._8_4_);\n            prVar35 = prStack_a0;\n            goto LAB_0001db20;\n          }\n          prVar35 = *(re_node_set **)(iVar29 + 4);\n          puVar51 = puStack_a8;\n        }" { (labeled_statement "LAB_0001d960:\n          iVar27 = prVar17[2].nelem;" statement_identifier : (expression_statement "iVar27 = prVar17[2].nelem;" (assignment_expression "iVar27 = prVar17[2].nelem" identifier = (field_expression "prVar17[2].nelem" (subscript_expression "prVar17[2]" identifier [ number_literal ]) . field_identifier)) ;)) (labeled_statement "LAB_0001d964:\n          prVar18 = prStack_a0;" statement_identifier : (expression_statement "prVar18 = prStack_a0;" (assignment_expression "prVar18 = prStack_a0" identifier = identifier) ;)) (expression_statement "prVar35 = (re_node_set *)\n                    re_node_set_add_intersect(prVar32,prStack_a0,(re_node_set *)(iVar27 + iVar38));" (assignment_expression "prVar35 = (re_node_set *)\n                    re_node_set_add_intersect(prVar32,prStack_a0,(re_node_set *)(iVar27 + iVar38))" identifier = (cast_expression "(re_node_set *)\n                    re_node_set_add_intersect(prVar32,prStack_a0,(re_node_set *)(iVar27 + iVar38))" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "re_node_set_add_intersect(prVar32,prStack_a0,(re_node_set *)(iVar27 + iVar38))" identifier (argument_list "(prVar32,prStack_a0,(re_node_set *)(iVar27 + iVar38))" ( identifier , identifier , (cast_expression "(re_node_set *)(iVar27 + iVar38)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + iVar38)" ( (binary_expression "iVar27 + iVar38" identifier + identifier) ))) ))))) ;) (if_statement "if (prVar35 != (re_node_set *)0x0) {\n            prStack_a0 = prVar35;\n            (**(code **)(puStack_a8 + -0x7db0))(auStack_98._8_4_);\n            prVar35 = prStack_a0;\n            goto LAB_0001db20;\n          }" if (parenthesized_expression "(prVar35 != (re_node_set *)0x0)" ( (binary_expression "prVar35 != (re_node_set *)0x0" identifier != (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            prStack_a0 = prVar35;\n            (**(code **)(puStack_a8 + -0x7db0))(auStack_98._8_4_);\n            prVar35 = prStack_a0;\n            goto LAB_0001db20;\n          }" { (expression_statement "prStack_a0 = prVar35;" (assignment_expression "prStack_a0 = prVar35" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_a8 + -0x7db0))(auStack_98._8_4_);" (call_expression "(**(code **)(puStack_a8 + -0x7db0))(auStack_98._8_4_)" (parenthesized_expression "(**(code **)(puStack_a8 + -0x7db0))" ( (pointer_expression "**(code **)(puStack_a8 + -0x7db0)" * (pointer_expression "*(code **)(puStack_a8 + -0x7db0)" * (cast_expression "(code **)(puStack_a8 + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x7db0)" ( (binary_expression "puStack_a8 + -0x7db0" identifier + number_literal) ))))) )) (argument_list "(auStack_98._8_4_)" ( (field_expression "auStack_98._8_4_" identifier . field_identifier) ))) ;) (expression_statement "prVar35 = prStack_a0;" (assignment_expression "prVar35 = prStack_a0" identifier = identifier) ;) (goto_statement "goto LAB_0001db20;" goto statement_identifier ;) })) (expression_statement "prVar35 = *(re_node_set **)(iVar29 + 4);" (assignment_expression "prVar35 = *(re_node_set **)(iVar29 + 4)" identifier = (pointer_expression "*(re_node_set **)(iVar29 + 4)" * (cast_expression "(re_node_set **)(iVar29 + 4)" ( (type_descriptor "re_node_set **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar29 + 4)" ( (binary_expression "iVar29 + 4" identifier + number_literal) ))))) ;) (expression_statement "puVar51 = puStack_a8;" (assignment_expression "puVar51 = puStack_a8" identifier = identifier) ;) }) (else_clause "else {\n          prVar7 = (re_node_set *)puVar41[1];\n          prVar18 = prVar44;\n          puVar51 = puStack_a8;\n          if ((0 < (int)prVar7) &&\n             (IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7), puVar51 = puStack_a8,\n             IVar22 == 0)) {\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) {\n              iVar27 = prVar17[2].nelem;\n              goto LAB_0001d964;\n            }\n          }\n        }" else (compound_statement "{\n          prVar7 = (re_node_set *)puVar41[1];\n          prVar18 = prVar44;\n          puVar51 = puStack_a8;\n          if ((0 < (int)prVar7) &&\n             (IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7), puVar51 = puStack_a8,\n             IVar22 == 0)) {\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) {\n              iVar27 = prVar17[2].nelem;\n              goto LAB_0001d964;\n            }\n          }\n        }" { (expression_statement "prVar7 = (re_node_set *)puVar41[1];" (assignment_expression "prVar7 = (re_node_set *)puVar41[1]" identifier = (cast_expression "(re_node_set *)puVar41[1]" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar41[1]" identifier [ number_literal ]))) ;) (expression_statement "prVar18 = prVar44;" (assignment_expression "prVar18 = prVar44" identifier = identifier) ;) (expression_statement "puVar51 = puStack_a8;" (assignment_expression "puVar51 = puStack_a8" identifier = identifier) ;) (if_statement "if ((0 < (int)prVar7) &&\n             (IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7), puVar51 = puStack_a8,\n             IVar22 == 0)) {\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) {\n              iVar27 = prVar17[2].nelem;\n              goto LAB_0001d964;\n            }\n          }" if (parenthesized_expression "((0 < (int)prVar7) &&\n             (IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7), puVar51 = puStack_a8,\n             IVar22 == 0))" ( (binary_expression "(0 < (int)prVar7) &&\n             (IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7), puVar51 = puStack_a8,\n             IVar22 == 0)" (parenthesized_expression "(0 < (int)prVar7)" ( (binary_expression "0 < (int)prVar7" number_literal < (cast_expression "(int)prVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7), puVar51 = puStack_a8,\n             IVar22 == 0)" ( (comma_expression "IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7), puVar51 = puStack_a8,\n             IVar22 == 0" (assignment_expression "IVar22 = re_node_set_contains(prVar35,(Idx)prVar44,prVar7)" identifier = (call_expression "re_node_set_contains(prVar35,(Idx)prVar44,prVar7)" identifier (argument_list "(prVar35,(Idx)prVar44,prVar7)" ( identifier , (cast_expression "(Idx)prVar44" ( (type_descriptor "Idx" type_identifier) ) identifier) , identifier )))) , (comma_expression "puVar51 = puStack_a8,\n             IVar22 == 0" (assignment_expression "puVar51 = puStack_a8" identifier = identifier) , (binary_expression "IVar22 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n            prVar18 = (re_node_set *)&prVar28->elems;\n            IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);\n            puVar51 = puStack_a8;\n            if (IVar22 != 0) {\n              iVar27 = prVar17[2].nelem;\n              goto LAB_0001d964;\n            }\n          }" { (expression_statement "prVar18 = (re_node_set *)&prVar28->elems;" (assignment_expression "prVar18 = (re_node_set *)&prVar28->elems" identifier = (cast_expression "(re_node_set *)&prVar28->elems" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar28->elems" & (field_expression "prVar28->elems" identifier -> field_identifier)))) ;) (expression_statement "IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7);" (assignment_expression "IVar22 = re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7)" identifier = (call_expression "re_node_set_contains((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7)" identifier (argument_list "((re_node_set *)prVar28->nelem,(Idx)prVar18,prVar7)" ( (cast_expression "(re_node_set *)prVar28->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prVar28->nelem" identifier -> field_identifier)) , (cast_expression "(Idx)prVar18" ( (type_descriptor "Idx" type_identifier) ) identifier) , identifier )))) ;) (expression_statement "puVar51 = puStack_a8;" (assignment_expression "puVar51 = puStack_a8" identifier = identifier) ;) (if_statement "if (IVar22 != 0) {\n              iVar27 = prVar17[2].nelem;\n              goto LAB_0001d964;\n            }" if (parenthesized_expression "(IVar22 != 0)" ( (binary_expression "IVar22 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar27 = prVar17[2].nelem;\n              goto LAB_0001d964;\n            }" { (expression_statement "iVar27 = prVar17[2].nelem;" (assignment_expression "iVar27 = prVar17[2].nelem" identifier = (field_expression "prVar17[2].nelem" (subscript_expression "prVar17[2]" identifier [ number_literal ]) . field_identifier)) ;) (goto_statement "goto LAB_0001d964;" goto statement_identifier ;) })) })) }))))) })) (expression_statement "prVar42 = (re_string_t *)((int)&prVar42->raw_mbs + 1);" (assignment_expression "prVar42 = (re_string_t *)((int)&prVar42->raw_mbs + 1)" identifier = (cast_expression "(re_string_t *)((int)&prVar42->raw_mbs + 1)" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar42->raw_mbs + 1)" ( (binary_expression "(int)&prVar42->raw_mbs + 1" (cast_expression "(int)&prVar42->raw_mbs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar42->raw_mbs" & (field_expression "prVar42->raw_mbs" identifier -> field_identifier))) + number_literal) )))) ;) }) while (parenthesized_expression "((int)prVar42 < (int)prVar35)" ( (binary_expression "(int)prVar42 < (int)prVar35" (cast_expression "(int)prVar42" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)prVar35" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "pstr = prVar42;" (assignment_expression "pstr = prVar42" identifier = identifier) ;) (expression_statement "unaff_s2 = prVar26;" (assignment_expression "unaff_s2 = prVar26" identifier = identifier) ;) (expression_statement "unaff_s3 = prVar28;" (assignment_expression "unaff_s3 = prVar28" identifier = identifier) ;) (expression_statement "idx = (Idx)prVar44;" (assignment_expression "idx = (Idx)prVar44" identifier = (cast_expression "(Idx)prVar44" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "eflags = iVar46;" (assignment_expression "eflags = iVar46" identifier = identifier) ;) (expression_statement "unaff_s7 = prVar32;" (assignment_expression "unaff_s7 = prVar32" identifier = identifier) ;) (expression_statement "unaff_s8 = prVar17;" (assignment_expression "unaff_s8 = prVar17" identifier = identifier) ;) (if_statement "if (0 < (int)prVar35) {\n      iVar46 = 0;\n      prVar26 = (re_node_set *)&prVar28->nelem;\n      prVar17 = (re_node_set *)&prVar28->elems;\n      prVar44 = (re_node_set *)(auStack_98 + 8);\n      do {\n        prVar18 = *(re_node_set **)(*(int *)(iVar29 + 8) + iVar46 * 4);\n        prVar7 = prVar44;\n        IVar22 = re_node_set_contains((re_node_set *)auStack_98._4_4_,(Idx)prVar44,prVar18);\n        prVar32 = prVar17;\n        if (IVar22 == 0) {\n          set = (re_node_set *)prVar28->nelem;\n          idx_00 = prVar17;\n          IVar22 = re_node_set_contains(set,(Idx)prVar17,prVar18);\n          prVar18 = (re_node_set *)(IVar22 + -1);\n          prVar44 = prVar17;\n          prVar32 = idx_00;\n          if ((-1 < (int)prVar18) && ((int)prVar18 < (int)set)) {\n            prVar28->nelem = (Idx)((int)&set[-1].elems + 3);\n            re_node_set_remove_at(prVar26,(Idx)idx_00,prVar18);\n            prVar35 = *(re_node_set **)(iVar29 + 4);\n            prVar44 = idx_00;\n          }\n        }\n        iVar46 = iVar46 + 1;\n        prVar18 = prVar44;\n        prVar17 = prVar32;\n        prVar44 = prVar7;\n        puVar51 = puStack_a8;\n      } while (iVar46 < (int)prVar35);\n    }" if (parenthesized_expression "(0 < (int)prVar35)" ( (binary_expression "0 < (int)prVar35" number_literal < (cast_expression "(int)prVar35" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      iVar46 = 0;\n      prVar26 = (re_node_set *)&prVar28->nelem;\n      prVar17 = (re_node_set *)&prVar28->elems;\n      prVar44 = (re_node_set *)(auStack_98 + 8);\n      do {\n        prVar18 = *(re_node_set **)(*(int *)(iVar29 + 8) + iVar46 * 4);\n        prVar7 = prVar44;\n        IVar22 = re_node_set_contains((re_node_set *)auStack_98._4_4_,(Idx)prVar44,prVar18);\n        prVar32 = prVar17;\n        if (IVar22 == 0) {\n          set = (re_node_set *)prVar28->nelem;\n          idx_00 = prVar17;\n          IVar22 = re_node_set_contains(set,(Idx)prVar17,prVar18);\n          prVar18 = (re_node_set *)(IVar22 + -1);\n          prVar44 = prVar17;\n          prVar32 = idx_00;\n          if ((-1 < (int)prVar18) && ((int)prVar18 < (int)set)) {\n            prVar28->nelem = (Idx)((int)&set[-1].elems + 3);\n            re_node_set_remove_at(prVar26,(Idx)idx_00,prVar18);\n            prVar35 = *(re_node_set **)(iVar29 + 4);\n            prVar44 = idx_00;\n          }\n        }\n        iVar46 = iVar46 + 1;\n        prVar18 = prVar44;\n        prVar17 = prVar32;\n        prVar44 = prVar7;\n        puVar51 = puStack_a8;\n      } while (iVar46 < (int)prVar35);\n    }" { (expression_statement "iVar46 = 0;" (assignment_expression "iVar46 = 0" identifier = number_literal) ;) (expression_statement "prVar26 = (re_node_set *)&prVar28->nelem;" (assignment_expression "prVar26 = (re_node_set *)&prVar28->nelem" identifier = (cast_expression "(re_node_set *)&prVar28->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar28->nelem" & (field_expression "prVar28->nelem" identifier -> field_identifier)))) ;) (expression_statement "prVar17 = (re_node_set *)&prVar28->elems;" (assignment_expression "prVar17 = (re_node_set *)&prVar28->elems" identifier = (cast_expression "(re_node_set *)&prVar28->elems" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar28->elems" & (field_expression "prVar28->elems" identifier -> field_identifier)))) ;) (expression_statement "prVar44 = (re_node_set *)(auStack_98 + 8);" (assignment_expression "prVar44 = (re_node_set *)(auStack_98 + 8)" identifier = (cast_expression "(re_node_set *)(auStack_98 + 8)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_98 + 8)" ( (binary_expression "auStack_98 + 8" identifier + number_literal) )))) ;) (do_statement "do {\n        prVar18 = *(re_node_set **)(*(int *)(iVar29 + 8) + iVar46 * 4);\n        prVar7 = prVar44;\n        IVar22 = re_node_set_contains((re_node_set *)auStack_98._4_4_,(Idx)prVar44,prVar18);\n        prVar32 = prVar17;\n        if (IVar22 == 0) {\n          set = (re_node_set *)prVar28->nelem;\n          idx_00 = prVar17;\n          IVar22 = re_node_set_contains(set,(Idx)prVar17,prVar18);\n          prVar18 = (re_node_set *)(IVar22 + -1);\n          prVar44 = prVar17;\n          prVar32 = idx_00;\n          if ((-1 < (int)prVar18) && ((int)prVar18 < (int)set)) {\n            prVar28->nelem = (Idx)((int)&set[-1].elems + 3);\n            re_node_set_remove_at(prVar26,(Idx)idx_00,prVar18);\n            prVar35 = *(re_node_set **)(iVar29 + 4);\n            prVar44 = idx_00;\n          }\n        }\n        iVar46 = iVar46 + 1;\n        prVar18 = prVar44;\n        prVar17 = prVar32;\n        prVar44 = prVar7;\n        puVar51 = puStack_a8;\n      } while (iVar46 < (int)prVar35);" do (compound_statement "{\n        prVar18 = *(re_node_set **)(*(int *)(iVar29 + 8) + iVar46 * 4);\n        prVar7 = prVar44;\n        IVar22 = re_node_set_contains((re_node_set *)auStack_98._4_4_,(Idx)prVar44,prVar18);\n        prVar32 = prVar17;\n        if (IVar22 == 0) {\n          set = (re_node_set *)prVar28->nelem;\n          idx_00 = prVar17;\n          IVar22 = re_node_set_contains(set,(Idx)prVar17,prVar18);\n          prVar18 = (re_node_set *)(IVar22 + -1);\n          prVar44 = prVar17;\n          prVar32 = idx_00;\n          if ((-1 < (int)prVar18) && ((int)prVar18 < (int)set)) {\n            prVar28->nelem = (Idx)((int)&set[-1].elems + 3);\n            re_node_set_remove_at(prVar26,(Idx)idx_00,prVar18);\n            prVar35 = *(re_node_set **)(iVar29 + 4);\n            prVar44 = idx_00;\n          }\n        }\n        iVar46 = iVar46 + 1;\n        prVar18 = prVar44;\n        prVar17 = prVar32;\n        prVar44 = prVar7;\n        puVar51 = puStack_a8;\n      }" { (expression_statement "prVar18 = *(re_node_set **)(*(int *)(iVar29 + 8) + iVar46 * 4);" (assignment_expression "prVar18 = *(re_node_set **)(*(int *)(iVar29 + 8) + iVar46 * 4)" identifier = (pointer_expression "*(re_node_set **)(*(int *)(iVar29 + 8) + iVar46 * 4)" * (cast_expression "(re_node_set **)(*(int *)(iVar29 + 8) + iVar46 * 4)" ( (type_descriptor "re_node_set **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar29 + 8) + iVar46 * 4)" ( (binary_expression "*(int *)(iVar29 + 8) + iVar46 * 4" (pointer_expression "*(int *)(iVar29 + 8)" * (cast_expression "(int *)(iVar29 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 8)" ( (binary_expression "iVar29 + 8" identifier + number_literal) )))) + (binary_expression "iVar46 * 4" identifier * number_literal)) ))))) ;) (expression_statement "prVar7 = prVar44;" (assignment_expression "prVar7 = prVar44" identifier = identifier) ;) (expression_statement "IVar22 = re_node_set_contains((re_node_set *)auStack_98._4_4_,(Idx)prVar44,prVar18);" (assignment_expression "IVar22 = re_node_set_contains((re_node_set *)auStack_98._4_4_,(Idx)prVar44,prVar18)" identifier = (call_expression "re_node_set_contains((re_node_set *)auStack_98._4_4_,(Idx)prVar44,prVar18)" identifier (argument_list "((re_node_set *)auStack_98._4_4_,(Idx)prVar44,prVar18)" ( (cast_expression "(re_node_set *)auStack_98._4_4_" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_98._4_4_" identifier . field_identifier)) , (cast_expression "(Idx)prVar44" ( (type_descriptor "Idx" type_identifier) ) identifier) , identifier )))) ;) (expression_statement "prVar32 = prVar17;" (assignment_expression "prVar32 = prVar17" identifier = identifier) ;) (if_statement "if (IVar22 == 0) {\n          set = (re_node_set *)prVar28->nelem;\n          idx_00 = prVar17;\n          IVar22 = re_node_set_contains(set,(Idx)prVar17,prVar18);\n          prVar18 = (re_node_set *)(IVar22 + -1);\n          prVar44 = prVar17;\n          prVar32 = idx_00;\n          if ((-1 < (int)prVar18) && ((int)prVar18 < (int)set)) {\n            prVar28->nelem = (Idx)((int)&set[-1].elems + 3);\n            re_node_set_remove_at(prVar26,(Idx)idx_00,prVar18);\n            prVar35 = *(re_node_set **)(iVar29 + 4);\n            prVar44 = idx_00;\n          }\n        }" if (parenthesized_expression "(IVar22 == 0)" ( (binary_expression "IVar22 == 0" identifier == number_literal) )) (compound_statement "{\n          set = (re_node_set *)prVar28->nelem;\n          idx_00 = prVar17;\n          IVar22 = re_node_set_contains(set,(Idx)prVar17,prVar18);\n          prVar18 = (re_node_set *)(IVar22 + -1);\n          prVar44 = prVar17;\n          prVar32 = idx_00;\n          if ((-1 < (int)prVar18) && ((int)prVar18 < (int)set)) {\n            prVar28->nelem = (Idx)((int)&set[-1].elems + 3);\n            re_node_set_remove_at(prVar26,(Idx)idx_00,prVar18);\n            prVar35 = *(re_node_set **)(iVar29 + 4);\n            prVar44 = idx_00;\n          }\n        }" { (expression_statement "set = (re_node_set *)prVar28->nelem;" (assignment_expression "set = (re_node_set *)prVar28->nelem" identifier = (cast_expression "(re_node_set *)prVar28->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prVar28->nelem" identifier -> field_identifier))) ;) (expression_statement "idx_00 = prVar17;" (assignment_expression "idx_00 = prVar17" identifier = identifier) ;) (expression_statement "IVar22 = re_node_set_contains(set,(Idx)prVar17,prVar18);" (assignment_expression "IVar22 = re_node_set_contains(set,(Idx)prVar17,prVar18)" identifier = (call_expression "re_node_set_contains(set,(Idx)prVar17,prVar18)" identifier (argument_list "(set,(Idx)prVar17,prVar18)" ( identifier , (cast_expression "(Idx)prVar17" ( (type_descriptor "Idx" type_identifier) ) identifier) , identifier )))) ;) (expression_statement "prVar18 = (re_node_set *)(IVar22 + -1);" (assignment_expression "prVar18 = (re_node_set *)(IVar22 + -1)" identifier = (cast_expression "(re_node_set *)(IVar22 + -1)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(IVar22 + -1)" ( (binary_expression "IVar22 + -1" identifier + number_literal) )))) ;) (expression_statement "prVar44 = prVar17;" (assignment_expression "prVar44 = prVar17" identifier = identifier) ;) (expression_statement "prVar32 = idx_00;" (assignment_expression "prVar32 = idx_00" identifier = identifier) ;) (if_statement "if ((-1 < (int)prVar18) && ((int)prVar18 < (int)set)) {\n            prVar28->nelem = (Idx)((int)&set[-1].elems + 3);\n            re_node_set_remove_at(prVar26,(Idx)idx_00,prVar18);\n            prVar35 = *(re_node_set **)(iVar29 + 4);\n            prVar44 = idx_00;\n          }" if (parenthesized_expression "((-1 < (int)prVar18) && ((int)prVar18 < (int)set))" ( (binary_expression "(-1 < (int)prVar18) && ((int)prVar18 < (int)set)" (parenthesized_expression "(-1 < (int)prVar18)" ( (binary_expression "-1 < (int)prVar18" number_literal < (cast_expression "(int)prVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "((int)prVar18 < (int)set)" ( (binary_expression "(int)prVar18 < (int)set" (cast_expression "(int)prVar18" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)set" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n            prVar28->nelem = (Idx)((int)&set[-1].elems + 3);\n            re_node_set_remove_at(prVar26,(Idx)idx_00,prVar18);\n            prVar35 = *(re_node_set **)(iVar29 + 4);\n            prVar44 = idx_00;\n          }" { (expression_statement "prVar28->nelem = (Idx)((int)&set[-1].elems + 3);" (assignment_expression "prVar28->nelem = (Idx)((int)&set[-1].elems + 3)" (field_expression "prVar28->nelem" identifier -> field_identifier) = (call_expression "(Idx)((int)&set[-1].elems + 3)" (parenthesized_expression "(Idx)" ( identifier )) (argument_list "((int)&set[-1].elems + 3)" ( (binary_expression "(int)&set[-1].elems + 3" (cast_expression "(int)&set[-1].elems" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&set[-1].elems" & (field_expression "set[-1].elems" (subscript_expression "set[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "re_node_set_remove_at(prVar26,(Idx)idx_00,prVar18);" (call_expression "re_node_set_remove_at(prVar26,(Idx)idx_00,prVar18)" identifier (argument_list "(prVar26,(Idx)idx_00,prVar18)" ( identifier , (cast_expression "(Idx)idx_00" ( (type_descriptor "Idx" type_identifier) ) identifier) , identifier ))) ;) (expression_statement "prVar35 = *(re_node_set **)(iVar29 + 4);" (assignment_expression "prVar35 = *(re_node_set **)(iVar29 + 4)" identifier = (pointer_expression "*(re_node_set **)(iVar29 + 4)" * (cast_expression "(re_node_set **)(iVar29 + 4)" ( (type_descriptor "re_node_set **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar29 + 4)" ( (binary_expression "iVar29 + 4" identifier + number_literal) ))))) ;) (expression_statement "prVar44 = idx_00;" (assignment_expression "prVar44 = idx_00" identifier = identifier) ;) })) })) (expression_statement "iVar46 = iVar46 + 1;" (assignment_expression "iVar46 = iVar46 + 1" identifier = (binary_expression "iVar46 + 1" identifier + number_literal)) ;) (expression_statement "prVar18 = prVar44;" (assignment_expression "prVar18 = prVar44" identifier = identifier) ;) (expression_statement "prVar17 = prVar32;" (assignment_expression "prVar17 = prVar32" identifier = identifier) ;) (expression_statement "prVar44 = prVar7;" (assignment_expression "prVar44 = prVar7" identifier = identifier) ;) (expression_statement "puVar51 = puStack_a8;" (assignment_expression "puVar51 = puStack_a8" identifier = identifier) ;) }) while (parenthesized_expression "(iVar46 < (int)prVar35)" ( (binary_expression "iVar46 < (int)prVar35" identifier < (cast_expression "(int)prVar35" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) })) (expression_statement "(**(code **)(puVar51 + -0x7db0))(auStack_98._8_4_);" (call_expression "(**(code **)(puVar51 + -0x7db0))(auStack_98._8_4_)" (parenthesized_expression "(**(code **)(puVar51 + -0x7db0))" ( (pointer_expression "**(code **)(puVar51 + -0x7db0)" * (pointer_expression "*(code **)(puVar51 + -0x7db0)" * (cast_expression "(code **)(puVar51 + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar51 + -0x7db0)" ( (binary_expression "puVar51 + -0x7db0" identifier + number_literal) ))))) )) (argument_list "(auStack_98._8_4_)" ( (field_expression "auStack_98._8_4_" identifier . field_identifier) ))) ;) (expression_statement "prVar35 = (re_node_set *)0x0;" (assignment_expression "prVar35 = (re_node_set *)0x0" identifier = (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "prVar42 = pstr;" (assignment_expression "prVar42 = pstr" identifier = identifier) ;) (expression_statement "prVar26 = unaff_s2;" (assignment_expression "prVar26 = unaff_s2" identifier = identifier) ;) (expression_statement "prVar28 = unaff_s3;" (assignment_expression "prVar28 = unaff_s3" identifier = identifier) ;) (expression_statement "prVar44 = (re_node_set *)idx;" (assignment_expression "prVar44 = (re_node_set *)idx" identifier = (cast_expression "(re_node_set *)idx" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar46 = eflags;" (assignment_expression "iVar46 = eflags" identifier = identifier) ;) (expression_statement "prVar32 = unaff_s7;" (assignment_expression "prVar32 = unaff_s7" identifier = identifier) ;) (expression_statement "prVar17 = unaff_s8;" (assignment_expression "prVar17 = unaff_s8" identifier = identifier) ;) (labeled_statement "LAB_0001db20:\n  if (prStack_8c == (re_node_set *)*puStack_9c) {\n    return (reg_errcode_t)prVar35;\n  }" statement_identifier : (if_statement "if (prStack_8c == (re_node_set *)*puStack_9c) {\n    return (reg_errcode_t)prVar35;\n  }" if (parenthesized_expression "(prStack_8c == (re_node_set *)*puStack_9c)" ( (binary_expression "prStack_8c == (re_node_set *)*puStack_9c" identifier == (cast_expression "(re_node_set *)*puStack_9c" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puStack_9c" * identifier))) )) (compound_statement "{\n    return (reg_errcode_t)prVar35;\n  }" { (return_statement "return (reg_errcode_t)prVar35;" return (cast_expression "(reg_errcode_t)prVar35" ( (type_descriptor "reg_errcode_t" type_identifier) ) identifier) ;) }))) (expression_statement "pcVar52 = *(code **)(puStack_a8 + -0x7ddc);" (assignment_expression "pcVar52 = *(code **)(puStack_a8 + -0x7ddc)" identifier = (pointer_expression "*(code **)(puStack_a8 + -0x7ddc)" * (cast_expression "(code **)(puStack_a8 + -0x7ddc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x7ddc)" ( (binary_expression "puStack_a8 + -0x7ddc" identifier + number_literal) ))))) ;) (expression_statement "pcVar53 = build_trtable;" (assignment_expression "pcVar53 = build_trtable" identifier = identifier) ;) (expression_statement "prVar7 = prStack_8c;" (assignment_expression "prVar7 = prStack_8c" identifier = identifier) ;) (expression_statement "(*pcVar52)();" (call_expression "(*pcVar52)()" (parenthesized_expression "(*pcVar52)" ( (pointer_expression "*pcVar52" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar8 = *(int **)(pcVar52 + 0x1e784);" (assignment_expression "piVar8 = *(int **)(pcVar52 + 0x1e784)" identifier = (pointer_expression "*(int **)(pcVar52 + 0x1e784)" * (cast_expression "(int **)(pcVar52 + 0x1e784)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar52 + 0x1e784)" ( (binary_expression "pcVar52 + 0x1e784" identifier + number_literal) ))))) ;) (expression_statement "prStack_e4 = (re_dfa_t *)*piVar8;" (assignment_expression "prStack_e4 = (re_dfa_t *)*piVar8" identifier = (cast_expression "(re_dfa_t *)*piVar8" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (expression_statement "prVar35 = prVar18;" (assignment_expression "prVar35 = prVar18" identifier = identifier) ;) (expression_statement "prStack_e0 = prVar42;" (assignment_expression "prStack_e0 = prVar42" identifier = identifier) ;) (expression_statement "iStack_dc = iVar29;" (assignment_expression "iStack_dc = iVar29" identifier = identifier) ;) (expression_statement "prStack_d8 = prVar26;" (assignment_expression "prStack_d8 = prVar26" identifier = identifier) ;) (expression_statement "prStack_d4 = prVar28;" (assignment_expression "prStack_d4 = prVar28" identifier = identifier) ;) (expression_statement "iStack_d0 = iVar45;" (assignment_expression "iStack_d0 = iVar45" identifier = identifier) ;) (expression_statement "prStack_cc = prVar44;" (assignment_expression "prStack_cc = prVar44" identifier = identifier) ;) (expression_statement "iStack_c8 = iVar46;" (assignment_expression "iStack_c8 = iVar46" identifier = identifier) ;) (expression_statement "prStack_c4 = prVar32;" (assignment_expression "prStack_c4 = prVar32" identifier = identifier) ;) (expression_statement "prStack_c0 = prVar17;" (assignment_expression "prStack_c0 = prVar17" identifier = identifier) ;) (expression_statement "pcStack_bc = pcVar53;" (assignment_expression "pcStack_bc = pcVar53" identifier = identifier) ;) (expression_statement "iVar29 = (**(code **)(pcVar52 + 0x1e724))(0x2c00);" (assignment_expression "iVar29 = (**(code **)(pcVar52 + 0x1e724))(0x2c00)" identifier = (call_expression "(**(code **)(pcVar52 + 0x1e724))(0x2c00)" (parenthesized_expression "(**(code **)(pcVar52 + 0x1e724))" ( (pointer_expression "**(code **)(pcVar52 + 0x1e724)" * (pointer_expression "*(code **)(pcVar52 + 0x1e724)" * (cast_expression "(code **)(pcVar52 + 0x1e724)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar52 + 0x1e724)" ( (binary_expression "pcVar52 + 0x1e724" identifier + number_literal) ))))) )) (argument_list "(0x2c00)" ( number_literal )))) ;) (if_statement "if (iVar29 == 0) goto LAB_0001dffc;" if (parenthesized_expression "(iVar29 == 0)" ( (binary_expression "iVar29 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001dffc;" goto statement_identifier ;)) (expression_statement "pIVar24 = prVar18->elems;" (assignment_expression "pIVar24 = prVar18->elems" identifier = (field_expression "prVar18->elems" identifier -> field_identifier)) ;) (expression_statement "prVar18[3].elems = (Idx *)0x0;" (assignment_expression "prVar18[3].elems = (Idx *)0x0" (field_expression "prVar18[3].elems" (subscript_expression "prVar18[3]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar9 = (uint *)(iVar29 + 0xc00);" (assignment_expression "puVar9 = (uint *)(iVar29 + 0xc00)" identifier = (cast_expression "(uint *)(iVar29 + 0xc00)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0xc00)" ( (binary_expression "iVar29 + 0xc00" identifier + number_literal) )))) ;) (expression_statement "prVar18[4].alloc = 0;" (assignment_expression "prVar18[4].alloc = 0" (field_expression "prVar18[4].alloc" (subscript_expression "prVar18[4]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "rStack_144.alloc = 0;" (assignment_expression "rStack_144.alloc = 0" (field_expression "rStack_144.alloc" identifier . field_identifier) = number_literal) ;) (expression_statement "rStack_144.nelem = 0;" (assignment_expression "rStack_144.nelem = 0" (field_expression "rStack_144.nelem" identifier . field_identifier) = number_literal) ;) (expression_statement "rStack_144.elems = (Idx *)0x0;" (assignment_expression "rStack_144.elems = (Idx *)0x0" (field_expression "rStack_144.elems" identifier . field_identifier) = (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_138 = 0;" (assignment_expression "uStack_138 = 0" identifier = number_literal) ;) (expression_statement "uStack_134 = 0;" (assignment_expression "uStack_134 = 0" identifier = number_literal) ;) (expression_statement "uStack_130 = 0;" (assignment_expression "uStack_130 = 0" identifier = number_literal) ;) (expression_statement "uStack_12c = 0;" (assignment_expression "uStack_12c = 0" identifier = number_literal) ;) (expression_statement "uStack_128 = 0;" (assignment_expression "uStack_128 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)pIVar24) {\n    iVar45 = *(int *)(pcVar52 + 0x1e658);\n    iStack_184 = 0;\n    iVar46 = *(int *)(pcVar52 + 0x1e658);\n    prVar28 = (re_node_set *)0x0;\nLAB_0001dc74:\n    iVar38 = iStack_184 * 4;\n    pbVar47 = (byte *)(prVar7->alloc + *(int *)(prVar18[1].alloc + iVar38) * 8);\n    bVar1 = pbVar47[4];\n    uVar4 = (uint)(*(int *)(pbVar47 + 4) << 8) >> 0x16;\n    if (bVar1 == 1) {\n      pIVar15 = &rStack_144.alloc + ((int)(uint)*pbVar47 >> 5);\n      prVar35 = (re_node_set *)(*pIVar15 | 1 << (*pbVar47 & 0x1f));\n      *pIVar15 = (Idx)prVar35;\nLAB_0001e060:\n      IVar22 = rStack_144.alloc;\n      if (uVar4 == 0) goto LAB_0001e15c;\n      if ((uVar4 & 0x20) == 0) {\n        if ((uVar4 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar4 & 4) != 0) {\n          if (bVar1 == 1) {\n            if ((*(uint *)(pbVar47 + 4) & 0x200) == 0) goto LAB_0001e428;\n            pIVar15 = prVar7[7].elems;\n          }\n          else {\n            pIVar15 = prVar7[7].elems;\n          }\n          if ((int)pIVar15 < 2) {\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              pIVar13 = &prVar44->nelem;\n              pIVar15 = &prVar17->alloc;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              prVar35 = (re_node_set *)(prVar44->alloc & *pIVar15);\n              prVar44->alloc = (Idx)prVar35;\n              uVar30 = uVar30 | (uint)prVar35;\n              prVar44 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }\n          else {\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              prVar35 = (re_node_set *)&prVar44->nelem;\n              uVar14 = *puVar40;\n              pIVar15 = &prVar17->alloc;\n              puVar40 = puVar40 + 1;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              uVar14 = (~uVar14 | *pIVar15) & prVar44->alloc;\n              prVar44->alloc = uVar14;\n              uVar30 = uVar30 | uVar14;\n              prVar44 = prVar35;\n            } while (&rStack_124 != prVar35);\n          }\n          if (uVar30 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar4 & 8) == 0) {\nLAB_0001e15c:\n          prVar44 = (re_node_set *)0x0;\n          if (0 < (int)prVar28) {\n            prVar44 = (re_node_set *)0x0;\n            puVar40 = puVar9;\n            do {\n              prVar35 = (re_node_set *)((int)prVar44 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar9 + ((int)(uint)*pbVar47 >> 5))[(int)prVar44 * 8] >> (*pbVar47 & 0x1f) & 1)\n                  != 0)) {\n                uVar4 = 0;\n                prVar17 = &rStack_144;\n                prVar26 = &rStack_124;\n                puVar36 = puVar40;\n                do {\n                  pIVar24 = &prVar17->nelem;\n                  uVar30 = *puVar36;\n                  puVar36 = puVar36 + 1;\n                  uVar30 = prVar17->alloc & uVar30;\n                  prVar26->alloc = uVar30;\n                  uVar4 = uVar4 | uVar30;\n                  prVar17 = (re_node_set *)pIVar24;\n                  prVar26 = (re_node_set *)&prVar26->nelem;\n                } while (&rStack_124 != (re_node_set *)pIVar24);\n                prVar35 = &rStack_144;\n                if (uVar4 != 0) {\n                  uVar30 = 0;\n                  uVar4 = 0;\n                  prVar17 = &rStack_144;\n                  puVar36 = puVar40;\n                  pprVar39 = &prStack_104;\n                  do {\n                    uVar14 = *puVar36;\n                    puVar36 = puVar36 + 1;\n                    prVar21 = (re_dfa_t *)(~prVar17->alloc & uVar14);\n                    uVar14 = ~uVar14 & prVar17->alloc;\n                    *pprVar39 = prVar21;\n                    prVar17->alloc = uVar14;\n                    uVar4 = uVar4 | (uint)prVar21;\n                    uVar30 = uVar30 | uVar14;\n                    prVar17 = (re_node_set *)&prVar17->nelem;\n                    pprVar39 = pprVar39 + 1;\n                  } while (puVar40 + 8 != puVar36);\n                  prVar17 = (re_node_set *)(iVar29 + (int)prVar44 * 0xc);\n                  if (uVar4 != 0) {\n                    iStack_178 = (int)prVar28 * 2;\n                    puVar36 = puVar9 + (int)prVar28 * 8;\n                    *puVar36 = (uint)prStack_104;\n                    puVar36[1] = uStack_100;\n                    puVar36[2] = uStack_fc;\n                    puVar36[3] = uStack_f8;\n                    puVar36[4] = uStack_f4;\n                    puVar36[5] = uStack_f0;\n                    puVar36[6] = uStack_ec;\n                    puVar36[7] = uStack_e8;\n                    puVar40[1] = rStack_124.nelem;\n                    puVar40[2] = (uint)rStack_124.elems;\n                    *puVar40 = rStack_124.alloc;\n                    puVar40[3] = uStack_118;\n                    puVar40[4] = uStack_114;\n                    puVar40[5] = uStack_110;\n                    puVar40[6] = uStack_10c;\n                    puVar40[7] = uStack_108;\n                    prVar35 = prVar17;\n                    iVar27 = (*(code *)(iVar46 + -0x4580))(iVar29 + (int)prVar28 * 0xc);\n                    if (iVar27 != 0) goto LAB_0001e458;\n                    prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n                  }\n                  prVar35 = *(re_node_set **)(prVar18[1].alloc + iVar38);\n                  iVar27 = (*(code *)(iVar45 + -0x7b38))(prVar17);\n                  if (iVar27 == 0) {\n                    iStack_178 = (int)prVar28 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar30 == 0) break;\n                }\n              }\n              puVar40 = puVar40 + 8;\n              prVar44 = (re_node_set *)((int)&prVar44->alloc + 1);\n            } while ((int)prVar44 < (int)prVar28);\n          }\n          iStack_178 = (int)prVar28 * 2;\n          if (prVar28 == prVar44) {\n            iVar27 = prVar18[1].alloc;\n            pcVar53 = *(code **)(pcVar52 + 0x1e724);\n            puVar40 = puVar9 + (int)prVar28 * 8;\n            *puVar40 = rStack_144.alloc;\n            prVar35 = (re_node_set *)(iVar27 + iVar38);\n            puVar40[1] = rStack_144.nelem;\n            puVar41 = (undefined4 *)(iVar29 + (int)prVar28 * 0xc);\n            puVar40[2] = (uint)rStack_144.elems;\n            puVar40[3] = uStack_138;\n            puVar40[4] = uStack_134;\n            puVar40[5] = uStack_130;\n            puVar40[6] = uStack_12c;\n            puVar40[7] = uStack_128;\n            IVar22 = prVar35->alloc;\n            *puVar41 = 1;\n            puVar41[1] = 1;\n            pIVar15 = (Idx *)(*pcVar53)(4);\n            puVar41[2] = pIVar15;\n            if (pIVar15 != (Idx *)0x0) {\n              pIVar24 = prVar18->elems;\n              prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n              *pIVar15 = IVar22;\n              rStack_144.alloc = 0;\n              rStack_144.nelem = 0;\n              rStack_144.elems = (Idx *)0x0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar41[1] = 0;\n            *puVar41 = 0;\n            if (prVar28 == (re_node_set *)0x0) {\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }\n            else {\nLAB_0001e458:\n              iVar45 = iVar29;\n              do {\n                iVar46 = iVar45 + 0xc;\n                (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n                iVar45 = iVar46;\n              } while ((int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29 != iVar46);\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }\n            goto LAB_0001dffc;\n          }\n          pIVar24 = prVar18->elems;\n          goto LAB_0001dcc8;\n        }\n        if ((bVar1 != 1) || ((*(uint *)(pbVar47 + 4) & 0x200) == 0)) {\n          prVar44 = prVar7 + 8;\n          if ((int)prVar7[7].elems < 2) {\n            prVar35 = (re_node_set *)0x0;\n            prVar17 = &rStack_144;\n            do {\n              pIVar13 = &prVar17->nelem;\n              pIVar15 = &prVar44->alloc;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~*pIVar15 & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while ((re_node_set *)pIVar13 != &rStack_124);\n          }\n          else {\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar35 = (re_node_set *)0x0;\n            prVar17 = &rStack_144;\n            do {\n              pIVar13 = &prVar17->nelem;\n              uVar4 = *puVar40;\n              pIVar15 = &prVar44->alloc;\n              puVar40 = puVar40 + 1;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~(*pIVar15 & uVar4) & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }\n          if (prVar35 == (re_node_set *)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        rStack_144.alloc = 0;\n      }\n      else {\n        rStack_144.nelem = 0;\n        rStack_144.alloc = 0;\n        rStack_144.elems = (Idx *)0x0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if ((IVar22 & 0x400U) == 0) goto LAB_0001dcc8;\n        rStack_144.alloc = 0x400;\n        if ((uVar4 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        rStack_144.alloc = 0;\n      }\n      rStack_144.alloc = 0;\n      rStack_144.nelem = 0;\n      rStack_144.elems = (Idx *)0x0;\n      uStack_138 = 0;\n      uStack_134 = 0;\n      uStack_130 = 0;\n      uStack_12c = 0;\n      uStack_128 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        puVar40 = *(uint **)pbVar47;\n        prVar44 = &rStack_144;\n        do {\n          pIVar15 = &prVar44->nelem;\n          uVar30 = *puVar40;\n          puVar40 = puVar40 + 1;\n          prVar35 = (re_node_set *)(prVar44->alloc | uVar30);\n          prVar44->alloc = (Idx)prVar35;\n          prVar44 = (re_node_set *)pIVar15;\n        } while (&rStack_124 != (re_node_set *)pIVar15);\n        goto LAB_0001e060;\n      }\n      if (bVar1 == 5) {\n        if ((int)prVar7[7].elems < 2) {\n          rStack_144.alloc = -1;\n          rStack_144.nelem = 0xffffffff;\n          rStack_144.elems = (Idx *)0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          puVar40 = (uint *)prVar7[5].alloc;\n          prVar44 = &rStack_144;\n          do {\n            pIVar15 = &prVar44->nelem;\n            uVar30 = *puVar40;\n            puVar40 = puVar40 + 1;\n            prVar44->alloc = prVar44->alloc | uVar30;\n            prVar44 = (re_node_set *)pIVar15;\n          } while (&rStack_124 != (re_node_set *)pIVar15);\n        }\n        pIVar15 = prVar7[10].elems;\njoined_r0x0001e3b8:\n        if (((uint)pIVar15 & 0x40) == 0) {\n          rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffbff);\n        }\n        prVar35 = (re_node_set *)rStack_144.alloc;\n        if (((uint)pIVar15 & 0x80) != 0) {\n          prVar35 = (re_node_set *)&SUB_fffffffe;\n          rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      prVar35 = (re_node_set *)0xffffffff;\n      if (bVar1 == 7) {\n        pIVar15 = prVar7[10].elems;\n        rStack_144.alloc = -1;\n        rStack_144.nelem = 0xffffffff;\n        rStack_144.elems = (Idx *)0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }\nLAB_0001dcc8:\n    iStack_184 = iStack_184 + 1;\n    if ((int)pIVar24 <= iStack_184) goto code_r0x0001dcdc;\n    goto LAB_0001dc74;\n  }" if (parenthesized_expression "(0 < (int)pIVar24)" ( (binary_expression "0 < (int)pIVar24" number_literal < (cast_expression "(int)pIVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    iVar45 = *(int *)(pcVar52 + 0x1e658);\n    iStack_184 = 0;\n    iVar46 = *(int *)(pcVar52 + 0x1e658);\n    prVar28 = (re_node_set *)0x0;\nLAB_0001dc74:\n    iVar38 = iStack_184 * 4;\n    pbVar47 = (byte *)(prVar7->alloc + *(int *)(prVar18[1].alloc + iVar38) * 8);\n    bVar1 = pbVar47[4];\n    uVar4 = (uint)(*(int *)(pbVar47 + 4) << 8) >> 0x16;\n    if (bVar1 == 1) {\n      pIVar15 = &rStack_144.alloc + ((int)(uint)*pbVar47 >> 5);\n      prVar35 = (re_node_set *)(*pIVar15 | 1 << (*pbVar47 & 0x1f));\n      *pIVar15 = (Idx)prVar35;\nLAB_0001e060:\n      IVar22 = rStack_144.alloc;\n      if (uVar4 == 0) goto LAB_0001e15c;\n      if ((uVar4 & 0x20) == 0) {\n        if ((uVar4 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar4 & 4) != 0) {\n          if (bVar1 == 1) {\n            if ((*(uint *)(pbVar47 + 4) & 0x200) == 0) goto LAB_0001e428;\n            pIVar15 = prVar7[7].elems;\n          }\n          else {\n            pIVar15 = prVar7[7].elems;\n          }\n          if ((int)pIVar15 < 2) {\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              pIVar13 = &prVar44->nelem;\n              pIVar15 = &prVar17->alloc;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              prVar35 = (re_node_set *)(prVar44->alloc & *pIVar15);\n              prVar44->alloc = (Idx)prVar35;\n              uVar30 = uVar30 | (uint)prVar35;\n              prVar44 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }\n          else {\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              prVar35 = (re_node_set *)&prVar44->nelem;\n              uVar14 = *puVar40;\n              pIVar15 = &prVar17->alloc;\n              puVar40 = puVar40 + 1;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              uVar14 = (~uVar14 | *pIVar15) & prVar44->alloc;\n              prVar44->alloc = uVar14;\n              uVar30 = uVar30 | uVar14;\n              prVar44 = prVar35;\n            } while (&rStack_124 != prVar35);\n          }\n          if (uVar30 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar4 & 8) == 0) {\nLAB_0001e15c:\n          prVar44 = (re_node_set *)0x0;\n          if (0 < (int)prVar28) {\n            prVar44 = (re_node_set *)0x0;\n            puVar40 = puVar9;\n            do {\n              prVar35 = (re_node_set *)((int)prVar44 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar9 + ((int)(uint)*pbVar47 >> 5))[(int)prVar44 * 8] >> (*pbVar47 & 0x1f) & 1)\n                  != 0)) {\n                uVar4 = 0;\n                prVar17 = &rStack_144;\n                prVar26 = &rStack_124;\n                puVar36 = puVar40;\n                do {\n                  pIVar24 = &prVar17->nelem;\n                  uVar30 = *puVar36;\n                  puVar36 = puVar36 + 1;\n                  uVar30 = prVar17->alloc & uVar30;\n                  prVar26->alloc = uVar30;\n                  uVar4 = uVar4 | uVar30;\n                  prVar17 = (re_node_set *)pIVar24;\n                  prVar26 = (re_node_set *)&prVar26->nelem;\n                } while (&rStack_124 != (re_node_set *)pIVar24);\n                prVar35 = &rStack_144;\n                if (uVar4 != 0) {\n                  uVar30 = 0;\n                  uVar4 = 0;\n                  prVar17 = &rStack_144;\n                  puVar36 = puVar40;\n                  pprVar39 = &prStack_104;\n                  do {\n                    uVar14 = *puVar36;\n                    puVar36 = puVar36 + 1;\n                    prVar21 = (re_dfa_t *)(~prVar17->alloc & uVar14);\n                    uVar14 = ~uVar14 & prVar17->alloc;\n                    *pprVar39 = prVar21;\n                    prVar17->alloc = uVar14;\n                    uVar4 = uVar4 | (uint)prVar21;\n                    uVar30 = uVar30 | uVar14;\n                    prVar17 = (re_node_set *)&prVar17->nelem;\n                    pprVar39 = pprVar39 + 1;\n                  } while (puVar40 + 8 != puVar36);\n                  prVar17 = (re_node_set *)(iVar29 + (int)prVar44 * 0xc);\n                  if (uVar4 != 0) {\n                    iStack_178 = (int)prVar28 * 2;\n                    puVar36 = puVar9 + (int)prVar28 * 8;\n                    *puVar36 = (uint)prStack_104;\n                    puVar36[1] = uStack_100;\n                    puVar36[2] = uStack_fc;\n                    puVar36[3] = uStack_f8;\n                    puVar36[4] = uStack_f4;\n                    puVar36[5] = uStack_f0;\n                    puVar36[6] = uStack_ec;\n                    puVar36[7] = uStack_e8;\n                    puVar40[1] = rStack_124.nelem;\n                    puVar40[2] = (uint)rStack_124.elems;\n                    *puVar40 = rStack_124.alloc;\n                    puVar40[3] = uStack_118;\n                    puVar40[4] = uStack_114;\n                    puVar40[5] = uStack_110;\n                    puVar40[6] = uStack_10c;\n                    puVar40[7] = uStack_108;\n                    prVar35 = prVar17;\n                    iVar27 = (*(code *)(iVar46 + -0x4580))(iVar29 + (int)prVar28 * 0xc);\n                    if (iVar27 != 0) goto LAB_0001e458;\n                    prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n                  }\n                  prVar35 = *(re_node_set **)(prVar18[1].alloc + iVar38);\n                  iVar27 = (*(code *)(iVar45 + -0x7b38))(prVar17);\n                  if (iVar27 == 0) {\n                    iStack_178 = (int)prVar28 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar30 == 0) break;\n                }\n              }\n              puVar40 = puVar40 + 8;\n              prVar44 = (re_node_set *)((int)&prVar44->alloc + 1);\n            } while ((int)prVar44 < (int)prVar28);\n          }\n          iStack_178 = (int)prVar28 * 2;\n          if (prVar28 == prVar44) {\n            iVar27 = prVar18[1].alloc;\n            pcVar53 = *(code **)(pcVar52 + 0x1e724);\n            puVar40 = puVar9 + (int)prVar28 * 8;\n            *puVar40 = rStack_144.alloc;\n            prVar35 = (re_node_set *)(iVar27 + iVar38);\n            puVar40[1] = rStack_144.nelem;\n            puVar41 = (undefined4 *)(iVar29 + (int)prVar28 * 0xc);\n            puVar40[2] = (uint)rStack_144.elems;\n            puVar40[3] = uStack_138;\n            puVar40[4] = uStack_134;\n            puVar40[5] = uStack_130;\n            puVar40[6] = uStack_12c;\n            puVar40[7] = uStack_128;\n            IVar22 = prVar35->alloc;\n            *puVar41 = 1;\n            puVar41[1] = 1;\n            pIVar15 = (Idx *)(*pcVar53)(4);\n            puVar41[2] = pIVar15;\n            if (pIVar15 != (Idx *)0x0) {\n              pIVar24 = prVar18->elems;\n              prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n              *pIVar15 = IVar22;\n              rStack_144.alloc = 0;\n              rStack_144.nelem = 0;\n              rStack_144.elems = (Idx *)0x0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar41[1] = 0;\n            *puVar41 = 0;\n            if (prVar28 == (re_node_set *)0x0) {\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }\n            else {\nLAB_0001e458:\n              iVar45 = iVar29;\n              do {\n                iVar46 = iVar45 + 0xc;\n                (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n                iVar45 = iVar46;\n              } while ((int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29 != iVar46);\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }\n            goto LAB_0001dffc;\n          }\n          pIVar24 = prVar18->elems;\n          goto LAB_0001dcc8;\n        }\n        if ((bVar1 != 1) || ((*(uint *)(pbVar47 + 4) & 0x200) == 0)) {\n          prVar44 = prVar7 + 8;\n          if ((int)prVar7[7].elems < 2) {\n            prVar35 = (re_node_set *)0x0;\n            prVar17 = &rStack_144;\n            do {\n              pIVar13 = &prVar17->nelem;\n              pIVar15 = &prVar44->alloc;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~*pIVar15 & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while ((re_node_set *)pIVar13 != &rStack_124);\n          }\n          else {\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar35 = (re_node_set *)0x0;\n            prVar17 = &rStack_144;\n            do {\n              pIVar13 = &prVar17->nelem;\n              uVar4 = *puVar40;\n              pIVar15 = &prVar44->alloc;\n              puVar40 = puVar40 + 1;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~(*pIVar15 & uVar4) & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }\n          if (prVar35 == (re_node_set *)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        rStack_144.alloc = 0;\n      }\n      else {\n        rStack_144.nelem = 0;\n        rStack_144.alloc = 0;\n        rStack_144.elems = (Idx *)0x0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if ((IVar22 & 0x400U) == 0) goto LAB_0001dcc8;\n        rStack_144.alloc = 0x400;\n        if ((uVar4 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        rStack_144.alloc = 0;\n      }\n      rStack_144.alloc = 0;\n      rStack_144.nelem = 0;\n      rStack_144.elems = (Idx *)0x0;\n      uStack_138 = 0;\n      uStack_134 = 0;\n      uStack_130 = 0;\n      uStack_12c = 0;\n      uStack_128 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        puVar40 = *(uint **)pbVar47;\n        prVar44 = &rStack_144;\n        do {\n          pIVar15 = &prVar44->nelem;\n          uVar30 = *puVar40;\n          puVar40 = puVar40 + 1;\n          prVar35 = (re_node_set *)(prVar44->alloc | uVar30);\n          prVar44->alloc = (Idx)prVar35;\n          prVar44 = (re_node_set *)pIVar15;\n        } while (&rStack_124 != (re_node_set *)pIVar15);\n        goto LAB_0001e060;\n      }\n      if (bVar1 == 5) {\n        if ((int)prVar7[7].elems < 2) {\n          rStack_144.alloc = -1;\n          rStack_144.nelem = 0xffffffff;\n          rStack_144.elems = (Idx *)0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          puVar40 = (uint *)prVar7[5].alloc;\n          prVar44 = &rStack_144;\n          do {\n            pIVar15 = &prVar44->nelem;\n            uVar30 = *puVar40;\n            puVar40 = puVar40 + 1;\n            prVar44->alloc = prVar44->alloc | uVar30;\n            prVar44 = (re_node_set *)pIVar15;\n          } while (&rStack_124 != (re_node_set *)pIVar15);\n        }\n        pIVar15 = prVar7[10].elems;\njoined_r0x0001e3b8:\n        if (((uint)pIVar15 & 0x40) == 0) {\n          rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffbff);\n        }\n        prVar35 = (re_node_set *)rStack_144.alloc;\n        if (((uint)pIVar15 & 0x80) != 0) {\n          prVar35 = (re_node_set *)&SUB_fffffffe;\n          rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      prVar35 = (re_node_set *)0xffffffff;\n      if (bVar1 == 7) {\n        pIVar15 = prVar7[10].elems;\n        rStack_144.alloc = -1;\n        rStack_144.nelem = 0xffffffff;\n        rStack_144.elems = (Idx *)0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }\nLAB_0001dcc8:\n    iStack_184 = iStack_184 + 1;\n    if ((int)pIVar24 <= iStack_184) goto code_r0x0001dcdc;\n    goto LAB_0001dc74;\n  }" { (expression_statement "iVar45 = *(int *)(pcVar52 + 0x1e658);" (assignment_expression "iVar45 = *(int *)(pcVar52 + 0x1e658)" identifier = (pointer_expression "*(int *)(pcVar52 + 0x1e658)" * (cast_expression "(int *)(pcVar52 + 0x1e658)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar52 + 0x1e658)" ( (binary_expression "pcVar52 + 0x1e658" identifier + number_literal) ))))) ;) (expression_statement "iStack_184 = 0;" (assignment_expression "iStack_184 = 0" identifier = number_literal) ;) (expression_statement "iVar46 = *(int *)(pcVar52 + 0x1e658);" (assignment_expression "iVar46 = *(int *)(pcVar52 + 0x1e658)" identifier = (pointer_expression "*(int *)(pcVar52 + 0x1e658)" * (cast_expression "(int *)(pcVar52 + 0x1e658)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar52 + 0x1e658)" ( (binary_expression "pcVar52 + 0x1e658" identifier + number_literal) ))))) ;) (expression_statement "prVar28 = (re_node_set *)0x0;" (assignment_expression "prVar28 = (re_node_set *)0x0" identifier = (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0001dc74:\n    iVar38 = iStack_184 * 4;" statement_identifier : (expression_statement "iVar38 = iStack_184 * 4;" (assignment_expression "iVar38 = iStack_184 * 4" identifier = (binary_expression "iStack_184 * 4" identifier * number_literal)) ;)) (expression_statement "pbVar47 = (byte *)(prVar7->alloc + *(int *)(prVar18[1].alloc + iVar38) * 8);" (assignment_expression "pbVar47 = (byte *)(prVar7->alloc + *(int *)(prVar18[1].alloc + iVar38) * 8)" identifier = (cast_expression "(byte *)(prVar7->alloc + *(int *)(prVar18[1].alloc + iVar38) * 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prVar7->alloc + *(int *)(prVar18[1].alloc + iVar38) * 8)" ( (binary_expression "prVar7->alloc + *(int *)(prVar18[1].alloc + iVar38) * 8" (field_expression "prVar7->alloc" identifier -> field_identifier) + (binary_expression "*(int *)(prVar18[1].alloc + iVar38) * 8" (pointer_expression "*(int *)(prVar18[1].alloc + iVar38)" * (cast_expression "(int *)(prVar18[1].alloc + iVar38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prVar18[1].alloc + iVar38)" ( (binary_expression "prVar18[1].alloc + iVar38" (field_expression "prVar18[1].alloc" (subscript_expression "prVar18[1]" identifier [ number_literal ]) . field_identifier) + identifier) )))) * number_literal)) )))) ;) (expression_statement "bVar1 = pbVar47[4];" (assignment_expression "bVar1 = pbVar47[4]" identifier = (subscript_expression "pbVar47[4]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = (uint)(*(int *)(pbVar47 + 4) << 8) >> 0x16;" (assignment_expression "uVar4 = (uint)(*(int *)(pbVar47 + 4) << 8) >> 0x16" identifier = (binary_expression "(uint)(*(int *)(pbVar47 + 4) << 8) >> 0x16" (call_expression "(uint)(*(int *)(pbVar47 + 4) << 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(pbVar47 + 4) << 8)" ( (binary_expression "*(int *)(pbVar47 + 4) << 8" (pointer_expression "*(int *)(pbVar47 + 4)" * (cast_expression "(int *)(pbVar47 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar47 + 4)" ( (binary_expression "pbVar47 + 4" identifier + number_literal) )))) << number_literal) ))) >> number_literal)) ;) (if_statement "if (bVar1 == 1) {\n      pIVar15 = &rStack_144.alloc + ((int)(uint)*pbVar47 >> 5);\n      prVar35 = (re_node_set *)(*pIVar15 | 1 << (*pbVar47 & 0x1f));\n      *pIVar15 = (Idx)prVar35;\nLAB_0001e060:\n      IVar22 = rStack_144.alloc;\n      if (uVar4 == 0) goto LAB_0001e15c;\n      if ((uVar4 & 0x20) == 0) {\n        if ((uVar4 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar4 & 4) != 0) {\n          if (bVar1 == 1) {\n            if ((*(uint *)(pbVar47 + 4) & 0x200) == 0) goto LAB_0001e428;\n            pIVar15 = prVar7[7].elems;\n          }\n          else {\n            pIVar15 = prVar7[7].elems;\n          }\n          if ((int)pIVar15 < 2) {\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              pIVar13 = &prVar44->nelem;\n              pIVar15 = &prVar17->alloc;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              prVar35 = (re_node_set *)(prVar44->alloc & *pIVar15);\n              prVar44->alloc = (Idx)prVar35;\n              uVar30 = uVar30 | (uint)prVar35;\n              prVar44 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }\n          else {\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              prVar35 = (re_node_set *)&prVar44->nelem;\n              uVar14 = *puVar40;\n              pIVar15 = &prVar17->alloc;\n              puVar40 = puVar40 + 1;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              uVar14 = (~uVar14 | *pIVar15) & prVar44->alloc;\n              prVar44->alloc = uVar14;\n              uVar30 = uVar30 | uVar14;\n              prVar44 = prVar35;\n            } while (&rStack_124 != prVar35);\n          }\n          if (uVar30 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar4 & 8) == 0) {\nLAB_0001e15c:\n          prVar44 = (re_node_set *)0x0;\n          if (0 < (int)prVar28) {\n            prVar44 = (re_node_set *)0x0;\n            puVar40 = puVar9;\n            do {\n              prVar35 = (re_node_set *)((int)prVar44 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar9 + ((int)(uint)*pbVar47 >> 5))[(int)prVar44 * 8] >> (*pbVar47 & 0x1f) & 1)\n                  != 0)) {\n                uVar4 = 0;\n                prVar17 = &rStack_144;\n                prVar26 = &rStack_124;\n                puVar36 = puVar40;\n                do {\n                  pIVar24 = &prVar17->nelem;\n                  uVar30 = *puVar36;\n                  puVar36 = puVar36 + 1;\n                  uVar30 = prVar17->alloc & uVar30;\n                  prVar26->alloc = uVar30;\n                  uVar4 = uVar4 | uVar30;\n                  prVar17 = (re_node_set *)pIVar24;\n                  prVar26 = (re_node_set *)&prVar26->nelem;\n                } while (&rStack_124 != (re_node_set *)pIVar24);\n                prVar35 = &rStack_144;\n                if (uVar4 != 0) {\n                  uVar30 = 0;\n                  uVar4 = 0;\n                  prVar17 = &rStack_144;\n                  puVar36 = puVar40;\n                  pprVar39 = &prStack_104;\n                  do {\n                    uVar14 = *puVar36;\n                    puVar36 = puVar36 + 1;\n                    prVar21 = (re_dfa_t *)(~prVar17->alloc & uVar14);\n                    uVar14 = ~uVar14 & prVar17->alloc;\n                    *pprVar39 = prVar21;\n                    prVar17->alloc = uVar14;\n                    uVar4 = uVar4 | (uint)prVar21;\n                    uVar30 = uVar30 | uVar14;\n                    prVar17 = (re_node_set *)&prVar17->nelem;\n                    pprVar39 = pprVar39 + 1;\n                  } while (puVar40 + 8 != puVar36);\n                  prVar17 = (re_node_set *)(iVar29 + (int)prVar44 * 0xc);\n                  if (uVar4 != 0) {\n                    iStack_178 = (int)prVar28 * 2;\n                    puVar36 = puVar9 + (int)prVar28 * 8;\n                    *puVar36 = (uint)prStack_104;\n                    puVar36[1] = uStack_100;\n                    puVar36[2] = uStack_fc;\n                    puVar36[3] = uStack_f8;\n                    puVar36[4] = uStack_f4;\n                    puVar36[5] = uStack_f0;\n                    puVar36[6] = uStack_ec;\n                    puVar36[7] = uStack_e8;\n                    puVar40[1] = rStack_124.nelem;\n                    puVar40[2] = (uint)rStack_124.elems;\n                    *puVar40 = rStack_124.alloc;\n                    puVar40[3] = uStack_118;\n                    puVar40[4] = uStack_114;\n                    puVar40[5] = uStack_110;\n                    puVar40[6] = uStack_10c;\n                    puVar40[7] = uStack_108;\n                    prVar35 = prVar17;\n                    iVar27 = (*(code *)(iVar46 + -0x4580))(iVar29 + (int)prVar28 * 0xc);\n                    if (iVar27 != 0) goto LAB_0001e458;\n                    prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n                  }\n                  prVar35 = *(re_node_set **)(prVar18[1].alloc + iVar38);\n                  iVar27 = (*(code *)(iVar45 + -0x7b38))(prVar17);\n                  if (iVar27 == 0) {\n                    iStack_178 = (int)prVar28 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar30 == 0) break;\n                }\n              }\n              puVar40 = puVar40 + 8;\n              prVar44 = (re_node_set *)((int)&prVar44->alloc + 1);\n            } while ((int)prVar44 < (int)prVar28);\n          }\n          iStack_178 = (int)prVar28 * 2;\n          if (prVar28 == prVar44) {\n            iVar27 = prVar18[1].alloc;\n            pcVar53 = *(code **)(pcVar52 + 0x1e724);\n            puVar40 = puVar9 + (int)prVar28 * 8;\n            *puVar40 = rStack_144.alloc;\n            prVar35 = (re_node_set *)(iVar27 + iVar38);\n            puVar40[1] = rStack_144.nelem;\n            puVar41 = (undefined4 *)(iVar29 + (int)prVar28 * 0xc);\n            puVar40[2] = (uint)rStack_144.elems;\n            puVar40[3] = uStack_138;\n            puVar40[4] = uStack_134;\n            puVar40[5] = uStack_130;\n            puVar40[6] = uStack_12c;\n            puVar40[7] = uStack_128;\n            IVar22 = prVar35->alloc;\n            *puVar41 = 1;\n            puVar41[1] = 1;\n            pIVar15 = (Idx *)(*pcVar53)(4);\n            puVar41[2] = pIVar15;\n            if (pIVar15 != (Idx *)0x0) {\n              pIVar24 = prVar18->elems;\n              prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n              *pIVar15 = IVar22;\n              rStack_144.alloc = 0;\n              rStack_144.nelem = 0;\n              rStack_144.elems = (Idx *)0x0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar41[1] = 0;\n            *puVar41 = 0;\n            if (prVar28 == (re_node_set *)0x0) {\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }\n            else {\nLAB_0001e458:\n              iVar45 = iVar29;\n              do {\n                iVar46 = iVar45 + 0xc;\n                (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n                iVar45 = iVar46;\n              } while ((int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29 != iVar46);\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }\n            goto LAB_0001dffc;\n          }\n          pIVar24 = prVar18->elems;\n          goto LAB_0001dcc8;\n        }\n        if ((bVar1 != 1) || ((*(uint *)(pbVar47 + 4) & 0x200) == 0)) {\n          prVar44 = prVar7 + 8;\n          if ((int)prVar7[7].elems < 2) {\n            prVar35 = (re_node_set *)0x0;\n            prVar17 = &rStack_144;\n            do {\n              pIVar13 = &prVar17->nelem;\n              pIVar15 = &prVar44->alloc;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~*pIVar15 & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while ((re_node_set *)pIVar13 != &rStack_124);\n          }\n          else {\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar35 = (re_node_set *)0x0;\n            prVar17 = &rStack_144;\n            do {\n              pIVar13 = &prVar17->nelem;\n              uVar4 = *puVar40;\n              pIVar15 = &prVar44->alloc;\n              puVar40 = puVar40 + 1;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~(*pIVar15 & uVar4) & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }\n          if (prVar35 == (re_node_set *)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        rStack_144.alloc = 0;\n      }\n      else {\n        rStack_144.nelem = 0;\n        rStack_144.alloc = 0;\n        rStack_144.elems = (Idx *)0x0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if ((IVar22 & 0x400U) == 0) goto LAB_0001dcc8;\n        rStack_144.alloc = 0x400;\n        if ((uVar4 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        rStack_144.alloc = 0;\n      }\n      rStack_144.alloc = 0;\n      rStack_144.nelem = 0;\n      rStack_144.elems = (Idx *)0x0;\n      uStack_138 = 0;\n      uStack_134 = 0;\n      uStack_130 = 0;\n      uStack_12c = 0;\n      uStack_128 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        puVar40 = *(uint **)pbVar47;\n        prVar44 = &rStack_144;\n        do {\n          pIVar15 = &prVar44->nelem;\n          uVar30 = *puVar40;\n          puVar40 = puVar40 + 1;\n          prVar35 = (re_node_set *)(prVar44->alloc | uVar30);\n          prVar44->alloc = (Idx)prVar35;\n          prVar44 = (re_node_set *)pIVar15;\n        } while (&rStack_124 != (re_node_set *)pIVar15);\n        goto LAB_0001e060;\n      }\n      if (bVar1 == 5) {\n        if ((int)prVar7[7].elems < 2) {\n          rStack_144.alloc = -1;\n          rStack_144.nelem = 0xffffffff;\n          rStack_144.elems = (Idx *)0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          puVar40 = (uint *)prVar7[5].alloc;\n          prVar44 = &rStack_144;\n          do {\n            pIVar15 = &prVar44->nelem;\n            uVar30 = *puVar40;\n            puVar40 = puVar40 + 1;\n            prVar44->alloc = prVar44->alloc | uVar30;\n            prVar44 = (re_node_set *)pIVar15;\n          } while (&rStack_124 != (re_node_set *)pIVar15);\n        }\n        pIVar15 = prVar7[10].elems;\njoined_r0x0001e3b8:\n        if (((uint)pIVar15 & 0x40) == 0) {\n          rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffbff);\n        }\n        prVar35 = (re_node_set *)rStack_144.alloc;\n        if (((uint)pIVar15 & 0x80) != 0) {\n          prVar35 = (re_node_set *)&SUB_fffffffe;\n          rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      prVar35 = (re_node_set *)0xffffffff;\n      if (bVar1 == 7) {\n        pIVar15 = prVar7[10].elems;\n        rStack_144.alloc = -1;\n        rStack_144.nelem = 0xffffffff;\n        rStack_144.elems = (Idx *)0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }" if (parenthesized_expression "(bVar1 == 1)" ( (binary_expression "bVar1 == 1" identifier == number_literal) )) (compound_statement "{\n      pIVar15 = &rStack_144.alloc + ((int)(uint)*pbVar47 >> 5);\n      prVar35 = (re_node_set *)(*pIVar15 | 1 << (*pbVar47 & 0x1f));\n      *pIVar15 = (Idx)prVar35;\nLAB_0001e060:\n      IVar22 = rStack_144.alloc;\n      if (uVar4 == 0) goto LAB_0001e15c;\n      if ((uVar4 & 0x20) == 0) {\n        if ((uVar4 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar4 & 4) != 0) {\n          if (bVar1 == 1) {\n            if ((*(uint *)(pbVar47 + 4) & 0x200) == 0) goto LAB_0001e428;\n            pIVar15 = prVar7[7].elems;\n          }\n          else {\n            pIVar15 = prVar7[7].elems;\n          }\n          if ((int)pIVar15 < 2) {\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              pIVar13 = &prVar44->nelem;\n              pIVar15 = &prVar17->alloc;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              prVar35 = (re_node_set *)(prVar44->alloc & *pIVar15);\n              prVar44->alloc = (Idx)prVar35;\n              uVar30 = uVar30 | (uint)prVar35;\n              prVar44 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }\n          else {\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              prVar35 = (re_node_set *)&prVar44->nelem;\n              uVar14 = *puVar40;\n              pIVar15 = &prVar17->alloc;\n              puVar40 = puVar40 + 1;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              uVar14 = (~uVar14 | *pIVar15) & prVar44->alloc;\n              prVar44->alloc = uVar14;\n              uVar30 = uVar30 | uVar14;\n              prVar44 = prVar35;\n            } while (&rStack_124 != prVar35);\n          }\n          if (uVar30 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar4 & 8) == 0) {\nLAB_0001e15c:\n          prVar44 = (re_node_set *)0x0;\n          if (0 < (int)prVar28) {\n            prVar44 = (re_node_set *)0x0;\n            puVar40 = puVar9;\n            do {\n              prVar35 = (re_node_set *)((int)prVar44 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar9 + ((int)(uint)*pbVar47 >> 5))[(int)prVar44 * 8] >> (*pbVar47 & 0x1f) & 1)\n                  != 0)) {\n                uVar4 = 0;\n                prVar17 = &rStack_144;\n                prVar26 = &rStack_124;\n                puVar36 = puVar40;\n                do {\n                  pIVar24 = &prVar17->nelem;\n                  uVar30 = *puVar36;\n                  puVar36 = puVar36 + 1;\n                  uVar30 = prVar17->alloc & uVar30;\n                  prVar26->alloc = uVar30;\n                  uVar4 = uVar4 | uVar30;\n                  prVar17 = (re_node_set *)pIVar24;\n                  prVar26 = (re_node_set *)&prVar26->nelem;\n                } while (&rStack_124 != (re_node_set *)pIVar24);\n                prVar35 = &rStack_144;\n                if (uVar4 != 0) {\n                  uVar30 = 0;\n                  uVar4 = 0;\n                  prVar17 = &rStack_144;\n                  puVar36 = puVar40;\n                  pprVar39 = &prStack_104;\n                  do {\n                    uVar14 = *puVar36;\n                    puVar36 = puVar36 + 1;\n                    prVar21 = (re_dfa_t *)(~prVar17->alloc & uVar14);\n                    uVar14 = ~uVar14 & prVar17->alloc;\n                    *pprVar39 = prVar21;\n                    prVar17->alloc = uVar14;\n                    uVar4 = uVar4 | (uint)prVar21;\n                    uVar30 = uVar30 | uVar14;\n                    prVar17 = (re_node_set *)&prVar17->nelem;\n                    pprVar39 = pprVar39 + 1;\n                  } while (puVar40 + 8 != puVar36);\n                  prVar17 = (re_node_set *)(iVar29 + (int)prVar44 * 0xc);\n                  if (uVar4 != 0) {\n                    iStack_178 = (int)prVar28 * 2;\n                    puVar36 = puVar9 + (int)prVar28 * 8;\n                    *puVar36 = (uint)prStack_104;\n                    puVar36[1] = uStack_100;\n                    puVar36[2] = uStack_fc;\n                    puVar36[3] = uStack_f8;\n                    puVar36[4] = uStack_f4;\n                    puVar36[5] = uStack_f0;\n                    puVar36[6] = uStack_ec;\n                    puVar36[7] = uStack_e8;\n                    puVar40[1] = rStack_124.nelem;\n                    puVar40[2] = (uint)rStack_124.elems;\n                    *puVar40 = rStack_124.alloc;\n                    puVar40[3] = uStack_118;\n                    puVar40[4] = uStack_114;\n                    puVar40[5] = uStack_110;\n                    puVar40[6] = uStack_10c;\n                    puVar40[7] = uStack_108;\n                    prVar35 = prVar17;\n                    iVar27 = (*(code *)(iVar46 + -0x4580))(iVar29 + (int)prVar28 * 0xc);\n                    if (iVar27 != 0) goto LAB_0001e458;\n                    prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n                  }\n                  prVar35 = *(re_node_set **)(prVar18[1].alloc + iVar38);\n                  iVar27 = (*(code *)(iVar45 + -0x7b38))(prVar17);\n                  if (iVar27 == 0) {\n                    iStack_178 = (int)prVar28 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar30 == 0) break;\n                }\n              }\n              puVar40 = puVar40 + 8;\n              prVar44 = (re_node_set *)((int)&prVar44->alloc + 1);\n            } while ((int)prVar44 < (int)prVar28);\n          }\n          iStack_178 = (int)prVar28 * 2;\n          if (prVar28 == prVar44) {\n            iVar27 = prVar18[1].alloc;\n            pcVar53 = *(code **)(pcVar52 + 0x1e724);\n            puVar40 = puVar9 + (int)prVar28 * 8;\n            *puVar40 = rStack_144.alloc;\n            prVar35 = (re_node_set *)(iVar27 + iVar38);\n            puVar40[1] = rStack_144.nelem;\n            puVar41 = (undefined4 *)(iVar29 + (int)prVar28 * 0xc);\n            puVar40[2] = (uint)rStack_144.elems;\n            puVar40[3] = uStack_138;\n            puVar40[4] = uStack_134;\n            puVar40[5] = uStack_130;\n            puVar40[6] = uStack_12c;\n            puVar40[7] = uStack_128;\n            IVar22 = prVar35->alloc;\n            *puVar41 = 1;\n            puVar41[1] = 1;\n            pIVar15 = (Idx *)(*pcVar53)(4);\n            puVar41[2] = pIVar15;\n            if (pIVar15 != (Idx *)0x0) {\n              pIVar24 = prVar18->elems;\n              prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n              *pIVar15 = IVar22;\n              rStack_144.alloc = 0;\n              rStack_144.nelem = 0;\n              rStack_144.elems = (Idx *)0x0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar41[1] = 0;\n            *puVar41 = 0;\n            if (prVar28 == (re_node_set *)0x0) {\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }\n            else {\nLAB_0001e458:\n              iVar45 = iVar29;\n              do {\n                iVar46 = iVar45 + 0xc;\n                (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n                iVar45 = iVar46;\n              } while ((int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29 != iVar46);\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }\n            goto LAB_0001dffc;\n          }\n          pIVar24 = prVar18->elems;\n          goto LAB_0001dcc8;\n        }\n        if ((bVar1 != 1) || ((*(uint *)(pbVar47 + 4) & 0x200) == 0)) {\n          prVar44 = prVar7 + 8;\n          if ((int)prVar7[7].elems < 2) {\n            prVar35 = (re_node_set *)0x0;\n            prVar17 = &rStack_144;\n            do {\n              pIVar13 = &prVar17->nelem;\n              pIVar15 = &prVar44->alloc;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~*pIVar15 & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while ((re_node_set *)pIVar13 != &rStack_124);\n          }\n          else {\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar35 = (re_node_set *)0x0;\n            prVar17 = &rStack_144;\n            do {\n              pIVar13 = &prVar17->nelem;\n              uVar4 = *puVar40;\n              pIVar15 = &prVar44->alloc;\n              puVar40 = puVar40 + 1;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~(*pIVar15 & uVar4) & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }\n          if (prVar35 == (re_node_set *)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        rStack_144.alloc = 0;\n      }\n      else {\n        rStack_144.nelem = 0;\n        rStack_144.alloc = 0;\n        rStack_144.elems = (Idx *)0x0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if ((IVar22 & 0x400U) == 0) goto LAB_0001dcc8;\n        rStack_144.alloc = 0x400;\n        if ((uVar4 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        rStack_144.alloc = 0;\n      }\n      rStack_144.alloc = 0;\n      rStack_144.nelem = 0;\n      rStack_144.elems = (Idx *)0x0;\n      uStack_138 = 0;\n      uStack_134 = 0;\n      uStack_130 = 0;\n      uStack_12c = 0;\n      uStack_128 = 0;\n    }" { (expression_statement "pIVar15 = &rStack_144.alloc + ((int)(uint)*pbVar47 >> 5);" (assignment_expression "pIVar15 = &rStack_144.alloc + ((int)(uint)*pbVar47 >> 5)" identifier = (binary_expression "&rStack_144.alloc + ((int)(uint)*pbVar47 >> 5)" (pointer_expression "&rStack_144.alloc" & (field_expression "rStack_144.alloc" identifier . field_identifier)) + (parenthesized_expression "((int)(uint)*pbVar47 >> 5)" ( (binary_expression "(int)(uint)*pbVar47 >> 5" (binary_expression "(int)(uint)*pbVar47" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) )))) ;) (expression_statement "prVar35 = (re_node_set *)(*pIVar15 | 1 << (*pbVar47 & 0x1f));" (assignment_expression "prVar35 = (re_node_set *)(*pIVar15 | 1 << (*pbVar47 & 0x1f))" identifier = (cast_expression "(re_node_set *)(*pIVar15 | 1 << (*pbVar47 & 0x1f))" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*pIVar15 | 1 << (*pbVar47 & 0x1f))" ( (binary_expression "*pIVar15 | 1 << (*pbVar47 & 0x1f)" (pointer_expression "*pIVar15" * identifier) | (binary_expression "1 << (*pbVar47 & 0x1f)" number_literal << (parenthesized_expression "(*pbVar47 & 0x1f)" ( (binary_expression "*pbVar47 & 0x1f" (pointer_expression "*pbVar47" * identifier) & number_literal) )))) )))) ;) (expression_statement "*pIVar15 = (Idx)prVar35;" (assignment_expression "*pIVar15 = (Idx)prVar35" (pointer_expression "*pIVar15" * identifier) = (cast_expression "(Idx)prVar35" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (labeled_statement "LAB_0001e060:\n      IVar22 = rStack_144.alloc;" statement_identifier : (expression_statement "IVar22 = rStack_144.alloc;" (assignment_expression "IVar22 = rStack_144.alloc" identifier = (field_expression "rStack_144.alloc" identifier . field_identifier)) ;)) (if_statement "if (uVar4 == 0) goto LAB_0001e15c;" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001e15c;" goto statement_identifier ;)) (if_statement "if ((uVar4 & 0x20) == 0) {\n        if ((uVar4 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar4 & 4) != 0) {\n          if (bVar1 == 1) {\n            if ((*(uint *)(pbVar47 + 4) & 0x200) == 0) goto LAB_0001e428;\n            pIVar15 = prVar7[7].elems;\n          }\n          else {\n            pIVar15 = prVar7[7].elems;\n          }\n          if ((int)pIVar15 < 2) {\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              pIVar13 = &prVar44->nelem;\n              pIVar15 = &prVar17->alloc;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              prVar35 = (re_node_set *)(prVar44->alloc & *pIVar15);\n              prVar44->alloc = (Idx)prVar35;\n              uVar30 = uVar30 | (uint)prVar35;\n              prVar44 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }\n          else {\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              prVar35 = (re_node_set *)&prVar44->nelem;\n              uVar14 = *puVar40;\n              pIVar15 = &prVar17->alloc;\n              puVar40 = puVar40 + 1;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              uVar14 = (~uVar14 | *pIVar15) & prVar44->alloc;\n              prVar44->alloc = uVar14;\n              uVar30 = uVar30 | uVar14;\n              prVar44 = prVar35;\n            } while (&rStack_124 != prVar35);\n          }\n          if (uVar30 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar4 & 8) == 0) {\nLAB_0001e15c:\n          prVar44 = (re_node_set *)0x0;\n          if (0 < (int)prVar28) {\n            prVar44 = (re_node_set *)0x0;\n            puVar40 = puVar9;\n            do {\n              prVar35 = (re_node_set *)((int)prVar44 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar9 + ((int)(uint)*pbVar47 >> 5))[(int)prVar44 * 8] >> (*pbVar47 & 0x1f) & 1)\n                  != 0)) {\n                uVar4 = 0;\n                prVar17 = &rStack_144;\n                prVar26 = &rStack_124;\n                puVar36 = puVar40;\n                do {\n                  pIVar24 = &prVar17->nelem;\n                  uVar30 = *puVar36;\n                  puVar36 = puVar36 + 1;\n                  uVar30 = prVar17->alloc & uVar30;\n                  prVar26->alloc = uVar30;\n                  uVar4 = uVar4 | uVar30;\n                  prVar17 = (re_node_set *)pIVar24;\n                  prVar26 = (re_node_set *)&prVar26->nelem;\n                } while (&rStack_124 != (re_node_set *)pIVar24);\n                prVar35 = &rStack_144;\n                if (uVar4 != 0) {\n                  uVar30 = 0;\n                  uVar4 = 0;\n                  prVar17 = &rStack_144;\n                  puVar36 = puVar40;\n                  pprVar39 = &prStack_104;\n                  do {\n                    uVar14 = *puVar36;\n                    puVar36 = puVar36 + 1;\n                    prVar21 = (re_dfa_t *)(~prVar17->alloc & uVar14);\n                    uVar14 = ~uVar14 & prVar17->alloc;\n                    *pprVar39 = prVar21;\n                    prVar17->alloc = uVar14;\n                    uVar4 = uVar4 | (uint)prVar21;\n                    uVar30 = uVar30 | uVar14;\n                    prVar17 = (re_node_set *)&prVar17->nelem;\n                    pprVar39 = pprVar39 + 1;\n                  } while (puVar40 + 8 != puVar36);\n                  prVar17 = (re_node_set *)(iVar29 + (int)prVar44 * 0xc);\n                  if (uVar4 != 0) {\n                    iStack_178 = (int)prVar28 * 2;\n                    puVar36 = puVar9 + (int)prVar28 * 8;\n                    *puVar36 = (uint)prStack_104;\n                    puVar36[1] = uStack_100;\n                    puVar36[2] = uStack_fc;\n                    puVar36[3] = uStack_f8;\n                    puVar36[4] = uStack_f4;\n                    puVar36[5] = uStack_f0;\n                    puVar36[6] = uStack_ec;\n                    puVar36[7] = uStack_e8;\n                    puVar40[1] = rStack_124.nelem;\n                    puVar40[2] = (uint)rStack_124.elems;\n                    *puVar40 = rStack_124.alloc;\n                    puVar40[3] = uStack_118;\n                    puVar40[4] = uStack_114;\n                    puVar40[5] = uStack_110;\n                    puVar40[6] = uStack_10c;\n                    puVar40[7] = uStack_108;\n                    prVar35 = prVar17;\n                    iVar27 = (*(code *)(iVar46 + -0x4580))(iVar29 + (int)prVar28 * 0xc);\n                    if (iVar27 != 0) goto LAB_0001e458;\n                    prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n                  }\n                  prVar35 = *(re_node_set **)(prVar18[1].alloc + iVar38);\n                  iVar27 = (*(code *)(iVar45 + -0x7b38))(prVar17);\n                  if (iVar27 == 0) {\n                    iStack_178 = (int)prVar28 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar30 == 0) break;\n                }\n              }\n              puVar40 = puVar40 + 8;\n              prVar44 = (re_node_set *)((int)&prVar44->alloc + 1);\n            } while ((int)prVar44 < (int)prVar28);\n          }\n          iStack_178 = (int)prVar28 * 2;\n          if (prVar28 == prVar44) {\n            iVar27 = prVar18[1].alloc;\n            pcVar53 = *(code **)(pcVar52 + 0x1e724);\n            puVar40 = puVar9 + (int)prVar28 * 8;\n            *puVar40 = rStack_144.alloc;\n            prVar35 = (re_node_set *)(iVar27 + iVar38);\n            puVar40[1] = rStack_144.nelem;\n            puVar41 = (undefined4 *)(iVar29 + (int)prVar28 * 0xc);\n            puVar40[2] = (uint)rStack_144.elems;\n            puVar40[3] = uStack_138;\n            puVar40[4] = uStack_134;\n            puVar40[5] = uStack_130;\n            puVar40[6] = uStack_12c;\n            puVar40[7] = uStack_128;\n            IVar22 = prVar35->alloc;\n            *puVar41 = 1;\n            puVar41[1] = 1;\n            pIVar15 = (Idx *)(*pcVar53)(4);\n            puVar41[2] = pIVar15;\n            if (pIVar15 != (Idx *)0x0) {\n              pIVar24 = prVar18->elems;\n              prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n              *pIVar15 = IVar22;\n              rStack_144.alloc = 0;\n              rStack_144.nelem = 0;\n              rStack_144.elems = (Idx *)0x0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar41[1] = 0;\n            *puVar41 = 0;\n            if (prVar28 == (re_node_set *)0x0) {\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }\n            else {\nLAB_0001e458:\n              iVar45 = iVar29;\n              do {\n                iVar46 = iVar45 + 0xc;\n                (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n                iVar45 = iVar46;\n              } while ((int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29 != iVar46);\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }\n            goto LAB_0001dffc;\n          }\n          pIVar24 = prVar18->elems;\n          goto LAB_0001dcc8;\n        }\n        if ((bVar1 != 1) || ((*(uint *)(pbVar47 + 4) & 0x200) == 0)) {\n          prVar44 = prVar7 + 8;\n          if ((int)prVar7[7].elems < 2) {\n            prVar35 = (re_node_set *)0x0;\n            prVar17 = &rStack_144;\n            do {\n              pIVar13 = &prVar17->nelem;\n              pIVar15 = &prVar44->alloc;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~*pIVar15 & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while ((re_node_set *)pIVar13 != &rStack_124);\n          }\n          else {\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar35 = (re_node_set *)0x0;\n            prVar17 = &rStack_144;\n            do {\n              pIVar13 = &prVar17->nelem;\n              uVar4 = *puVar40;\n              pIVar15 = &prVar44->alloc;\n              puVar40 = puVar40 + 1;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~(*pIVar15 & uVar4) & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }\n          if (prVar35 == (re_node_set *)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        rStack_144.alloc = 0;\n      }\n      else {\n        rStack_144.nelem = 0;\n        rStack_144.alloc = 0;\n        rStack_144.elems = (Idx *)0x0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if ((IVar22 & 0x400U) == 0) goto LAB_0001dcc8;\n        rStack_144.alloc = 0x400;\n        if ((uVar4 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        rStack_144.alloc = 0;\n      }" if (parenthesized_expression "((uVar4 & 0x20) == 0)" ( (binary_expression "(uVar4 & 0x20) == 0" (parenthesized_expression "(uVar4 & 0x20)" ( (binary_expression "uVar4 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((uVar4 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar4 & 4) != 0) {\n          if (bVar1 == 1) {\n            if ((*(uint *)(pbVar47 + 4) & 0x200) == 0) goto LAB_0001e428;\n            pIVar15 = prVar7[7].elems;\n          }\n          else {\n            pIVar15 = prVar7[7].elems;\n          }\n          if ((int)pIVar15 < 2) {\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              pIVar13 = &prVar44->nelem;\n              pIVar15 = &prVar17->alloc;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              prVar35 = (re_node_set *)(prVar44->alloc & *pIVar15);\n              prVar44->alloc = (Idx)prVar35;\n              uVar30 = uVar30 | (uint)prVar35;\n              prVar44 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }\n          else {\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              prVar35 = (re_node_set *)&prVar44->nelem;\n              uVar14 = *puVar40;\n              pIVar15 = &prVar17->alloc;\n              puVar40 = puVar40 + 1;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              uVar14 = (~uVar14 | *pIVar15) & prVar44->alloc;\n              prVar44->alloc = uVar14;\n              uVar30 = uVar30 | uVar14;\n              prVar44 = prVar35;\n            } while (&rStack_124 != prVar35);\n          }\n          if (uVar30 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar4 & 8) == 0) {\nLAB_0001e15c:\n          prVar44 = (re_node_set *)0x0;\n          if (0 < (int)prVar28) {\n            prVar44 = (re_node_set *)0x0;\n            puVar40 = puVar9;\n            do {\n              prVar35 = (re_node_set *)((int)prVar44 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar9 + ((int)(uint)*pbVar47 >> 5))[(int)prVar44 * 8] >> (*pbVar47 & 0x1f) & 1)\n                  != 0)) {\n                uVar4 = 0;\n                prVar17 = &rStack_144;\n                prVar26 = &rStack_124;\n                puVar36 = puVar40;\n                do {\n                  pIVar24 = &prVar17->nelem;\n                  uVar30 = *puVar36;\n                  puVar36 = puVar36 + 1;\n                  uVar30 = prVar17->alloc & uVar30;\n                  prVar26->alloc = uVar30;\n                  uVar4 = uVar4 | uVar30;\n                  prVar17 = (re_node_set *)pIVar24;\n                  prVar26 = (re_node_set *)&prVar26->nelem;\n                } while (&rStack_124 != (re_node_set *)pIVar24);\n                prVar35 = &rStack_144;\n                if (uVar4 != 0) {\n                  uVar30 = 0;\n                  uVar4 = 0;\n                  prVar17 = &rStack_144;\n                  puVar36 = puVar40;\n                  pprVar39 = &prStack_104;\n                  do {\n                    uVar14 = *puVar36;\n                    puVar36 = puVar36 + 1;\n                    prVar21 = (re_dfa_t *)(~prVar17->alloc & uVar14);\n                    uVar14 = ~uVar14 & prVar17->alloc;\n                    *pprVar39 = prVar21;\n                    prVar17->alloc = uVar14;\n                    uVar4 = uVar4 | (uint)prVar21;\n                    uVar30 = uVar30 | uVar14;\n                    prVar17 = (re_node_set *)&prVar17->nelem;\n                    pprVar39 = pprVar39 + 1;\n                  } while (puVar40 + 8 != puVar36);\n                  prVar17 = (re_node_set *)(iVar29 + (int)prVar44 * 0xc);\n                  if (uVar4 != 0) {\n                    iStack_178 = (int)prVar28 * 2;\n                    puVar36 = puVar9 + (int)prVar28 * 8;\n                    *puVar36 = (uint)prStack_104;\n                    puVar36[1] = uStack_100;\n                    puVar36[2] = uStack_fc;\n                    puVar36[3] = uStack_f8;\n                    puVar36[4] = uStack_f4;\n                    puVar36[5] = uStack_f0;\n                    puVar36[6] = uStack_ec;\n                    puVar36[7] = uStack_e8;\n                    puVar40[1] = rStack_124.nelem;\n                    puVar40[2] = (uint)rStack_124.elems;\n                    *puVar40 = rStack_124.alloc;\n                    puVar40[3] = uStack_118;\n                    puVar40[4] = uStack_114;\n                    puVar40[5] = uStack_110;\n                    puVar40[6] = uStack_10c;\n                    puVar40[7] = uStack_108;\n                    prVar35 = prVar17;\n                    iVar27 = (*(code *)(iVar46 + -0x4580))(iVar29 + (int)prVar28 * 0xc);\n                    if (iVar27 != 0) goto LAB_0001e458;\n                    prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n                  }\n                  prVar35 = *(re_node_set **)(prVar18[1].alloc + iVar38);\n                  iVar27 = (*(code *)(iVar45 + -0x7b38))(prVar17);\n                  if (iVar27 == 0) {\n                    iStack_178 = (int)prVar28 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar30 == 0) break;\n                }\n              }\n              puVar40 = puVar40 + 8;\n              prVar44 = (re_node_set *)((int)&prVar44->alloc + 1);\n            } while ((int)prVar44 < (int)prVar28);\n          }\n          iStack_178 = (int)prVar28 * 2;\n          if (prVar28 == prVar44) {\n            iVar27 = prVar18[1].alloc;\n            pcVar53 = *(code **)(pcVar52 + 0x1e724);\n            puVar40 = puVar9 + (int)prVar28 * 8;\n            *puVar40 = rStack_144.alloc;\n            prVar35 = (re_node_set *)(iVar27 + iVar38);\n            puVar40[1] = rStack_144.nelem;\n            puVar41 = (undefined4 *)(iVar29 + (int)prVar28 * 0xc);\n            puVar40[2] = (uint)rStack_144.elems;\n            puVar40[3] = uStack_138;\n            puVar40[4] = uStack_134;\n            puVar40[5] = uStack_130;\n            puVar40[6] = uStack_12c;\n            puVar40[7] = uStack_128;\n            IVar22 = prVar35->alloc;\n            *puVar41 = 1;\n            puVar41[1] = 1;\n            pIVar15 = (Idx *)(*pcVar53)(4);\n            puVar41[2] = pIVar15;\n            if (pIVar15 != (Idx *)0x0) {\n              pIVar24 = prVar18->elems;\n              prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n              *pIVar15 = IVar22;\n              rStack_144.alloc = 0;\n              rStack_144.nelem = 0;\n              rStack_144.elems = (Idx *)0x0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar41[1] = 0;\n            *puVar41 = 0;\n            if (prVar28 == (re_node_set *)0x0) {\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }\n            else {\nLAB_0001e458:\n              iVar45 = iVar29;\n              do {\n                iVar46 = iVar45 + 0xc;\n                (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n                iVar45 = iVar46;\n              } while ((int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29 != iVar46);\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }\n            goto LAB_0001dffc;\n          }\n          pIVar24 = prVar18->elems;\n          goto LAB_0001dcc8;\n        }\n        if ((bVar1 != 1) || ((*(uint *)(pbVar47 + 4) & 0x200) == 0)) {\n          prVar44 = prVar7 + 8;\n          if ((int)prVar7[7].elems < 2) {\n            prVar35 = (re_node_set *)0x0;\n            prVar17 = &rStack_144;\n            do {\n              pIVar13 = &prVar17->nelem;\n              pIVar15 = &prVar44->alloc;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~*pIVar15 & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while ((re_node_set *)pIVar13 != &rStack_124);\n          }\n          else {\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar35 = (re_node_set *)0x0;\n            prVar17 = &rStack_144;\n            do {\n              pIVar13 = &prVar17->nelem;\n              uVar4 = *puVar40;\n              pIVar15 = &prVar44->alloc;\n              puVar40 = puVar40 + 1;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~(*pIVar15 & uVar4) & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }\n          if (prVar35 == (re_node_set *)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        rStack_144.alloc = 0;\n      }" { (if_statement "if ((uVar4 & 0x80) != 0) goto LAB_0001e428;" if (parenthesized_expression "((uVar4 & 0x80) != 0)" ( (binary_expression "(uVar4 & 0x80) != 0" (parenthesized_expression "(uVar4 & 0x80)" ( (binary_expression "uVar4 & 0x80" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001e428;" goto statement_identifier ;)) (labeled_statement "LAB_0001e07c:\n        if ((uVar4 & 4) != 0) {\n          if (bVar1 == 1) {\n            if ((*(uint *)(pbVar47 + 4) & 0x200) == 0) goto LAB_0001e428;\n            pIVar15 = prVar7[7].elems;\n          }\n          else {\n            pIVar15 = prVar7[7].elems;\n          }\n          if ((int)pIVar15 < 2) {\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              pIVar13 = &prVar44->nelem;\n              pIVar15 = &prVar17->alloc;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              prVar35 = (re_node_set *)(prVar44->alloc & *pIVar15);\n              prVar44->alloc = (Idx)prVar35;\n              uVar30 = uVar30 | (uint)prVar35;\n              prVar44 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }\n          else {\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              prVar35 = (re_node_set *)&prVar44->nelem;\n              uVar14 = *puVar40;\n              pIVar15 = &prVar17->alloc;\n              puVar40 = puVar40 + 1;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              uVar14 = (~uVar14 | *pIVar15) & prVar44->alloc;\n              prVar44->alloc = uVar14;\n              uVar30 = uVar30 | uVar14;\n              prVar44 = prVar35;\n            } while (&rStack_124 != prVar35);\n          }\n          if (uVar30 == 0) goto LAB_0001dcc8;\n        }" statement_identifier : (if_statement "if ((uVar4 & 4) != 0) {\n          if (bVar1 == 1) {\n            if ((*(uint *)(pbVar47 + 4) & 0x200) == 0) goto LAB_0001e428;\n            pIVar15 = prVar7[7].elems;\n          }\n          else {\n            pIVar15 = prVar7[7].elems;\n          }\n          if ((int)pIVar15 < 2) {\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              pIVar13 = &prVar44->nelem;\n              pIVar15 = &prVar17->alloc;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              prVar35 = (re_node_set *)(prVar44->alloc & *pIVar15);\n              prVar44->alloc = (Idx)prVar35;\n              uVar30 = uVar30 | (uint)prVar35;\n              prVar44 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }\n          else {\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              prVar35 = (re_node_set *)&prVar44->nelem;\n              uVar14 = *puVar40;\n              pIVar15 = &prVar17->alloc;\n              puVar40 = puVar40 + 1;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              uVar14 = (~uVar14 | *pIVar15) & prVar44->alloc;\n              prVar44->alloc = uVar14;\n              uVar30 = uVar30 | uVar14;\n              prVar44 = prVar35;\n            } while (&rStack_124 != prVar35);\n          }\n          if (uVar30 == 0) goto LAB_0001dcc8;\n        }" if (parenthesized_expression "((uVar4 & 4) != 0)" ( (binary_expression "(uVar4 & 4) != 0" (parenthesized_expression "(uVar4 & 4)" ( (binary_expression "uVar4 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          if (bVar1 == 1) {\n            if ((*(uint *)(pbVar47 + 4) & 0x200) == 0) goto LAB_0001e428;\n            pIVar15 = prVar7[7].elems;\n          }\n          else {\n            pIVar15 = prVar7[7].elems;\n          }\n          if ((int)pIVar15 < 2) {\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              pIVar13 = &prVar44->nelem;\n              pIVar15 = &prVar17->alloc;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              prVar35 = (re_node_set *)(prVar44->alloc & *pIVar15);\n              prVar44->alloc = (Idx)prVar35;\n              uVar30 = uVar30 | (uint)prVar35;\n              prVar44 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }\n          else {\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              prVar35 = (re_node_set *)&prVar44->nelem;\n              uVar14 = *puVar40;\n              pIVar15 = &prVar17->alloc;\n              puVar40 = puVar40 + 1;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              uVar14 = (~uVar14 | *pIVar15) & prVar44->alloc;\n              prVar44->alloc = uVar14;\n              uVar30 = uVar30 | uVar14;\n              prVar44 = prVar35;\n            } while (&rStack_124 != prVar35);\n          }\n          if (uVar30 == 0) goto LAB_0001dcc8;\n        }" { (if_statement "if (bVar1 == 1) {\n            if ((*(uint *)(pbVar47 + 4) & 0x200) == 0) goto LAB_0001e428;\n            pIVar15 = prVar7[7].elems;\n          }\n          else {\n            pIVar15 = prVar7[7].elems;\n          }" if (parenthesized_expression "(bVar1 == 1)" ( (binary_expression "bVar1 == 1" identifier == number_literal) )) (compound_statement "{\n            if ((*(uint *)(pbVar47 + 4) & 0x200) == 0) goto LAB_0001e428;\n            pIVar15 = prVar7[7].elems;\n          }" { (if_statement "if ((*(uint *)(pbVar47 + 4) & 0x200) == 0) goto LAB_0001e428;" if (parenthesized_expression "((*(uint *)(pbVar47 + 4) & 0x200) == 0)" ( (binary_expression "(*(uint *)(pbVar47 + 4) & 0x200) == 0" (parenthesized_expression "(*(uint *)(pbVar47 + 4) & 0x200)" ( (binary_expression "*(uint *)(pbVar47 + 4) & 0x200" (pointer_expression "*(uint *)(pbVar47 + 4)" * (cast_expression "(uint *)(pbVar47 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar47 + 4)" ( (binary_expression "pbVar47 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001e428;" goto statement_identifier ;)) (expression_statement "pIVar15 = prVar7[7].elems;" (assignment_expression "pIVar15 = prVar7[7].elems" identifier = (field_expression "prVar7[7].elems" (subscript_expression "prVar7[7]" identifier [ number_literal ]) . field_identifier)) ;) }) (else_clause "else {\n            pIVar15 = prVar7[7].elems;\n          }" else (compound_statement "{\n            pIVar15 = prVar7[7].elems;\n          }" { (expression_statement "pIVar15 = prVar7[7].elems;" (assignment_expression "pIVar15 = prVar7[7].elems" identifier = (field_expression "prVar7[7].elems" (subscript_expression "prVar7[7]" identifier [ number_literal ]) . field_identifier)) ;) }))) (if_statement "if ((int)pIVar15 < 2) {\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              pIVar13 = &prVar44->nelem;\n              pIVar15 = &prVar17->alloc;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              prVar35 = (re_node_set *)(prVar44->alloc & *pIVar15);\n              prVar44->alloc = (Idx)prVar35;\n              uVar30 = uVar30 | (uint)prVar35;\n              prVar44 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }\n          else {\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              prVar35 = (re_node_set *)&prVar44->nelem;\n              uVar14 = *puVar40;\n              pIVar15 = &prVar17->alloc;\n              puVar40 = puVar40 + 1;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              uVar14 = (~uVar14 | *pIVar15) & prVar44->alloc;\n              prVar44->alloc = uVar14;\n              uVar30 = uVar30 | uVar14;\n              prVar44 = prVar35;\n            } while (&rStack_124 != prVar35);\n          }" if (parenthesized_expression "((int)pIVar15 < 2)" ( (binary_expression "(int)pIVar15 < 2" (cast_expression "(int)pIVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              pIVar13 = &prVar44->nelem;\n              pIVar15 = &prVar17->alloc;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              prVar35 = (re_node_set *)(prVar44->alloc & *pIVar15);\n              prVar44->alloc = (Idx)prVar35;\n              uVar30 = uVar30 | (uint)prVar35;\n              prVar44 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }" { (expression_statement "prVar17 = prVar7 + 8;" (assignment_expression "prVar17 = prVar7 + 8" identifier = (binary_expression "prVar7 + 8" identifier + number_literal)) ;) (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" identifier = number_literal) ;) (expression_statement "prVar44 = &rStack_144;" (assignment_expression "prVar44 = &rStack_144" identifier = (pointer_expression "&rStack_144" & identifier)) ;) (do_statement "do {\n              pIVar13 = &prVar44->nelem;\n              pIVar15 = &prVar17->alloc;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              prVar35 = (re_node_set *)(prVar44->alloc & *pIVar15);\n              prVar44->alloc = (Idx)prVar35;\n              uVar30 = uVar30 | (uint)prVar35;\n              prVar44 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);" do (compound_statement "{\n              pIVar13 = &prVar44->nelem;\n              pIVar15 = &prVar17->alloc;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              prVar35 = (re_node_set *)(prVar44->alloc & *pIVar15);\n              prVar44->alloc = (Idx)prVar35;\n              uVar30 = uVar30 | (uint)prVar35;\n              prVar44 = (re_node_set *)pIVar13;\n            }" { (expression_statement "pIVar13 = &prVar44->nelem;" (assignment_expression "pIVar13 = &prVar44->nelem" identifier = (pointer_expression "&prVar44->nelem" & (field_expression "prVar44->nelem" identifier -> field_identifier))) ;) (expression_statement "pIVar15 = &prVar17->alloc;" (assignment_expression "pIVar15 = &prVar17->alloc" identifier = (pointer_expression "&prVar17->alloc" & (field_expression "prVar17->alloc" identifier -> field_identifier))) ;) (expression_statement "prVar17 = (re_node_set *)&prVar17->nelem;" (assignment_expression "prVar17 = (re_node_set *)&prVar17->nelem" identifier = (cast_expression "(re_node_set *)&prVar17->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar17->nelem" & (field_expression "prVar17->nelem" identifier -> field_identifier)))) ;) (expression_statement "prVar35 = (re_node_set *)(prVar44->alloc & *pIVar15);" (assignment_expression "prVar35 = (re_node_set *)(prVar44->alloc & *pIVar15)" identifier = (cast_expression "(re_node_set *)(prVar44->alloc & *pIVar15)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prVar44->alloc & *pIVar15)" ( (binary_expression "prVar44->alloc & *pIVar15" (field_expression "prVar44->alloc" identifier -> field_identifier) & (pointer_expression "*pIVar15" * identifier)) )))) ;) (expression_statement "prVar44->alloc = (Idx)prVar35;" (assignment_expression "prVar44->alloc = (Idx)prVar35" (field_expression "prVar44->alloc" identifier -> field_identifier) = (cast_expression "(Idx)prVar35" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "uVar30 = uVar30 | (uint)prVar35;" (assignment_expression "uVar30 = uVar30 | (uint)prVar35" identifier = (binary_expression "uVar30 | (uint)prVar35" identifier | (cast_expression "(uint)prVar35" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "prVar44 = (re_node_set *)pIVar13;" (assignment_expression "prVar44 = (re_node_set *)pIVar13" identifier = (cast_expression "(re_node_set *)pIVar13" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(&rStack_124 != (re_node_set *)pIVar13)" ( (binary_expression "&rStack_124 != (re_node_set *)pIVar13" (pointer_expression "&rStack_124" & identifier) != (cast_expression "(re_node_set *)pIVar13" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) }) (else_clause "else {\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              prVar35 = (re_node_set *)&prVar44->nelem;\n              uVar14 = *puVar40;\n              pIVar15 = &prVar17->alloc;\n              puVar40 = puVar40 + 1;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              uVar14 = (~uVar14 | *pIVar15) & prVar44->alloc;\n              prVar44->alloc = uVar14;\n              uVar30 = uVar30 | uVar14;\n              prVar44 = prVar35;\n            } while (&rStack_124 != prVar35);\n          }" else (compound_statement "{\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar17 = prVar7 + 8;\n            uVar30 = 0;\n            prVar44 = &rStack_144;\n            do {\n              prVar35 = (re_node_set *)&prVar44->nelem;\n              uVar14 = *puVar40;\n              pIVar15 = &prVar17->alloc;\n              puVar40 = puVar40 + 1;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              uVar14 = (~uVar14 | *pIVar15) & prVar44->alloc;\n              prVar44->alloc = uVar14;\n              uVar30 = uVar30 | uVar14;\n              prVar44 = prVar35;\n            } while (&rStack_124 != prVar35);\n          }" { (expression_statement "puVar40 = (uint *)prVar7[5].alloc;" (assignment_expression "puVar40 = (uint *)prVar7[5].alloc" identifier = (cast_expression "(uint *)prVar7[5].alloc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prVar7[5].alloc" (subscript_expression "prVar7[5]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "prVar17 = prVar7 + 8;" (assignment_expression "prVar17 = prVar7 + 8" identifier = (binary_expression "prVar7 + 8" identifier + number_literal)) ;) (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" identifier = number_literal) ;) (expression_statement "prVar44 = &rStack_144;" (assignment_expression "prVar44 = &rStack_144" identifier = (pointer_expression "&rStack_144" & identifier)) ;) (do_statement "do {\n              prVar35 = (re_node_set *)&prVar44->nelem;\n              uVar14 = *puVar40;\n              pIVar15 = &prVar17->alloc;\n              puVar40 = puVar40 + 1;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              uVar14 = (~uVar14 | *pIVar15) & prVar44->alloc;\n              prVar44->alloc = uVar14;\n              uVar30 = uVar30 | uVar14;\n              prVar44 = prVar35;\n            } while (&rStack_124 != prVar35);" do (compound_statement "{\n              prVar35 = (re_node_set *)&prVar44->nelem;\n              uVar14 = *puVar40;\n              pIVar15 = &prVar17->alloc;\n              puVar40 = puVar40 + 1;\n              prVar17 = (re_node_set *)&prVar17->nelem;\n              uVar14 = (~uVar14 | *pIVar15) & prVar44->alloc;\n              prVar44->alloc = uVar14;\n              uVar30 = uVar30 | uVar14;\n              prVar44 = prVar35;\n            }" { (expression_statement "prVar35 = (re_node_set *)&prVar44->nelem;" (assignment_expression "prVar35 = (re_node_set *)&prVar44->nelem" identifier = (cast_expression "(re_node_set *)&prVar44->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar44->nelem" & (field_expression "prVar44->nelem" identifier -> field_identifier)))) ;) (expression_statement "uVar14 = *puVar40;" (assignment_expression "uVar14 = *puVar40" identifier = (pointer_expression "*puVar40" * identifier)) ;) (expression_statement "pIVar15 = &prVar17->alloc;" (assignment_expression "pIVar15 = &prVar17->alloc" identifier = (pointer_expression "&prVar17->alloc" & (field_expression "prVar17->alloc" identifier -> field_identifier))) ;) (expression_statement "puVar40 = puVar40 + 1;" (assignment_expression "puVar40 = puVar40 + 1" identifier = (binary_expression "puVar40 + 1" identifier + number_literal)) ;) (expression_statement "prVar17 = (re_node_set *)&prVar17->nelem;" (assignment_expression "prVar17 = (re_node_set *)&prVar17->nelem" identifier = (cast_expression "(re_node_set *)&prVar17->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar17->nelem" & (field_expression "prVar17->nelem" identifier -> field_identifier)))) ;) (expression_statement "uVar14 = (~uVar14 | *pIVar15) & prVar44->alloc;" (assignment_expression "uVar14 = (~uVar14 | *pIVar15) & prVar44->alloc" identifier = (binary_expression "(~uVar14 | *pIVar15) & prVar44->alloc" (parenthesized_expression "(~uVar14 | *pIVar15)" ( (binary_expression "~uVar14 | *pIVar15" (unary_expression "~uVar14" ~ identifier) | (pointer_expression "*pIVar15" * identifier)) )) & (field_expression "prVar44->alloc" identifier -> field_identifier))) ;) (expression_statement "prVar44->alloc = uVar14;" (assignment_expression "prVar44->alloc = uVar14" (field_expression "prVar44->alloc" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar30 = uVar30 | uVar14;" (assignment_expression "uVar30 = uVar30 | uVar14" identifier = (binary_expression "uVar30 | uVar14" identifier | identifier)) ;) (expression_statement "prVar44 = prVar35;" (assignment_expression "prVar44 = prVar35" identifier = identifier) ;) }) while (parenthesized_expression "(&rStack_124 != prVar35)" ( (binary_expression "&rStack_124 != prVar35" (pointer_expression "&rStack_124" & identifier) != identifier) )) ;) }))) (if_statement "if (uVar30 == 0) goto LAB_0001dcc8;" if (parenthesized_expression "(uVar30 == 0)" ( (binary_expression "uVar30 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001dcc8;" goto statement_identifier ;)) }))) (if_statement "if ((uVar4 & 8) == 0) {\nLAB_0001e15c:\n          prVar44 = (re_node_set *)0x0;\n          if (0 < (int)prVar28) {\n            prVar44 = (re_node_set *)0x0;\n            puVar40 = puVar9;\n            do {\n              prVar35 = (re_node_set *)((int)prVar44 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar9 + ((int)(uint)*pbVar47 >> 5))[(int)prVar44 * 8] >> (*pbVar47 & 0x1f) & 1)\n                  != 0)) {\n                uVar4 = 0;\n                prVar17 = &rStack_144;\n                prVar26 = &rStack_124;\n                puVar36 = puVar40;\n                do {\n                  pIVar24 = &prVar17->nelem;\n                  uVar30 = *puVar36;\n                  puVar36 = puVar36 + 1;\n                  uVar30 = prVar17->alloc & uVar30;\n                  prVar26->alloc = uVar30;\n                  uVar4 = uVar4 | uVar30;\n                  prVar17 = (re_node_set *)pIVar24;\n                  prVar26 = (re_node_set *)&prVar26->nelem;\n                } while (&rStack_124 != (re_node_set *)pIVar24);\n                prVar35 = &rStack_144;\n                if (uVar4 != 0) {\n                  uVar30 = 0;\n                  uVar4 = 0;\n                  prVar17 = &rStack_144;\n                  puVar36 = puVar40;\n                  pprVar39 = &prStack_104;\n                  do {\n                    uVar14 = *puVar36;\n                    puVar36 = puVar36 + 1;\n                    prVar21 = (re_dfa_t *)(~prVar17->alloc & uVar14);\n                    uVar14 = ~uVar14 & prVar17->alloc;\n                    *pprVar39 = prVar21;\n                    prVar17->alloc = uVar14;\n                    uVar4 = uVar4 | (uint)prVar21;\n                    uVar30 = uVar30 | uVar14;\n                    prVar17 = (re_node_set *)&prVar17->nelem;\n                    pprVar39 = pprVar39 + 1;\n                  } while (puVar40 + 8 != puVar36);\n                  prVar17 = (re_node_set *)(iVar29 + (int)prVar44 * 0xc);\n                  if (uVar4 != 0) {\n                    iStack_178 = (int)prVar28 * 2;\n                    puVar36 = puVar9 + (int)prVar28 * 8;\n                    *puVar36 = (uint)prStack_104;\n                    puVar36[1] = uStack_100;\n                    puVar36[2] = uStack_fc;\n                    puVar36[3] = uStack_f8;\n                    puVar36[4] = uStack_f4;\n                    puVar36[5] = uStack_f0;\n                    puVar36[6] = uStack_ec;\n                    puVar36[7] = uStack_e8;\n                    puVar40[1] = rStack_124.nelem;\n                    puVar40[2] = (uint)rStack_124.elems;\n                    *puVar40 = rStack_124.alloc;\n                    puVar40[3] = uStack_118;\n                    puVar40[4] = uStack_114;\n                    puVar40[5] = uStack_110;\n                    puVar40[6] = uStack_10c;\n                    puVar40[7] = uStack_108;\n                    prVar35 = prVar17;\n                    iVar27 = (*(code *)(iVar46 + -0x4580))(iVar29 + (int)prVar28 * 0xc);\n                    if (iVar27 != 0) goto LAB_0001e458;\n                    prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n                  }\n                  prVar35 = *(re_node_set **)(prVar18[1].alloc + iVar38);\n                  iVar27 = (*(code *)(iVar45 + -0x7b38))(prVar17);\n                  if (iVar27 == 0) {\n                    iStack_178 = (int)prVar28 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar30 == 0) break;\n                }\n              }\n              puVar40 = puVar40 + 8;\n              prVar44 = (re_node_set *)((int)&prVar44->alloc + 1);\n            } while ((int)prVar44 < (int)prVar28);\n          }\n          iStack_178 = (int)prVar28 * 2;\n          if (prVar28 == prVar44) {\n            iVar27 = prVar18[1].alloc;\n            pcVar53 = *(code **)(pcVar52 + 0x1e724);\n            puVar40 = puVar9 + (int)prVar28 * 8;\n            *puVar40 = rStack_144.alloc;\n            prVar35 = (re_node_set *)(iVar27 + iVar38);\n            puVar40[1] = rStack_144.nelem;\n            puVar41 = (undefined4 *)(iVar29 + (int)prVar28 * 0xc);\n            puVar40[2] = (uint)rStack_144.elems;\n            puVar40[3] = uStack_138;\n            puVar40[4] = uStack_134;\n            puVar40[5] = uStack_130;\n            puVar40[6] = uStack_12c;\n            puVar40[7] = uStack_128;\n            IVar22 = prVar35->alloc;\n            *puVar41 = 1;\n            puVar41[1] = 1;\n            pIVar15 = (Idx *)(*pcVar53)(4);\n            puVar41[2] = pIVar15;\n            if (pIVar15 != (Idx *)0x0) {\n              pIVar24 = prVar18->elems;\n              prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n              *pIVar15 = IVar22;\n              rStack_144.alloc = 0;\n              rStack_144.nelem = 0;\n              rStack_144.elems = (Idx *)0x0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar41[1] = 0;\n            *puVar41 = 0;\n            if (prVar28 == (re_node_set *)0x0) {\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }\n            else {\nLAB_0001e458:\n              iVar45 = iVar29;\n              do {\n                iVar46 = iVar45 + 0xc;\n                (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n                iVar45 = iVar46;\n              } while ((int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29 != iVar46);\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }\n            goto LAB_0001dffc;\n          }\n          pIVar24 = prVar18->elems;\n          goto LAB_0001dcc8;\n        }" if (parenthesized_expression "((uVar4 & 8) == 0)" ( (binary_expression "(uVar4 & 8) == 0" (parenthesized_expression "(uVar4 & 8)" ( (binary_expression "uVar4 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0001e15c:\n          prVar44 = (re_node_set *)0x0;\n          if (0 < (int)prVar28) {\n            prVar44 = (re_node_set *)0x0;\n            puVar40 = puVar9;\n            do {\n              prVar35 = (re_node_set *)((int)prVar44 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar9 + ((int)(uint)*pbVar47 >> 5))[(int)prVar44 * 8] >> (*pbVar47 & 0x1f) & 1)\n                  != 0)) {\n                uVar4 = 0;\n                prVar17 = &rStack_144;\n                prVar26 = &rStack_124;\n                puVar36 = puVar40;\n                do {\n                  pIVar24 = &prVar17->nelem;\n                  uVar30 = *puVar36;\n                  puVar36 = puVar36 + 1;\n                  uVar30 = prVar17->alloc & uVar30;\n                  prVar26->alloc = uVar30;\n                  uVar4 = uVar4 | uVar30;\n                  prVar17 = (re_node_set *)pIVar24;\n                  prVar26 = (re_node_set *)&prVar26->nelem;\n                } while (&rStack_124 != (re_node_set *)pIVar24);\n                prVar35 = &rStack_144;\n                if (uVar4 != 0) {\n                  uVar30 = 0;\n                  uVar4 = 0;\n                  prVar17 = &rStack_144;\n                  puVar36 = puVar40;\n                  pprVar39 = &prStack_104;\n                  do {\n                    uVar14 = *puVar36;\n                    puVar36 = puVar36 + 1;\n                    prVar21 = (re_dfa_t *)(~prVar17->alloc & uVar14);\n                    uVar14 = ~uVar14 & prVar17->alloc;\n                    *pprVar39 = prVar21;\n                    prVar17->alloc = uVar14;\n                    uVar4 = uVar4 | (uint)prVar21;\n                    uVar30 = uVar30 | uVar14;\n                    prVar17 = (re_node_set *)&prVar17->nelem;\n                    pprVar39 = pprVar39 + 1;\n                  } while (puVar40 + 8 != puVar36);\n                  prVar17 = (re_node_set *)(iVar29 + (int)prVar44 * 0xc);\n                  if (uVar4 != 0) {\n                    iStack_178 = (int)prVar28 * 2;\n                    puVar36 = puVar9 + (int)prVar28 * 8;\n                    *puVar36 = (uint)prStack_104;\n                    puVar36[1] = uStack_100;\n                    puVar36[2] = uStack_fc;\n                    puVar36[3] = uStack_f8;\n                    puVar36[4] = uStack_f4;\n                    puVar36[5] = uStack_f0;\n                    puVar36[6] = uStack_ec;\n                    puVar36[7] = uStack_e8;\n                    puVar40[1] = rStack_124.nelem;\n                    puVar40[2] = (uint)rStack_124.elems;\n                    *puVar40 = rStack_124.alloc;\n                    puVar40[3] = uStack_118;\n                    puVar40[4] = uStack_114;\n                    puVar40[5] = uStack_110;\n                    puVar40[6] = uStack_10c;\n                    puVar40[7] = uStack_108;\n                    prVar35 = prVar17;\n                    iVar27 = (*(code *)(iVar46 + -0x4580))(iVar29 + (int)prVar28 * 0xc);\n                    if (iVar27 != 0) goto LAB_0001e458;\n                    prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n                  }\n                  prVar35 = *(re_node_set **)(prVar18[1].alloc + iVar38);\n                  iVar27 = (*(code *)(iVar45 + -0x7b38))(prVar17);\n                  if (iVar27 == 0) {\n                    iStack_178 = (int)prVar28 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar30 == 0) break;\n                }\n              }\n              puVar40 = puVar40 + 8;\n              prVar44 = (re_node_set *)((int)&prVar44->alloc + 1);\n            } while ((int)prVar44 < (int)prVar28);\n          }\n          iStack_178 = (int)prVar28 * 2;\n          if (prVar28 == prVar44) {\n            iVar27 = prVar18[1].alloc;\n            pcVar53 = *(code **)(pcVar52 + 0x1e724);\n            puVar40 = puVar9 + (int)prVar28 * 8;\n            *puVar40 = rStack_144.alloc;\n            prVar35 = (re_node_set *)(iVar27 + iVar38);\n            puVar40[1] = rStack_144.nelem;\n            puVar41 = (undefined4 *)(iVar29 + (int)prVar28 * 0xc);\n            puVar40[2] = (uint)rStack_144.elems;\n            puVar40[3] = uStack_138;\n            puVar40[4] = uStack_134;\n            puVar40[5] = uStack_130;\n            puVar40[6] = uStack_12c;\n            puVar40[7] = uStack_128;\n            IVar22 = prVar35->alloc;\n            *puVar41 = 1;\n            puVar41[1] = 1;\n            pIVar15 = (Idx *)(*pcVar53)(4);\n            puVar41[2] = pIVar15;\n            if (pIVar15 != (Idx *)0x0) {\n              pIVar24 = prVar18->elems;\n              prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n              *pIVar15 = IVar22;\n              rStack_144.alloc = 0;\n              rStack_144.nelem = 0;\n              rStack_144.elems = (Idx *)0x0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar41[1] = 0;\n            *puVar41 = 0;\n            if (prVar28 == (re_node_set *)0x0) {\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }\n            else {\nLAB_0001e458:\n              iVar45 = iVar29;\n              do {\n                iVar46 = iVar45 + 0xc;\n                (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n                iVar45 = iVar46;\n              } while ((int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29 != iVar46);\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }\n            goto LAB_0001dffc;\n          }\n          pIVar24 = prVar18->elems;\n          goto LAB_0001dcc8;\n        }" { (labeled_statement "LAB_0001e15c:\n          prVar44 = (re_node_set *)0x0;" statement_identifier : (expression_statement "prVar44 = (re_node_set *)0x0;" (assignment_expression "prVar44 = (re_node_set *)0x0" identifier = (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (0 < (int)prVar28) {\n            prVar44 = (re_node_set *)0x0;\n            puVar40 = puVar9;\n            do {\n              prVar35 = (re_node_set *)((int)prVar44 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar9 + ((int)(uint)*pbVar47 >> 5))[(int)prVar44 * 8] >> (*pbVar47 & 0x1f) & 1)\n                  != 0)) {\n                uVar4 = 0;\n                prVar17 = &rStack_144;\n                prVar26 = &rStack_124;\n                puVar36 = puVar40;\n                do {\n                  pIVar24 = &prVar17->nelem;\n                  uVar30 = *puVar36;\n                  puVar36 = puVar36 + 1;\n                  uVar30 = prVar17->alloc & uVar30;\n                  prVar26->alloc = uVar30;\n                  uVar4 = uVar4 | uVar30;\n                  prVar17 = (re_node_set *)pIVar24;\n                  prVar26 = (re_node_set *)&prVar26->nelem;\n                } while (&rStack_124 != (re_node_set *)pIVar24);\n                prVar35 = &rStack_144;\n                if (uVar4 != 0) {\n                  uVar30 = 0;\n                  uVar4 = 0;\n                  prVar17 = &rStack_144;\n                  puVar36 = puVar40;\n                  pprVar39 = &prStack_104;\n                  do {\n                    uVar14 = *puVar36;\n                    puVar36 = puVar36 + 1;\n                    prVar21 = (re_dfa_t *)(~prVar17->alloc & uVar14);\n                    uVar14 = ~uVar14 & prVar17->alloc;\n                    *pprVar39 = prVar21;\n                    prVar17->alloc = uVar14;\n                    uVar4 = uVar4 | (uint)prVar21;\n                    uVar30 = uVar30 | uVar14;\n                    prVar17 = (re_node_set *)&prVar17->nelem;\n                    pprVar39 = pprVar39 + 1;\n                  } while (puVar40 + 8 != puVar36);\n                  prVar17 = (re_node_set *)(iVar29 + (int)prVar44 * 0xc);\n                  if (uVar4 != 0) {\n                    iStack_178 = (int)prVar28 * 2;\n                    puVar36 = puVar9 + (int)prVar28 * 8;\n                    *puVar36 = (uint)prStack_104;\n                    puVar36[1] = uStack_100;\n                    puVar36[2] = uStack_fc;\n                    puVar36[3] = uStack_f8;\n                    puVar36[4] = uStack_f4;\n                    puVar36[5] = uStack_f0;\n                    puVar36[6] = uStack_ec;\n                    puVar36[7] = uStack_e8;\n                    puVar40[1] = rStack_124.nelem;\n                    puVar40[2] = (uint)rStack_124.elems;\n                    *puVar40 = rStack_124.alloc;\n                    puVar40[3] = uStack_118;\n                    puVar40[4] = uStack_114;\n                    puVar40[5] = uStack_110;\n                    puVar40[6] = uStack_10c;\n                    puVar40[7] = uStack_108;\n                    prVar35 = prVar17;\n                    iVar27 = (*(code *)(iVar46 + -0x4580))(iVar29 + (int)prVar28 * 0xc);\n                    if (iVar27 != 0) goto LAB_0001e458;\n                    prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n                  }\n                  prVar35 = *(re_node_set **)(prVar18[1].alloc + iVar38);\n                  iVar27 = (*(code *)(iVar45 + -0x7b38))(prVar17);\n                  if (iVar27 == 0) {\n                    iStack_178 = (int)prVar28 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar30 == 0) break;\n                }\n              }\n              puVar40 = puVar40 + 8;\n              prVar44 = (re_node_set *)((int)&prVar44->alloc + 1);\n            } while ((int)prVar44 < (int)prVar28);\n          }" if (parenthesized_expression "(0 < (int)prVar28)" ( (binary_expression "0 < (int)prVar28" number_literal < (cast_expression "(int)prVar28" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            prVar44 = (re_node_set *)0x0;\n            puVar40 = puVar9;\n            do {\n              prVar35 = (re_node_set *)((int)prVar44 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar9 + ((int)(uint)*pbVar47 >> 5))[(int)prVar44 * 8] >> (*pbVar47 & 0x1f) & 1)\n                  != 0)) {\n                uVar4 = 0;\n                prVar17 = &rStack_144;\n                prVar26 = &rStack_124;\n                puVar36 = puVar40;\n                do {\n                  pIVar24 = &prVar17->nelem;\n                  uVar30 = *puVar36;\n                  puVar36 = puVar36 + 1;\n                  uVar30 = prVar17->alloc & uVar30;\n                  prVar26->alloc = uVar30;\n                  uVar4 = uVar4 | uVar30;\n                  prVar17 = (re_node_set *)pIVar24;\n                  prVar26 = (re_node_set *)&prVar26->nelem;\n                } while (&rStack_124 != (re_node_set *)pIVar24);\n                prVar35 = &rStack_144;\n                if (uVar4 != 0) {\n                  uVar30 = 0;\n                  uVar4 = 0;\n                  prVar17 = &rStack_144;\n                  puVar36 = puVar40;\n                  pprVar39 = &prStack_104;\n                  do {\n                    uVar14 = *puVar36;\n                    puVar36 = puVar36 + 1;\n                    prVar21 = (re_dfa_t *)(~prVar17->alloc & uVar14);\n                    uVar14 = ~uVar14 & prVar17->alloc;\n                    *pprVar39 = prVar21;\n                    prVar17->alloc = uVar14;\n                    uVar4 = uVar4 | (uint)prVar21;\n                    uVar30 = uVar30 | uVar14;\n                    prVar17 = (re_node_set *)&prVar17->nelem;\n                    pprVar39 = pprVar39 + 1;\n                  } while (puVar40 + 8 != puVar36);\n                  prVar17 = (re_node_set *)(iVar29 + (int)prVar44 * 0xc);\n                  if (uVar4 != 0) {\n                    iStack_178 = (int)prVar28 * 2;\n                    puVar36 = puVar9 + (int)prVar28 * 8;\n                    *puVar36 = (uint)prStack_104;\n                    puVar36[1] = uStack_100;\n                    puVar36[2] = uStack_fc;\n                    puVar36[3] = uStack_f8;\n                    puVar36[4] = uStack_f4;\n                    puVar36[5] = uStack_f0;\n                    puVar36[6] = uStack_ec;\n                    puVar36[7] = uStack_e8;\n                    puVar40[1] = rStack_124.nelem;\n                    puVar40[2] = (uint)rStack_124.elems;\n                    *puVar40 = rStack_124.alloc;\n                    puVar40[3] = uStack_118;\n                    puVar40[4] = uStack_114;\n                    puVar40[5] = uStack_110;\n                    puVar40[6] = uStack_10c;\n                    puVar40[7] = uStack_108;\n                    prVar35 = prVar17;\n                    iVar27 = (*(code *)(iVar46 + -0x4580))(iVar29 + (int)prVar28 * 0xc);\n                    if (iVar27 != 0) goto LAB_0001e458;\n                    prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n                  }\n                  prVar35 = *(re_node_set **)(prVar18[1].alloc + iVar38);\n                  iVar27 = (*(code *)(iVar45 + -0x7b38))(prVar17);\n                  if (iVar27 == 0) {\n                    iStack_178 = (int)prVar28 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar30 == 0) break;\n                }\n              }\n              puVar40 = puVar40 + 8;\n              prVar44 = (re_node_set *)((int)&prVar44->alloc + 1);\n            } while ((int)prVar44 < (int)prVar28);\n          }" { (expression_statement "prVar44 = (re_node_set *)0x0;" (assignment_expression "prVar44 = (re_node_set *)0x0" identifier = (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar40 = puVar9;" (assignment_expression "puVar40 = puVar9" identifier = identifier) ;) (do_statement "do {\n              prVar35 = (re_node_set *)((int)prVar44 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar9 + ((int)(uint)*pbVar47 >> 5))[(int)prVar44 * 8] >> (*pbVar47 & 0x1f) & 1)\n                  != 0)) {\n                uVar4 = 0;\n                prVar17 = &rStack_144;\n                prVar26 = &rStack_124;\n                puVar36 = puVar40;\n                do {\n                  pIVar24 = &prVar17->nelem;\n                  uVar30 = *puVar36;\n                  puVar36 = puVar36 + 1;\n                  uVar30 = prVar17->alloc & uVar30;\n                  prVar26->alloc = uVar30;\n                  uVar4 = uVar4 | uVar30;\n                  prVar17 = (re_node_set *)pIVar24;\n                  prVar26 = (re_node_set *)&prVar26->nelem;\n                } while (&rStack_124 != (re_node_set *)pIVar24);\n                prVar35 = &rStack_144;\n                if (uVar4 != 0) {\n                  uVar30 = 0;\n                  uVar4 = 0;\n                  prVar17 = &rStack_144;\n                  puVar36 = puVar40;\n                  pprVar39 = &prStack_104;\n                  do {\n                    uVar14 = *puVar36;\n                    puVar36 = puVar36 + 1;\n                    prVar21 = (re_dfa_t *)(~prVar17->alloc & uVar14);\n                    uVar14 = ~uVar14 & prVar17->alloc;\n                    *pprVar39 = prVar21;\n                    prVar17->alloc = uVar14;\n                    uVar4 = uVar4 | (uint)prVar21;\n                    uVar30 = uVar30 | uVar14;\n                    prVar17 = (re_node_set *)&prVar17->nelem;\n                    pprVar39 = pprVar39 + 1;\n                  } while (puVar40 + 8 != puVar36);\n                  prVar17 = (re_node_set *)(iVar29 + (int)prVar44 * 0xc);\n                  if (uVar4 != 0) {\n                    iStack_178 = (int)prVar28 * 2;\n                    puVar36 = puVar9 + (int)prVar28 * 8;\n                    *puVar36 = (uint)prStack_104;\n                    puVar36[1] = uStack_100;\n                    puVar36[2] = uStack_fc;\n                    puVar36[3] = uStack_f8;\n                    puVar36[4] = uStack_f4;\n                    puVar36[5] = uStack_f0;\n                    puVar36[6] = uStack_ec;\n                    puVar36[7] = uStack_e8;\n                    puVar40[1] = rStack_124.nelem;\n                    puVar40[2] = (uint)rStack_124.elems;\n                    *puVar40 = rStack_124.alloc;\n                    puVar40[3] = uStack_118;\n                    puVar40[4] = uStack_114;\n                    puVar40[5] = uStack_110;\n                    puVar40[6] = uStack_10c;\n                    puVar40[7] = uStack_108;\n                    prVar35 = prVar17;\n                    iVar27 = (*(code *)(iVar46 + -0x4580))(iVar29 + (int)prVar28 * 0xc);\n                    if (iVar27 != 0) goto LAB_0001e458;\n                    prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n                  }\n                  prVar35 = *(re_node_set **)(prVar18[1].alloc + iVar38);\n                  iVar27 = (*(code *)(iVar45 + -0x7b38))(prVar17);\n                  if (iVar27 == 0) {\n                    iStack_178 = (int)prVar28 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar30 == 0) break;\n                }\n              }\n              puVar40 = puVar40 + 8;\n              prVar44 = (re_node_set *)((int)&prVar44->alloc + 1);\n            } while ((int)prVar44 < (int)prVar28);" do (compound_statement "{\n              prVar35 = (re_node_set *)((int)prVar44 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar9 + ((int)(uint)*pbVar47 >> 5))[(int)prVar44 * 8] >> (*pbVar47 & 0x1f) & 1)\n                  != 0)) {\n                uVar4 = 0;\n                prVar17 = &rStack_144;\n                prVar26 = &rStack_124;\n                puVar36 = puVar40;\n                do {\n                  pIVar24 = &prVar17->nelem;\n                  uVar30 = *puVar36;\n                  puVar36 = puVar36 + 1;\n                  uVar30 = prVar17->alloc & uVar30;\n                  prVar26->alloc = uVar30;\n                  uVar4 = uVar4 | uVar30;\n                  prVar17 = (re_node_set *)pIVar24;\n                  prVar26 = (re_node_set *)&prVar26->nelem;\n                } while (&rStack_124 != (re_node_set *)pIVar24);\n                prVar35 = &rStack_144;\n                if (uVar4 != 0) {\n                  uVar30 = 0;\n                  uVar4 = 0;\n                  prVar17 = &rStack_144;\n                  puVar36 = puVar40;\n                  pprVar39 = &prStack_104;\n                  do {\n                    uVar14 = *puVar36;\n                    puVar36 = puVar36 + 1;\n                    prVar21 = (re_dfa_t *)(~prVar17->alloc & uVar14);\n                    uVar14 = ~uVar14 & prVar17->alloc;\n                    *pprVar39 = prVar21;\n                    prVar17->alloc = uVar14;\n                    uVar4 = uVar4 | (uint)prVar21;\n                    uVar30 = uVar30 | uVar14;\n                    prVar17 = (re_node_set *)&prVar17->nelem;\n                    pprVar39 = pprVar39 + 1;\n                  } while (puVar40 + 8 != puVar36);\n                  prVar17 = (re_node_set *)(iVar29 + (int)prVar44 * 0xc);\n                  if (uVar4 != 0) {\n                    iStack_178 = (int)prVar28 * 2;\n                    puVar36 = puVar9 + (int)prVar28 * 8;\n                    *puVar36 = (uint)prStack_104;\n                    puVar36[1] = uStack_100;\n                    puVar36[2] = uStack_fc;\n                    puVar36[3] = uStack_f8;\n                    puVar36[4] = uStack_f4;\n                    puVar36[5] = uStack_f0;\n                    puVar36[6] = uStack_ec;\n                    puVar36[7] = uStack_e8;\n                    puVar40[1] = rStack_124.nelem;\n                    puVar40[2] = (uint)rStack_124.elems;\n                    *puVar40 = rStack_124.alloc;\n                    puVar40[3] = uStack_118;\n                    puVar40[4] = uStack_114;\n                    puVar40[5] = uStack_110;\n                    puVar40[6] = uStack_10c;\n                    puVar40[7] = uStack_108;\n                    prVar35 = prVar17;\n                    iVar27 = (*(code *)(iVar46 + -0x4580))(iVar29 + (int)prVar28 * 0xc);\n                    if (iVar27 != 0) goto LAB_0001e458;\n                    prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n                  }\n                  prVar35 = *(re_node_set **)(prVar18[1].alloc + iVar38);\n                  iVar27 = (*(code *)(iVar45 + -0x7b38))(prVar17);\n                  if (iVar27 == 0) {\n                    iStack_178 = (int)prVar28 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar30 == 0) break;\n                }\n              }\n              puVar40 = puVar40 + 8;\n              prVar44 = (re_node_set *)((int)&prVar44->alloc + 1);\n            }" { (expression_statement "prVar35 = (re_node_set *)((int)prVar44 * 0x20);" (assignment_expression "prVar35 = (re_node_set *)((int)prVar44 * 0x20)" identifier = (cast_expression "(re_node_set *)((int)prVar44 * 0x20)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)prVar44 * 0x20)" ( (binary_expression "(int)prVar44 * 0x20" (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if ((bVar1 != 1) ||\n                 (((puVar9 + ((int)(uint)*pbVar47 >> 5))[(int)prVar44 * 8] >> (*pbVar47 & 0x1f) & 1)\n                  != 0)) {\n                uVar4 = 0;\n                prVar17 = &rStack_144;\n                prVar26 = &rStack_124;\n                puVar36 = puVar40;\n                do {\n                  pIVar24 = &prVar17->nelem;\n                  uVar30 = *puVar36;\n                  puVar36 = puVar36 + 1;\n                  uVar30 = prVar17->alloc & uVar30;\n                  prVar26->alloc = uVar30;\n                  uVar4 = uVar4 | uVar30;\n                  prVar17 = (re_node_set *)pIVar24;\n                  prVar26 = (re_node_set *)&prVar26->nelem;\n                } while (&rStack_124 != (re_node_set *)pIVar24);\n                prVar35 = &rStack_144;\n                if (uVar4 != 0) {\n                  uVar30 = 0;\n                  uVar4 = 0;\n                  prVar17 = &rStack_144;\n                  puVar36 = puVar40;\n                  pprVar39 = &prStack_104;\n                  do {\n                    uVar14 = *puVar36;\n                    puVar36 = puVar36 + 1;\n                    prVar21 = (re_dfa_t *)(~prVar17->alloc & uVar14);\n                    uVar14 = ~uVar14 & prVar17->alloc;\n                    *pprVar39 = prVar21;\n                    prVar17->alloc = uVar14;\n                    uVar4 = uVar4 | (uint)prVar21;\n                    uVar30 = uVar30 | uVar14;\n                    prVar17 = (re_node_set *)&prVar17->nelem;\n                    pprVar39 = pprVar39 + 1;\n                  } while (puVar40 + 8 != puVar36);\n                  prVar17 = (re_node_set *)(iVar29 + (int)prVar44 * 0xc);\n                  if (uVar4 != 0) {\n                    iStack_178 = (int)prVar28 * 2;\n                    puVar36 = puVar9 + (int)prVar28 * 8;\n                    *puVar36 = (uint)prStack_104;\n                    puVar36[1] = uStack_100;\n                    puVar36[2] = uStack_fc;\n                    puVar36[3] = uStack_f8;\n                    puVar36[4] = uStack_f4;\n                    puVar36[5] = uStack_f0;\n                    puVar36[6] = uStack_ec;\n                    puVar36[7] = uStack_e8;\n                    puVar40[1] = rStack_124.nelem;\n                    puVar40[2] = (uint)rStack_124.elems;\n                    *puVar40 = rStack_124.alloc;\n                    puVar40[3] = uStack_118;\n                    puVar40[4] = uStack_114;\n                    puVar40[5] = uStack_110;\n                    puVar40[6] = uStack_10c;\n                    puVar40[7] = uStack_108;\n                    prVar35 = prVar17;\n                    iVar27 = (*(code *)(iVar46 + -0x4580))(iVar29 + (int)prVar28 * 0xc);\n                    if (iVar27 != 0) goto LAB_0001e458;\n                    prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n                  }\n                  prVar35 = *(re_node_set **)(prVar18[1].alloc + iVar38);\n                  iVar27 = (*(code *)(iVar45 + -0x7b38))(prVar17);\n                  if (iVar27 == 0) {\n                    iStack_178 = (int)prVar28 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar30 == 0) break;\n                }\n              }" if (parenthesized_expression "((bVar1 != 1) ||\n                 (((puVar9 + ((int)(uint)*pbVar47 >> 5))[(int)prVar44 * 8] >> (*pbVar47 & 0x1f) & 1)\n                  != 0))" ( (binary_expression "(bVar1 != 1) ||\n                 (((puVar9 + ((int)(uint)*pbVar47 >> 5))[(int)prVar44 * 8] >> (*pbVar47 & 0x1f) & 1)\n                  != 0)" (parenthesized_expression "(bVar1 != 1)" ( (binary_expression "bVar1 != 1" identifier != number_literal) )) || (parenthesized_expression "(((puVar9 + ((int)(uint)*pbVar47 >> 5))[(int)prVar44 * 8] >> (*pbVar47 & 0x1f) & 1)\n                  != 0)" ( (binary_expression "((puVar9 + ((int)(uint)*pbVar47 >> 5))[(int)prVar44 * 8] >> (*pbVar47 & 0x1f) & 1)\n                  != 0" (parenthesized_expression "((puVar9 + ((int)(uint)*pbVar47 >> 5))[(int)prVar44 * 8] >> (*pbVar47 & 0x1f) & 1)" ( (binary_expression "(puVar9 + ((int)(uint)*pbVar47 >> 5))[(int)prVar44 * 8] >> (*pbVar47 & 0x1f) & 1" (binary_expression "(puVar9 + ((int)(uint)*pbVar47 >> 5))[(int)prVar44 * 8] >> (*pbVar47 & 0x1f)" (subscript_expression "(puVar9 + ((int)(uint)*pbVar47 >> 5))[(int)prVar44 * 8]" (parenthesized_expression "(puVar9 + ((int)(uint)*pbVar47 >> 5))" ( (binary_expression "puVar9 + ((int)(uint)*pbVar47 >> 5)" identifier + (parenthesized_expression "((int)(uint)*pbVar47 >> 5)" ( (binary_expression "(int)(uint)*pbVar47 >> 5" (binary_expression "(int)(uint)*pbVar47" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) ))) )) [ (binary_expression "(int)prVar44 * 8" (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ]) >> (parenthesized_expression "(*pbVar47 & 0x1f)" ( (binary_expression "*pbVar47 & 0x1f" (pointer_expression "*pbVar47" * identifier) & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                uVar4 = 0;\n                prVar17 = &rStack_144;\n                prVar26 = &rStack_124;\n                puVar36 = puVar40;\n                do {\n                  pIVar24 = &prVar17->nelem;\n                  uVar30 = *puVar36;\n                  puVar36 = puVar36 + 1;\n                  uVar30 = prVar17->alloc & uVar30;\n                  prVar26->alloc = uVar30;\n                  uVar4 = uVar4 | uVar30;\n                  prVar17 = (re_node_set *)pIVar24;\n                  prVar26 = (re_node_set *)&prVar26->nelem;\n                } while (&rStack_124 != (re_node_set *)pIVar24);\n                prVar35 = &rStack_144;\n                if (uVar4 != 0) {\n                  uVar30 = 0;\n                  uVar4 = 0;\n                  prVar17 = &rStack_144;\n                  puVar36 = puVar40;\n                  pprVar39 = &prStack_104;\n                  do {\n                    uVar14 = *puVar36;\n                    puVar36 = puVar36 + 1;\n                    prVar21 = (re_dfa_t *)(~prVar17->alloc & uVar14);\n                    uVar14 = ~uVar14 & prVar17->alloc;\n                    *pprVar39 = prVar21;\n                    prVar17->alloc = uVar14;\n                    uVar4 = uVar4 | (uint)prVar21;\n                    uVar30 = uVar30 | uVar14;\n                    prVar17 = (re_node_set *)&prVar17->nelem;\n                    pprVar39 = pprVar39 + 1;\n                  } while (puVar40 + 8 != puVar36);\n                  prVar17 = (re_node_set *)(iVar29 + (int)prVar44 * 0xc);\n                  if (uVar4 != 0) {\n                    iStack_178 = (int)prVar28 * 2;\n                    puVar36 = puVar9 + (int)prVar28 * 8;\n                    *puVar36 = (uint)prStack_104;\n                    puVar36[1] = uStack_100;\n                    puVar36[2] = uStack_fc;\n                    puVar36[3] = uStack_f8;\n                    puVar36[4] = uStack_f4;\n                    puVar36[5] = uStack_f0;\n                    puVar36[6] = uStack_ec;\n                    puVar36[7] = uStack_e8;\n                    puVar40[1] = rStack_124.nelem;\n                    puVar40[2] = (uint)rStack_124.elems;\n                    *puVar40 = rStack_124.alloc;\n                    puVar40[3] = uStack_118;\n                    puVar40[4] = uStack_114;\n                    puVar40[5] = uStack_110;\n                    puVar40[6] = uStack_10c;\n                    puVar40[7] = uStack_108;\n                    prVar35 = prVar17;\n                    iVar27 = (*(code *)(iVar46 + -0x4580))(iVar29 + (int)prVar28 * 0xc);\n                    if (iVar27 != 0) goto LAB_0001e458;\n                    prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n                  }\n                  prVar35 = *(re_node_set **)(prVar18[1].alloc + iVar38);\n                  iVar27 = (*(code *)(iVar45 + -0x7b38))(prVar17);\n                  if (iVar27 == 0) {\n                    iStack_178 = (int)prVar28 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar30 == 0) break;\n                }\n              }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "prVar17 = &rStack_144;" (assignment_expression "prVar17 = &rStack_144" identifier = (pointer_expression "&rStack_144" & identifier)) ;) (expression_statement "prVar26 = &rStack_124;" (assignment_expression "prVar26 = &rStack_124" identifier = (pointer_expression "&rStack_124" & identifier)) ;) (expression_statement "puVar36 = puVar40;" (assignment_expression "puVar36 = puVar40" identifier = identifier) ;) (do_statement "do {\n                  pIVar24 = &prVar17->nelem;\n                  uVar30 = *puVar36;\n                  puVar36 = puVar36 + 1;\n                  uVar30 = prVar17->alloc & uVar30;\n                  prVar26->alloc = uVar30;\n                  uVar4 = uVar4 | uVar30;\n                  prVar17 = (re_node_set *)pIVar24;\n                  prVar26 = (re_node_set *)&prVar26->nelem;\n                } while (&rStack_124 != (re_node_set *)pIVar24);" do (compound_statement "{\n                  pIVar24 = &prVar17->nelem;\n                  uVar30 = *puVar36;\n                  puVar36 = puVar36 + 1;\n                  uVar30 = prVar17->alloc & uVar30;\n                  prVar26->alloc = uVar30;\n                  uVar4 = uVar4 | uVar30;\n                  prVar17 = (re_node_set *)pIVar24;\n                  prVar26 = (re_node_set *)&prVar26->nelem;\n                }" { (expression_statement "pIVar24 = &prVar17->nelem;" (assignment_expression "pIVar24 = &prVar17->nelem" identifier = (pointer_expression "&prVar17->nelem" & (field_expression "prVar17->nelem" identifier -> field_identifier))) ;) (expression_statement "uVar30 = *puVar36;" (assignment_expression "uVar30 = *puVar36" identifier = (pointer_expression "*puVar36" * identifier)) ;) (expression_statement "puVar36 = puVar36 + 1;" (assignment_expression "puVar36 = puVar36 + 1" identifier = (binary_expression "puVar36 + 1" identifier + number_literal)) ;) (expression_statement "uVar30 = prVar17->alloc & uVar30;" (assignment_expression "uVar30 = prVar17->alloc & uVar30" identifier = (binary_expression "prVar17->alloc & uVar30" (field_expression "prVar17->alloc" identifier -> field_identifier) & identifier)) ;) (expression_statement "prVar26->alloc = uVar30;" (assignment_expression "prVar26->alloc = uVar30" (field_expression "prVar26->alloc" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar4 = uVar4 | uVar30;" (assignment_expression "uVar4 = uVar4 | uVar30" identifier = (binary_expression "uVar4 | uVar30" identifier | identifier)) ;) (expression_statement "prVar17 = (re_node_set *)pIVar24;" (assignment_expression "prVar17 = (re_node_set *)pIVar24" identifier = (cast_expression "(re_node_set *)pIVar24" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "prVar26 = (re_node_set *)&prVar26->nelem;" (assignment_expression "prVar26 = (re_node_set *)&prVar26->nelem" identifier = (cast_expression "(re_node_set *)&prVar26->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar26->nelem" & (field_expression "prVar26->nelem" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(&rStack_124 != (re_node_set *)pIVar24)" ( (binary_expression "&rStack_124 != (re_node_set *)pIVar24" (pointer_expression "&rStack_124" & identifier) != (cast_expression "(re_node_set *)pIVar24" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (expression_statement "prVar35 = &rStack_144;" (assignment_expression "prVar35 = &rStack_144" identifier = (pointer_expression "&rStack_144" & identifier)) ;) (if_statement "if (uVar4 != 0) {\n                  uVar30 = 0;\n                  uVar4 = 0;\n                  prVar17 = &rStack_144;\n                  puVar36 = puVar40;\n                  pprVar39 = &prStack_104;\n                  do {\n                    uVar14 = *puVar36;\n                    puVar36 = puVar36 + 1;\n                    prVar21 = (re_dfa_t *)(~prVar17->alloc & uVar14);\n                    uVar14 = ~uVar14 & prVar17->alloc;\n                    *pprVar39 = prVar21;\n                    prVar17->alloc = uVar14;\n                    uVar4 = uVar4 | (uint)prVar21;\n                    uVar30 = uVar30 | uVar14;\n                    prVar17 = (re_node_set *)&prVar17->nelem;\n                    pprVar39 = pprVar39 + 1;\n                  } while (puVar40 + 8 != puVar36);\n                  prVar17 = (re_node_set *)(iVar29 + (int)prVar44 * 0xc);\n                  if (uVar4 != 0) {\n                    iStack_178 = (int)prVar28 * 2;\n                    puVar36 = puVar9 + (int)prVar28 * 8;\n                    *puVar36 = (uint)prStack_104;\n                    puVar36[1] = uStack_100;\n                    puVar36[2] = uStack_fc;\n                    puVar36[3] = uStack_f8;\n                    puVar36[4] = uStack_f4;\n                    puVar36[5] = uStack_f0;\n                    puVar36[6] = uStack_ec;\n                    puVar36[7] = uStack_e8;\n                    puVar40[1] = rStack_124.nelem;\n                    puVar40[2] = (uint)rStack_124.elems;\n                    *puVar40 = rStack_124.alloc;\n                    puVar40[3] = uStack_118;\n                    puVar40[4] = uStack_114;\n                    puVar40[5] = uStack_110;\n                    puVar40[6] = uStack_10c;\n                    puVar40[7] = uStack_108;\n                    prVar35 = prVar17;\n                    iVar27 = (*(code *)(iVar46 + -0x4580))(iVar29 + (int)prVar28 * 0xc);\n                    if (iVar27 != 0) goto LAB_0001e458;\n                    prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n                  }\n                  prVar35 = *(re_node_set **)(prVar18[1].alloc + iVar38);\n                  iVar27 = (*(code *)(iVar45 + -0x7b38))(prVar17);\n                  if (iVar27 == 0) {\n                    iStack_178 = (int)prVar28 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar30 == 0) break;\n                }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n                  uVar30 = 0;\n                  uVar4 = 0;\n                  prVar17 = &rStack_144;\n                  puVar36 = puVar40;\n                  pprVar39 = &prStack_104;\n                  do {\n                    uVar14 = *puVar36;\n                    puVar36 = puVar36 + 1;\n                    prVar21 = (re_dfa_t *)(~prVar17->alloc & uVar14);\n                    uVar14 = ~uVar14 & prVar17->alloc;\n                    *pprVar39 = prVar21;\n                    prVar17->alloc = uVar14;\n                    uVar4 = uVar4 | (uint)prVar21;\n                    uVar30 = uVar30 | uVar14;\n                    prVar17 = (re_node_set *)&prVar17->nelem;\n                    pprVar39 = pprVar39 + 1;\n                  } while (puVar40 + 8 != puVar36);\n                  prVar17 = (re_node_set *)(iVar29 + (int)prVar44 * 0xc);\n                  if (uVar4 != 0) {\n                    iStack_178 = (int)prVar28 * 2;\n                    puVar36 = puVar9 + (int)prVar28 * 8;\n                    *puVar36 = (uint)prStack_104;\n                    puVar36[1] = uStack_100;\n                    puVar36[2] = uStack_fc;\n                    puVar36[3] = uStack_f8;\n                    puVar36[4] = uStack_f4;\n                    puVar36[5] = uStack_f0;\n                    puVar36[6] = uStack_ec;\n                    puVar36[7] = uStack_e8;\n                    puVar40[1] = rStack_124.nelem;\n                    puVar40[2] = (uint)rStack_124.elems;\n                    *puVar40 = rStack_124.alloc;\n                    puVar40[3] = uStack_118;\n                    puVar40[4] = uStack_114;\n                    puVar40[5] = uStack_110;\n                    puVar40[6] = uStack_10c;\n                    puVar40[7] = uStack_108;\n                    prVar35 = prVar17;\n                    iVar27 = (*(code *)(iVar46 + -0x4580))(iVar29 + (int)prVar28 * 0xc);\n                    if (iVar27 != 0) goto LAB_0001e458;\n                    prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n                  }\n                  prVar35 = *(re_node_set **)(prVar18[1].alloc + iVar38);\n                  iVar27 = (*(code *)(iVar45 + -0x7b38))(prVar17);\n                  if (iVar27 == 0) {\n                    iStack_178 = (int)prVar28 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar30 == 0) break;\n                }" { (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "prVar17 = &rStack_144;" (assignment_expression "prVar17 = &rStack_144" identifier = (pointer_expression "&rStack_144" & identifier)) ;) (expression_statement "puVar36 = puVar40;" (assignment_expression "puVar36 = puVar40" identifier = identifier) ;) (expression_statement "pprVar39 = &prStack_104;" (assignment_expression "pprVar39 = &prStack_104" identifier = (pointer_expression "&prStack_104" & identifier)) ;) (do_statement "do {\n                    uVar14 = *puVar36;\n                    puVar36 = puVar36 + 1;\n                    prVar21 = (re_dfa_t *)(~prVar17->alloc & uVar14);\n                    uVar14 = ~uVar14 & prVar17->alloc;\n                    *pprVar39 = prVar21;\n                    prVar17->alloc = uVar14;\n                    uVar4 = uVar4 | (uint)prVar21;\n                    uVar30 = uVar30 | uVar14;\n                    prVar17 = (re_node_set *)&prVar17->nelem;\n                    pprVar39 = pprVar39 + 1;\n                  } while (puVar40 + 8 != puVar36);" do (compound_statement "{\n                    uVar14 = *puVar36;\n                    puVar36 = puVar36 + 1;\n                    prVar21 = (re_dfa_t *)(~prVar17->alloc & uVar14);\n                    uVar14 = ~uVar14 & prVar17->alloc;\n                    *pprVar39 = prVar21;\n                    prVar17->alloc = uVar14;\n                    uVar4 = uVar4 | (uint)prVar21;\n                    uVar30 = uVar30 | uVar14;\n                    prVar17 = (re_node_set *)&prVar17->nelem;\n                    pprVar39 = pprVar39 + 1;\n                  }" { (expression_statement "uVar14 = *puVar36;" (assignment_expression "uVar14 = *puVar36" identifier = (pointer_expression "*puVar36" * identifier)) ;) (expression_statement "puVar36 = puVar36 + 1;" (assignment_expression "puVar36 = puVar36 + 1" identifier = (binary_expression "puVar36 + 1" identifier + number_literal)) ;) (expression_statement "prVar21 = (re_dfa_t *)(~prVar17->alloc & uVar14);" (assignment_expression "prVar21 = (re_dfa_t *)(~prVar17->alloc & uVar14)" identifier = (cast_expression "(re_dfa_t *)(~prVar17->alloc & uVar14)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(~prVar17->alloc & uVar14)" ( (binary_expression "~prVar17->alloc & uVar14" (unary_expression "~prVar17->alloc" ~ (field_expression "prVar17->alloc" identifier -> field_identifier)) & identifier) )))) ;) (expression_statement "uVar14 = ~uVar14 & prVar17->alloc;" (assignment_expression "uVar14 = ~uVar14 & prVar17->alloc" identifier = (binary_expression "~uVar14 & prVar17->alloc" (unary_expression "~uVar14" ~ identifier) & (field_expression "prVar17->alloc" identifier -> field_identifier))) ;) (expression_statement "*pprVar39 = prVar21;" (assignment_expression "*pprVar39 = prVar21" (pointer_expression "*pprVar39" * identifier) = identifier) ;) (expression_statement "prVar17->alloc = uVar14;" (assignment_expression "prVar17->alloc = uVar14" (field_expression "prVar17->alloc" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar4 = uVar4 | (uint)prVar21;" (assignment_expression "uVar4 = uVar4 | (uint)prVar21" identifier = (binary_expression "uVar4 | (uint)prVar21" identifier | (cast_expression "(uint)prVar21" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "uVar30 = uVar30 | uVar14;" (assignment_expression "uVar30 = uVar30 | uVar14" identifier = (binary_expression "uVar30 | uVar14" identifier | identifier)) ;) (expression_statement "prVar17 = (re_node_set *)&prVar17->nelem;" (assignment_expression "prVar17 = (re_node_set *)&prVar17->nelem" identifier = (cast_expression "(re_node_set *)&prVar17->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar17->nelem" & (field_expression "prVar17->nelem" identifier -> field_identifier)))) ;) (expression_statement "pprVar39 = pprVar39 + 1;" (assignment_expression "pprVar39 = pprVar39 + 1" identifier = (binary_expression "pprVar39 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar40 + 8 != puVar36)" ( (binary_expression "puVar40 + 8 != puVar36" (binary_expression "puVar40 + 8" identifier + number_literal) != identifier) )) ;) (expression_statement "prVar17 = (re_node_set *)(iVar29 + (int)prVar44 * 0xc);" (assignment_expression "prVar17 = (re_node_set *)(iVar29 + (int)prVar44 * 0xc)" identifier = (cast_expression "(re_node_set *)(iVar29 + (int)prVar44 * 0xc)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + (int)prVar44 * 0xc)" ( (binary_expression "iVar29 + (int)prVar44 * 0xc" identifier + (binary_expression "(int)prVar44 * 0xc" (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (if_statement "if (uVar4 != 0) {\n                    iStack_178 = (int)prVar28 * 2;\n                    puVar36 = puVar9 + (int)prVar28 * 8;\n                    *puVar36 = (uint)prStack_104;\n                    puVar36[1] = uStack_100;\n                    puVar36[2] = uStack_fc;\n                    puVar36[3] = uStack_f8;\n                    puVar36[4] = uStack_f4;\n                    puVar36[5] = uStack_f0;\n                    puVar36[6] = uStack_ec;\n                    puVar36[7] = uStack_e8;\n                    puVar40[1] = rStack_124.nelem;\n                    puVar40[2] = (uint)rStack_124.elems;\n                    *puVar40 = rStack_124.alloc;\n                    puVar40[3] = uStack_118;\n                    puVar40[4] = uStack_114;\n                    puVar40[5] = uStack_110;\n                    puVar40[6] = uStack_10c;\n                    puVar40[7] = uStack_108;\n                    prVar35 = prVar17;\n                    iVar27 = (*(code *)(iVar46 + -0x4580))(iVar29 + (int)prVar28 * 0xc);\n                    if (iVar27 != 0) goto LAB_0001e458;\n                    prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n                  }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n                    iStack_178 = (int)prVar28 * 2;\n                    puVar36 = puVar9 + (int)prVar28 * 8;\n                    *puVar36 = (uint)prStack_104;\n                    puVar36[1] = uStack_100;\n                    puVar36[2] = uStack_fc;\n                    puVar36[3] = uStack_f8;\n                    puVar36[4] = uStack_f4;\n                    puVar36[5] = uStack_f0;\n                    puVar36[6] = uStack_ec;\n                    puVar36[7] = uStack_e8;\n                    puVar40[1] = rStack_124.nelem;\n                    puVar40[2] = (uint)rStack_124.elems;\n                    *puVar40 = rStack_124.alloc;\n                    puVar40[3] = uStack_118;\n                    puVar40[4] = uStack_114;\n                    puVar40[5] = uStack_110;\n                    puVar40[6] = uStack_10c;\n                    puVar40[7] = uStack_108;\n                    prVar35 = prVar17;\n                    iVar27 = (*(code *)(iVar46 + -0x4580))(iVar29 + (int)prVar28 * 0xc);\n                    if (iVar27 != 0) goto LAB_0001e458;\n                    prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n                  }" { (expression_statement "iStack_178 = (int)prVar28 * 2;" (assignment_expression "iStack_178 = (int)prVar28 * 2" identifier = (binary_expression "(int)prVar28 * 2" (cast_expression "(int)prVar28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "puVar36 = puVar9 + (int)prVar28 * 8;" (assignment_expression "puVar36 = puVar9 + (int)prVar28 * 8" identifier = (binary_expression "puVar9 + (int)prVar28 * 8" identifier + (binary_expression "(int)prVar28 * 8" (cast_expression "(int)prVar28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "*puVar36 = (uint)prStack_104;" (assignment_expression "*puVar36 = (uint)prStack_104" (pointer_expression "*puVar36" * identifier) = (cast_expression "(uint)prStack_104" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar36[1] = uStack_100;" (assignment_expression "puVar36[1] = uStack_100" (subscript_expression "puVar36[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar36[2] = uStack_fc;" (assignment_expression "puVar36[2] = uStack_fc" (subscript_expression "puVar36[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar36[3] = uStack_f8;" (assignment_expression "puVar36[3] = uStack_f8" (subscript_expression "puVar36[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar36[4] = uStack_f4;" (assignment_expression "puVar36[4] = uStack_f4" (subscript_expression "puVar36[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar36[5] = uStack_f0;" (assignment_expression "puVar36[5] = uStack_f0" (subscript_expression "puVar36[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar36[6] = uStack_ec;" (assignment_expression "puVar36[6] = uStack_ec" (subscript_expression "puVar36[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar36[7] = uStack_e8;" (assignment_expression "puVar36[7] = uStack_e8" (subscript_expression "puVar36[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar40[1] = rStack_124.nelem;" (assignment_expression "puVar40[1] = rStack_124.nelem" (subscript_expression "puVar40[1]" identifier [ number_literal ]) = (field_expression "rStack_124.nelem" identifier . field_identifier)) ;) (expression_statement "puVar40[2] = (uint)rStack_124.elems;" (assignment_expression "puVar40[2] = (uint)rStack_124.elems" (subscript_expression "puVar40[2]" identifier [ number_literal ]) = (cast_expression "(uint)rStack_124.elems" ( (type_descriptor "uint" type_identifier) ) (field_expression "rStack_124.elems" identifier . field_identifier))) ;) (expression_statement "*puVar40 = rStack_124.alloc;" (assignment_expression "*puVar40 = rStack_124.alloc" (pointer_expression "*puVar40" * identifier) = (field_expression "rStack_124.alloc" identifier . field_identifier)) ;) (expression_statement "puVar40[3] = uStack_118;" (assignment_expression "puVar40[3] = uStack_118" (subscript_expression "puVar40[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar40[4] = uStack_114;" (assignment_expression "puVar40[4] = uStack_114" (subscript_expression "puVar40[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar40[5] = uStack_110;" (assignment_expression "puVar40[5] = uStack_110" (subscript_expression "puVar40[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar40[6] = uStack_10c;" (assignment_expression "puVar40[6] = uStack_10c" (subscript_expression "puVar40[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar40[7] = uStack_108;" (assignment_expression "puVar40[7] = uStack_108" (subscript_expression "puVar40[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "prVar35 = prVar17;" (assignment_expression "prVar35 = prVar17" identifier = identifier) ;) (expression_statement "iVar27 = (*(code *)(iVar46 + -0x4580))(iVar29 + (int)prVar28 * 0xc);" (assignment_expression "iVar27 = (*(code *)(iVar46 + -0x4580))(iVar29 + (int)prVar28 * 0xc)" identifier = (call_expression "(*(code *)(iVar46 + -0x4580))(iVar29 + (int)prVar28 * 0xc)" (parenthesized_expression "(*(code *)(iVar46 + -0x4580))" ( (pointer_expression "*(code *)(iVar46 + -0x4580)" * (cast_expression "(code *)(iVar46 + -0x4580)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + -0x4580)" ( (binary_expression "iVar46 + -0x4580" identifier + number_literal) )))) )) (argument_list "(iVar29 + (int)prVar28 * 0xc)" ( (binary_expression "iVar29 + (int)prVar28 * 0xc" identifier + (binary_expression "(int)prVar28 * 0xc" (cast_expression "(int)prVar28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (if_statement "if (iVar27 != 0) goto LAB_0001e458;" if (parenthesized_expression "(iVar27 != 0)" ( (binary_expression "iVar27 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001e458;" goto statement_identifier ;)) (expression_statement "prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);" (assignment_expression "prVar28 = (re_node_set *)((int)&prVar28->alloc + 1)" identifier = (cast_expression "(re_node_set *)((int)&prVar28->alloc + 1)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar28->alloc + 1)" ( (binary_expression "(int)&prVar28->alloc + 1" (cast_expression "(int)&prVar28->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar28->alloc" & (field_expression "prVar28->alloc" identifier -> field_identifier))) + number_literal) )))) ;) })) (expression_statement "prVar35 = *(re_node_set **)(prVar18[1].alloc + iVar38);" (assignment_expression "prVar35 = *(re_node_set **)(prVar18[1].alloc + iVar38)" identifier = (pointer_expression "*(re_node_set **)(prVar18[1].alloc + iVar38)" * (cast_expression "(re_node_set **)(prVar18[1].alloc + iVar38)" ( (type_descriptor "re_node_set **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(prVar18[1].alloc + iVar38)" ( (binary_expression "prVar18[1].alloc + iVar38" (field_expression "prVar18[1].alloc" (subscript_expression "prVar18[1]" identifier [ number_literal ]) . field_identifier) + identifier) ))))) ;) (expression_statement "iVar27 = (*(code *)(iVar45 + -0x7b38))(prVar17);" (assignment_expression "iVar27 = (*(code *)(iVar45 + -0x7b38))(prVar17)" identifier = (call_expression "(*(code *)(iVar45 + -0x7b38))(prVar17)" (parenthesized_expression "(*(code *)(iVar45 + -0x7b38))" ( (pointer_expression "*(code *)(iVar45 + -0x7b38)" * (cast_expression "(code *)(iVar45 + -0x7b38)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar45 + -0x7b38)" ( (binary_expression "iVar45 + -0x7b38" identifier + number_literal) )))) )) (argument_list "(prVar17)" ( identifier )))) ;) (if_statement "if (iVar27 == 0) {\n                    iStack_178 = (int)prVar28 << 1;\n                    goto LAB_0001e458;\n                  }" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (compound_statement "{\n                    iStack_178 = (int)prVar28 << 1;\n                    goto LAB_0001e458;\n                  }" { (expression_statement "iStack_178 = (int)prVar28 << 1;" (assignment_expression "iStack_178 = (int)prVar28 << 1" identifier = (binary_expression "(int)prVar28 << 1" (cast_expression "(int)prVar28" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) (goto_statement "goto LAB_0001e458;" goto statement_identifier ;) })) (if_statement "if (uVar30 == 0) break;" if (parenthesized_expression "(uVar30 == 0)" ( (binary_expression "uVar30 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) })) })) (expression_statement "puVar40 = puVar40 + 8;" (assignment_expression "puVar40 = puVar40 + 8" identifier = (binary_expression "puVar40 + 8" identifier + number_literal)) ;) (expression_statement "prVar44 = (re_node_set *)((int)&prVar44->alloc + 1);" (assignment_expression "prVar44 = (re_node_set *)((int)&prVar44->alloc + 1)" identifier = (cast_expression "(re_node_set *)((int)&prVar44->alloc + 1)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar44->alloc + 1)" ( (binary_expression "(int)&prVar44->alloc + 1" (cast_expression "(int)&prVar44->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar44->alloc" & (field_expression "prVar44->alloc" identifier -> field_identifier))) + number_literal) )))) ;) }) while (parenthesized_expression "((int)prVar44 < (int)prVar28)" ( (binary_expression "(int)prVar44 < (int)prVar28" (cast_expression "(int)prVar44" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)prVar28" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "iStack_178 = (int)prVar28 * 2;" (assignment_expression "iStack_178 = (int)prVar28 * 2" identifier = (binary_expression "(int)prVar28 * 2" (cast_expression "(int)prVar28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if (prVar28 == prVar44) {\n            iVar27 = prVar18[1].alloc;\n            pcVar53 = *(code **)(pcVar52 + 0x1e724);\n            puVar40 = puVar9 + (int)prVar28 * 8;\n            *puVar40 = rStack_144.alloc;\n            prVar35 = (re_node_set *)(iVar27 + iVar38);\n            puVar40[1] = rStack_144.nelem;\n            puVar41 = (undefined4 *)(iVar29 + (int)prVar28 * 0xc);\n            puVar40[2] = (uint)rStack_144.elems;\n            puVar40[3] = uStack_138;\n            puVar40[4] = uStack_134;\n            puVar40[5] = uStack_130;\n            puVar40[6] = uStack_12c;\n            puVar40[7] = uStack_128;\n            IVar22 = prVar35->alloc;\n            *puVar41 = 1;\n            puVar41[1] = 1;\n            pIVar15 = (Idx *)(*pcVar53)(4);\n            puVar41[2] = pIVar15;\n            if (pIVar15 != (Idx *)0x0) {\n              pIVar24 = prVar18->elems;\n              prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n              *pIVar15 = IVar22;\n              rStack_144.alloc = 0;\n              rStack_144.nelem = 0;\n              rStack_144.elems = (Idx *)0x0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar41[1] = 0;\n            *puVar41 = 0;\n            if (prVar28 == (re_node_set *)0x0) {\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }\n            else {\nLAB_0001e458:\n              iVar45 = iVar29;\n              do {\n                iVar46 = iVar45 + 0xc;\n                (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n                iVar45 = iVar46;\n              } while ((int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29 != iVar46);\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }\n            goto LAB_0001dffc;\n          }" if (parenthesized_expression "(prVar28 == prVar44)" ( (binary_expression "prVar28 == prVar44" identifier == identifier) )) (compound_statement "{\n            iVar27 = prVar18[1].alloc;\n            pcVar53 = *(code **)(pcVar52 + 0x1e724);\n            puVar40 = puVar9 + (int)prVar28 * 8;\n            *puVar40 = rStack_144.alloc;\n            prVar35 = (re_node_set *)(iVar27 + iVar38);\n            puVar40[1] = rStack_144.nelem;\n            puVar41 = (undefined4 *)(iVar29 + (int)prVar28 * 0xc);\n            puVar40[2] = (uint)rStack_144.elems;\n            puVar40[3] = uStack_138;\n            puVar40[4] = uStack_134;\n            puVar40[5] = uStack_130;\n            puVar40[6] = uStack_12c;\n            puVar40[7] = uStack_128;\n            IVar22 = prVar35->alloc;\n            *puVar41 = 1;\n            puVar41[1] = 1;\n            pIVar15 = (Idx *)(*pcVar53)(4);\n            puVar41[2] = pIVar15;\n            if (pIVar15 != (Idx *)0x0) {\n              pIVar24 = prVar18->elems;\n              prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n              *pIVar15 = IVar22;\n              rStack_144.alloc = 0;\n              rStack_144.nelem = 0;\n              rStack_144.elems = (Idx *)0x0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar41[1] = 0;\n            *puVar41 = 0;\n            if (prVar28 == (re_node_set *)0x0) {\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }\n            else {\nLAB_0001e458:\n              iVar45 = iVar29;\n              do {\n                iVar46 = iVar45 + 0xc;\n                (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n                iVar45 = iVar46;\n              } while ((int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29 != iVar46);\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }\n            goto LAB_0001dffc;\n          }" { (expression_statement "iVar27 = prVar18[1].alloc;" (assignment_expression "iVar27 = prVar18[1].alloc" identifier = (field_expression "prVar18[1].alloc" (subscript_expression "prVar18[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "pcVar53 = *(code **)(pcVar52 + 0x1e724);" (assignment_expression "pcVar53 = *(code **)(pcVar52 + 0x1e724)" identifier = (pointer_expression "*(code **)(pcVar52 + 0x1e724)" * (cast_expression "(code **)(pcVar52 + 0x1e724)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar52 + 0x1e724)" ( (binary_expression "pcVar52 + 0x1e724" identifier + number_literal) ))))) ;) (expression_statement "puVar40 = puVar9 + (int)prVar28 * 8;" (assignment_expression "puVar40 = puVar9 + (int)prVar28 * 8" identifier = (binary_expression "puVar9 + (int)prVar28 * 8" identifier + (binary_expression "(int)prVar28 * 8" (cast_expression "(int)prVar28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "*puVar40 = rStack_144.alloc;" (assignment_expression "*puVar40 = rStack_144.alloc" (pointer_expression "*puVar40" * identifier) = (field_expression "rStack_144.alloc" identifier . field_identifier)) ;) (expression_statement "prVar35 = (re_node_set *)(iVar27 + iVar38);" (assignment_expression "prVar35 = (re_node_set *)(iVar27 + iVar38)" identifier = (cast_expression "(re_node_set *)(iVar27 + iVar38)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + iVar38)" ( (binary_expression "iVar27 + iVar38" identifier + identifier) )))) ;) (expression_statement "puVar40[1] = rStack_144.nelem;" (assignment_expression "puVar40[1] = rStack_144.nelem" (subscript_expression "puVar40[1]" identifier [ number_literal ]) = (field_expression "rStack_144.nelem" identifier . field_identifier)) ;) (expression_statement "puVar41 = (undefined4 *)(iVar29 + (int)prVar28 * 0xc);" (assignment_expression "puVar41 = (undefined4 *)(iVar29 + (int)prVar28 * 0xc)" identifier = (cast_expression "(undefined4 *)(iVar29 + (int)prVar28 * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + (int)prVar28 * 0xc)" ( (binary_expression "iVar29 + (int)prVar28 * 0xc" identifier + (binary_expression "(int)prVar28 * 0xc" (cast_expression "(int)prVar28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "puVar40[2] = (uint)rStack_144.elems;" (assignment_expression "puVar40[2] = (uint)rStack_144.elems" (subscript_expression "puVar40[2]" identifier [ number_literal ]) = (cast_expression "(uint)rStack_144.elems" ( (type_descriptor "uint" type_identifier) ) (field_expression "rStack_144.elems" identifier . field_identifier))) ;) (expression_statement "puVar40[3] = uStack_138;" (assignment_expression "puVar40[3] = uStack_138" (subscript_expression "puVar40[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar40[4] = uStack_134;" (assignment_expression "puVar40[4] = uStack_134" (subscript_expression "puVar40[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar40[5] = uStack_130;" (assignment_expression "puVar40[5] = uStack_130" (subscript_expression "puVar40[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar40[6] = uStack_12c;" (assignment_expression "puVar40[6] = uStack_12c" (subscript_expression "puVar40[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar40[7] = uStack_128;" (assignment_expression "puVar40[7] = uStack_128" (subscript_expression "puVar40[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "IVar22 = prVar35->alloc;" (assignment_expression "IVar22 = prVar35->alloc" identifier = (field_expression "prVar35->alloc" identifier -> field_identifier)) ;) (expression_statement "*puVar41 = 1;" (assignment_expression "*puVar41 = 1" (pointer_expression "*puVar41" * identifier) = number_literal) ;) (expression_statement "puVar41[1] = 1;" (assignment_expression "puVar41[1] = 1" (subscript_expression "puVar41[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pIVar15 = (Idx *)(*pcVar53)(4);" (assignment_expression "pIVar15 = (Idx *)(*pcVar53)(4)" identifier = (cast_expression "(Idx *)(*pcVar53)(4)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar53)(4)" (parenthesized_expression "(*pcVar53)" ( (pointer_expression "*pcVar53" * identifier) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "puVar41[2] = pIVar15;" (assignment_expression "puVar41[2] = pIVar15" (subscript_expression "puVar41[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (pIVar15 != (Idx *)0x0) {\n              pIVar24 = prVar18->elems;\n              prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n              *pIVar15 = IVar22;\n              rStack_144.alloc = 0;\n              rStack_144.nelem = 0;\n              rStack_144.elems = (Idx *)0x0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }" if (parenthesized_expression "(pIVar15 != (Idx *)0x0)" ( (binary_expression "pIVar15 != (Idx *)0x0" identifier != (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pIVar24 = prVar18->elems;\n              prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);\n              *pIVar15 = IVar22;\n              rStack_144.alloc = 0;\n              rStack_144.nelem = 0;\n              rStack_144.elems = (Idx *)0x0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }" { (expression_statement "pIVar24 = prVar18->elems;" (assignment_expression "pIVar24 = prVar18->elems" identifier = (field_expression "prVar18->elems" identifier -> field_identifier)) ;) (expression_statement "prVar28 = (re_node_set *)((int)&prVar28->alloc + 1);" (assignment_expression "prVar28 = (re_node_set *)((int)&prVar28->alloc + 1)" identifier = (cast_expression "(re_node_set *)((int)&prVar28->alloc + 1)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar28->alloc + 1)" ( (binary_expression "(int)&prVar28->alloc + 1" (cast_expression "(int)&prVar28->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar28->alloc" & (field_expression "prVar28->alloc" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "*pIVar15 = IVar22;" (assignment_expression "*pIVar15 = IVar22" (pointer_expression "*pIVar15" * identifier) = identifier) ;) (expression_statement "rStack_144.alloc = 0;" (assignment_expression "rStack_144.alloc = 0" (field_expression "rStack_144.alloc" identifier . field_identifier) = number_literal) ;) (expression_statement "rStack_144.nelem = 0;" (assignment_expression "rStack_144.nelem = 0" (field_expression "rStack_144.nelem" identifier . field_identifier) = number_literal) ;) (expression_statement "rStack_144.elems = (Idx *)0x0;" (assignment_expression "rStack_144.elems = (Idx *)0x0" (field_expression "rStack_144.elems" identifier . field_identifier) = (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_138 = 0;" (assignment_expression "uStack_138 = 0" identifier = number_literal) ;) (expression_statement "uStack_134 = 0;" (assignment_expression "uStack_134 = 0" identifier = number_literal) ;) (expression_statement "uStack_130 = 0;" (assignment_expression "uStack_130 = 0" identifier = number_literal) ;) (expression_statement "uStack_12c = 0;" (assignment_expression "uStack_12c = 0" identifier = number_literal) ;) (expression_statement "uStack_128 = 0;" (assignment_expression "uStack_128 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0001dcc8;" goto statement_identifier ;) })) (expression_statement "puVar41[1] = 0;" (assignment_expression "puVar41[1] = 0" (subscript_expression "puVar41[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar41 = 0;" (assignment_expression "*puVar41 = 0" (pointer_expression "*puVar41" * identifier) = number_literal) ;) (if_statement "if (prVar28 == (re_node_set *)0x0) {\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }\n            else {\nLAB_0001e458:\n              iVar45 = iVar29;\n              do {\n                iVar46 = iVar45 + 0xc;\n                (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n                iVar45 = iVar46;\n              } while ((int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29 != iVar46);\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }" if (parenthesized_expression "(prVar28 == (re_node_set *)0x0)" ( (binary_expression "prVar28 == (re_node_set *)0x0" identifier == (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }" { (expression_statement "(**(code **)(pcVar52 + 0x1e790))(iVar29);" (call_expression "(**(code **)(pcVar52 + 0x1e790))(iVar29)" (parenthesized_expression "(**(code **)(pcVar52 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar52 + 0x1e790)" * (pointer_expression "*(code **)(pcVar52 + 0x1e790)" * (cast_expression "(code **)(pcVar52 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar52 + 0x1e790)" ( (binary_expression "pcVar52 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(iVar29)" ( identifier ))) ;) }) (else_clause "else {\nLAB_0001e458:\n              iVar45 = iVar29;\n              do {\n                iVar46 = iVar45 + 0xc;\n                (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n                iVar45 = iVar46;\n              } while ((int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29 != iVar46);\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }" else (compound_statement "{\nLAB_0001e458:\n              iVar45 = iVar29;\n              do {\n                iVar46 = iVar45 + 0xc;\n                (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n                iVar45 = iVar46;\n              } while ((int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29 != iVar46);\n              (**(code **)(pcVar52 + 0x1e790))(iVar29);\n            }" { (labeled_statement "LAB_0001e458:\n              iVar45 = iVar29;" statement_identifier : (expression_statement "iVar45 = iVar29;" (assignment_expression "iVar45 = iVar29" identifier = identifier) ;)) (do_statement "do {\n                iVar46 = iVar45 + 0xc;\n                (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n                iVar45 = iVar46;\n              } while ((int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29 != iVar46);" do (compound_statement "{\n                iVar46 = iVar45 + 0xc;\n                (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n                iVar45 = iVar46;\n              }" { (expression_statement "iVar46 = iVar45 + 0xc;" (assignment_expression "iVar46 = iVar45 + 0xc" identifier = (binary_expression "iVar45 + 0xc" identifier + number_literal)) ;) (expression_statement "(**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));" (call_expression "(**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8))" (parenthesized_expression "(**(code **)(pcVar52 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar52 + 0x1e790)" * (pointer_expression "*(code **)(pcVar52 + 0x1e790)" * (cast_expression "(code **)(pcVar52 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar52 + 0x1e790)" ( (binary_expression "pcVar52 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar45 + 8))" ( (pointer_expression "*(undefined4 *)(iVar45 + 8)" * (cast_expression "(undefined4 *)(iVar45 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar45 + 8)" ( (binary_expression "iVar45 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "iVar45 = iVar46;" (assignment_expression "iVar45 = iVar46" identifier = identifier) ;) }) while (parenthesized_expression "((int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29 != iVar46)" ( (binary_expression "(int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29 != iVar46" (binary_expression "(int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29" (binary_expression "(int)((int)&prVar28->alloc + iStack_178) * 4" (cast_expression "(int)((int)&prVar28->alloc + iStack_178)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&prVar28->alloc + iStack_178)" ( (binary_expression "(int)&prVar28->alloc + iStack_178" (cast_expression "(int)&prVar28->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar28->alloc" & (field_expression "prVar28->alloc" identifier -> field_identifier))) + identifier) ))) * number_literal) + identifier) != identifier) )) ;) (expression_statement "(**(code **)(pcVar52 + 0x1e790))(iVar29);" (call_expression "(**(code **)(pcVar52 + 0x1e790))(iVar29)" (parenthesized_expression "(**(code **)(pcVar52 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar52 + 0x1e790)" * (pointer_expression "*(code **)(pcVar52 + 0x1e790)" * (cast_expression "(code **)(pcVar52 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar52 + 0x1e790)" ( (binary_expression "pcVar52 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(iVar29)" ( identifier ))) ;) }))) (goto_statement "goto LAB_0001dffc;" goto statement_identifier ;) })) (expression_statement "pIVar24 = prVar18->elems;" (assignment_expression "pIVar24 = prVar18->elems" identifier = (field_expression "prVar18->elems" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0001dcc8;" goto statement_identifier ;) })) (if_statement "if ((bVar1 != 1) || ((*(uint *)(pbVar47 + 4) & 0x200) == 0)) {\n          prVar44 = prVar7 + 8;\n          if ((int)prVar7[7].elems < 2) {\n            prVar35 = (re_node_set *)0x0;\n            prVar17 = &rStack_144;\n            do {\n              pIVar13 = &prVar17->nelem;\n              pIVar15 = &prVar44->alloc;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~*pIVar15 & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while ((re_node_set *)pIVar13 != &rStack_124);\n          }\n          else {\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar35 = (re_node_set *)0x0;\n            prVar17 = &rStack_144;\n            do {\n              pIVar13 = &prVar17->nelem;\n              uVar4 = *puVar40;\n              pIVar15 = &prVar44->alloc;\n              puVar40 = puVar40 + 1;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~(*pIVar15 & uVar4) & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }\n          if (prVar35 == (re_node_set *)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }" if (parenthesized_expression "((bVar1 != 1) || ((*(uint *)(pbVar47 + 4) & 0x200) == 0))" ( (binary_expression "(bVar1 != 1) || ((*(uint *)(pbVar47 + 4) & 0x200) == 0)" (parenthesized_expression "(bVar1 != 1)" ( (binary_expression "bVar1 != 1" identifier != number_literal) )) || (parenthesized_expression "((*(uint *)(pbVar47 + 4) & 0x200) == 0)" ( (binary_expression "(*(uint *)(pbVar47 + 4) & 0x200) == 0" (parenthesized_expression "(*(uint *)(pbVar47 + 4) & 0x200)" ( (binary_expression "*(uint *)(pbVar47 + 4) & 0x200" (pointer_expression "*(uint *)(pbVar47 + 4)" * (cast_expression "(uint *)(pbVar47 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar47 + 4)" ( (binary_expression "pbVar47 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          prVar44 = prVar7 + 8;\n          if ((int)prVar7[7].elems < 2) {\n            prVar35 = (re_node_set *)0x0;\n            prVar17 = &rStack_144;\n            do {\n              pIVar13 = &prVar17->nelem;\n              pIVar15 = &prVar44->alloc;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~*pIVar15 & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while ((re_node_set *)pIVar13 != &rStack_124);\n          }\n          else {\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar35 = (re_node_set *)0x0;\n            prVar17 = &rStack_144;\n            do {\n              pIVar13 = &prVar17->nelem;\n              uVar4 = *puVar40;\n              pIVar15 = &prVar44->alloc;\n              puVar40 = puVar40 + 1;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~(*pIVar15 & uVar4) & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }\n          if (prVar35 == (re_node_set *)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }" { (expression_statement "prVar44 = prVar7 + 8;" (assignment_expression "prVar44 = prVar7 + 8" identifier = (binary_expression "prVar7 + 8" identifier + number_literal)) ;) (if_statement "if ((int)prVar7[7].elems < 2) {\n            prVar35 = (re_node_set *)0x0;\n            prVar17 = &rStack_144;\n            do {\n              pIVar13 = &prVar17->nelem;\n              pIVar15 = &prVar44->alloc;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~*pIVar15 & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while ((re_node_set *)pIVar13 != &rStack_124);\n          }\n          else {\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar35 = (re_node_set *)0x0;\n            prVar17 = &rStack_144;\n            do {\n              pIVar13 = &prVar17->nelem;\n              uVar4 = *puVar40;\n              pIVar15 = &prVar44->alloc;\n              puVar40 = puVar40 + 1;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~(*pIVar15 & uVar4) & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }" if (parenthesized_expression "((int)prVar7[7].elems < 2)" ( (binary_expression "(int)prVar7[7].elems < 2" (cast_expression "(int)prVar7[7].elems" ( (type_descriptor "int" primitive_type) ) (field_expression "prVar7[7].elems" (subscript_expression "prVar7[7]" identifier [ number_literal ]) . field_identifier)) < number_literal) )) (compound_statement "{\n            prVar35 = (re_node_set *)0x0;\n            prVar17 = &rStack_144;\n            do {\n              pIVar13 = &prVar17->nelem;\n              pIVar15 = &prVar44->alloc;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~*pIVar15 & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while ((re_node_set *)pIVar13 != &rStack_124);\n          }" { (expression_statement "prVar35 = (re_node_set *)0x0;" (assignment_expression "prVar35 = (re_node_set *)0x0" identifier = (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "prVar17 = &rStack_144;" (assignment_expression "prVar17 = &rStack_144" identifier = (pointer_expression "&rStack_144" & identifier)) ;) (do_statement "do {\n              pIVar13 = &prVar17->nelem;\n              pIVar15 = &prVar44->alloc;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~*pIVar15 & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while ((re_node_set *)pIVar13 != &rStack_124);" do (compound_statement "{\n              pIVar13 = &prVar17->nelem;\n              pIVar15 = &prVar44->alloc;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~*pIVar15 & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            }" { (expression_statement "pIVar13 = &prVar17->nelem;" (assignment_expression "pIVar13 = &prVar17->nelem" identifier = (pointer_expression "&prVar17->nelem" & (field_expression "prVar17->nelem" identifier -> field_identifier))) ;) (expression_statement "pIVar15 = &prVar44->alloc;" (assignment_expression "pIVar15 = &prVar44->alloc" identifier = (pointer_expression "&prVar44->alloc" & (field_expression "prVar44->alloc" identifier -> field_identifier))) ;) (expression_statement "prVar44 = (re_node_set *)&prVar44->nelem;" (assignment_expression "prVar44 = (re_node_set *)&prVar44->nelem" identifier = (cast_expression "(re_node_set *)&prVar44->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar44->nelem" & (field_expression "prVar44->nelem" identifier -> field_identifier)))) ;) (expression_statement "uVar4 = ~*pIVar15 & prVar17->alloc;" (assignment_expression "uVar4 = ~*pIVar15 & prVar17->alloc" identifier = (binary_expression "~*pIVar15 & prVar17->alloc" (unary_expression "~*pIVar15" ~ (pointer_expression "*pIVar15" * identifier)) & (field_expression "prVar17->alloc" identifier -> field_identifier))) ;) (expression_statement "prVar17->alloc = uVar4;" (assignment_expression "prVar17->alloc = uVar4" (field_expression "prVar17->alloc" identifier -> field_identifier) = identifier) ;) (expression_statement "prVar35 = (re_node_set *)((uint)prVar35 | uVar4);" (assignment_expression "prVar35 = (re_node_set *)((uint)prVar35 | uVar4)" identifier = (cast_expression "(re_node_set *)((uint)prVar35 | uVar4)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)prVar35 | uVar4)" ( (binary_expression "(uint)prVar35 | uVar4" (cast_expression "(uint)prVar35" ( (type_descriptor "uint" type_identifier) ) identifier) | identifier) )))) ;) (expression_statement "prVar17 = (re_node_set *)pIVar13;" (assignment_expression "prVar17 = (re_node_set *)pIVar13" identifier = (cast_expression "(re_node_set *)pIVar13" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "((re_node_set *)pIVar13 != &rStack_124)" ( (binary_expression "(re_node_set *)pIVar13 != &rStack_124" (cast_expression "(re_node_set *)pIVar13" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (pointer_expression "&rStack_124" & identifier)) )) ;) }) (else_clause "else {\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar35 = (re_node_set *)0x0;\n            prVar17 = &rStack_144;\n            do {\n              pIVar13 = &prVar17->nelem;\n              uVar4 = *puVar40;\n              pIVar15 = &prVar44->alloc;\n              puVar40 = puVar40 + 1;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~(*pIVar15 & uVar4) & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }" else (compound_statement "{\n            puVar40 = (uint *)prVar7[5].alloc;\n            prVar35 = (re_node_set *)0x0;\n            prVar17 = &rStack_144;\n            do {\n              pIVar13 = &prVar17->nelem;\n              uVar4 = *puVar40;\n              pIVar15 = &prVar44->alloc;\n              puVar40 = puVar40 + 1;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~(*pIVar15 & uVar4) & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);\n          }" { (expression_statement "puVar40 = (uint *)prVar7[5].alloc;" (assignment_expression "puVar40 = (uint *)prVar7[5].alloc" identifier = (cast_expression "(uint *)prVar7[5].alloc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prVar7[5].alloc" (subscript_expression "prVar7[5]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "prVar35 = (re_node_set *)0x0;" (assignment_expression "prVar35 = (re_node_set *)0x0" identifier = (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "prVar17 = &rStack_144;" (assignment_expression "prVar17 = &rStack_144" identifier = (pointer_expression "&rStack_144" & identifier)) ;) (do_statement "do {\n              pIVar13 = &prVar17->nelem;\n              uVar4 = *puVar40;\n              pIVar15 = &prVar44->alloc;\n              puVar40 = puVar40 + 1;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~(*pIVar15 & uVar4) & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            } while (&rStack_124 != (re_node_set *)pIVar13);" do (compound_statement "{\n              pIVar13 = &prVar17->nelem;\n              uVar4 = *puVar40;\n              pIVar15 = &prVar44->alloc;\n              puVar40 = puVar40 + 1;\n              prVar44 = (re_node_set *)&prVar44->nelem;\n              uVar4 = ~(*pIVar15 & uVar4) & prVar17->alloc;\n              prVar17->alloc = uVar4;\n              prVar35 = (re_node_set *)((uint)prVar35 | uVar4);\n              prVar17 = (re_node_set *)pIVar13;\n            }" { (expression_statement "pIVar13 = &prVar17->nelem;" (assignment_expression "pIVar13 = &prVar17->nelem" identifier = (pointer_expression "&prVar17->nelem" & (field_expression "prVar17->nelem" identifier -> field_identifier))) ;) (expression_statement "uVar4 = *puVar40;" (assignment_expression "uVar4 = *puVar40" identifier = (pointer_expression "*puVar40" * identifier)) ;) (expression_statement "pIVar15 = &prVar44->alloc;" (assignment_expression "pIVar15 = &prVar44->alloc" identifier = (pointer_expression "&prVar44->alloc" & (field_expression "prVar44->alloc" identifier -> field_identifier))) ;) (expression_statement "puVar40 = puVar40 + 1;" (assignment_expression "puVar40 = puVar40 + 1" identifier = (binary_expression "puVar40 + 1" identifier + number_literal)) ;) (expression_statement "prVar44 = (re_node_set *)&prVar44->nelem;" (assignment_expression "prVar44 = (re_node_set *)&prVar44->nelem" identifier = (cast_expression "(re_node_set *)&prVar44->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar44->nelem" & (field_expression "prVar44->nelem" identifier -> field_identifier)))) ;) (expression_statement "uVar4 = ~(*pIVar15 & uVar4) & prVar17->alloc;" (assignment_expression "uVar4 = ~(*pIVar15 & uVar4) & prVar17->alloc" identifier = (binary_expression "~(*pIVar15 & uVar4) & prVar17->alloc" (unary_expression "~(*pIVar15 & uVar4)" ~ (parenthesized_expression "(*pIVar15 & uVar4)" ( (binary_expression "*pIVar15 & uVar4" (pointer_expression "*pIVar15" * identifier) & identifier) ))) & (field_expression "prVar17->alloc" identifier -> field_identifier))) ;) (expression_statement "prVar17->alloc = uVar4;" (assignment_expression "prVar17->alloc = uVar4" (field_expression "prVar17->alloc" identifier -> field_identifier) = identifier) ;) (expression_statement "prVar35 = (re_node_set *)((uint)prVar35 | uVar4);" (assignment_expression "prVar35 = (re_node_set *)((uint)prVar35 | uVar4)" identifier = (cast_expression "(re_node_set *)((uint)prVar35 | uVar4)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)prVar35 | uVar4)" ( (binary_expression "(uint)prVar35 | uVar4" (cast_expression "(uint)prVar35" ( (type_descriptor "uint" type_identifier) ) identifier) | identifier) )))) ;) (expression_statement "prVar17 = (re_node_set *)pIVar13;" (assignment_expression "prVar17 = (re_node_set *)pIVar13" identifier = (cast_expression "(re_node_set *)pIVar13" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(&rStack_124 != (re_node_set *)pIVar13)" ( (binary_expression "&rStack_124 != (re_node_set *)pIVar13" (pointer_expression "&rStack_124" & identifier) != (cast_expression "(re_node_set *)pIVar13" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) }))) (if_statement "if (prVar35 == (re_node_set *)0x0) goto LAB_0001dcc8;" if (parenthesized_expression "(prVar35 == (re_node_set *)0x0)" ( (binary_expression "prVar35 == (re_node_set *)0x0" identifier == (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001dcc8;" goto statement_identifier ;)) (goto_statement "goto LAB_0001e15c;" goto statement_identifier ;) })) (expression_statement "rStack_144.alloc = 0;" (assignment_expression "rStack_144.alloc = 0" (field_expression "rStack_144.alloc" identifier . field_identifier) = number_literal) ;) }) (else_clause "else {\n        rStack_144.nelem = 0;\n        rStack_144.alloc = 0;\n        rStack_144.elems = (Idx *)0x0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if ((IVar22 & 0x400U) == 0) goto LAB_0001dcc8;\n        rStack_144.alloc = 0x400;\n        if ((uVar4 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        rStack_144.alloc = 0;\n      }" else (compound_statement "{\n        rStack_144.nelem = 0;\n        rStack_144.alloc = 0;\n        rStack_144.elems = (Idx *)0x0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if ((IVar22 & 0x400U) == 0) goto LAB_0001dcc8;\n        rStack_144.alloc = 0x400;\n        if ((uVar4 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        rStack_144.alloc = 0;\n      }" { (expression_statement "rStack_144.nelem = 0;" (assignment_expression "rStack_144.nelem = 0" (field_expression "rStack_144.nelem" identifier . field_identifier) = number_literal) ;) (expression_statement "rStack_144.alloc = 0;" (assignment_expression "rStack_144.alloc = 0" (field_expression "rStack_144.alloc" identifier . field_identifier) = number_literal) ;) (expression_statement "rStack_144.elems = (Idx *)0x0;" (assignment_expression "rStack_144.elems = (Idx *)0x0" (field_expression "rStack_144.elems" identifier . field_identifier) = (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_138 = 0;" (assignment_expression "uStack_138 = 0" identifier = number_literal) ;) (expression_statement "uStack_134 = 0;" (assignment_expression "uStack_134 = 0" identifier = number_literal) ;) (expression_statement "uStack_130 = 0;" (assignment_expression "uStack_130 = 0" identifier = number_literal) ;) (expression_statement "uStack_12c = 0;" (assignment_expression "uStack_12c = 0" identifier = number_literal) ;) (expression_statement "uStack_128 = 0;" (assignment_expression "uStack_128 = 0" identifier = number_literal) ;) (if_statement "if ((IVar22 & 0x400U) == 0) goto LAB_0001dcc8;" if (parenthesized_expression "((IVar22 & 0x400U) == 0)" ( (binary_expression "(IVar22 & 0x400U) == 0" (parenthesized_expression "(IVar22 & 0x400U)" ( (binary_expression "IVar22 & 0x400U" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001dcc8;" goto statement_identifier ;)) (expression_statement "rStack_144.alloc = 0x400;" (assignment_expression "rStack_144.alloc = 0x400" (field_expression "rStack_144.alloc" identifier . field_identifier) = number_literal) ;) (if_statement "if ((uVar4 & 0x80) == 0) goto LAB_0001e07c;" if (parenthesized_expression "((uVar4 & 0x80) == 0)" ( (binary_expression "(uVar4 & 0x80) == 0" (parenthesized_expression "(uVar4 & 0x80)" ( (binary_expression "uVar4 & 0x80" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001e07c;" goto statement_identifier ;)) (labeled_statement "LAB_0001e428:\n        rStack_144.alloc = 0;" statement_identifier : (expression_statement "rStack_144.alloc = 0;" (assignment_expression "rStack_144.alloc = 0" (field_expression "rStack_144.alloc" identifier . field_identifier) = number_literal) ;)) }))) (expression_statement "rStack_144.alloc = 0;" (assignment_expression "rStack_144.alloc = 0" (field_expression "rStack_144.alloc" identifier . field_identifier) = number_literal) ;) (expression_statement "rStack_144.nelem = 0;" (assignment_expression "rStack_144.nelem = 0" (field_expression "rStack_144.nelem" identifier . field_identifier) = number_literal) ;) (expression_statement "rStack_144.elems = (Idx *)0x0;" (assignment_expression "rStack_144.elems = (Idx *)0x0" (field_expression "rStack_144.elems" identifier . field_identifier) = (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_138 = 0;" (assignment_expression "uStack_138 = 0" identifier = number_literal) ;) (expression_statement "uStack_134 = 0;" (assignment_expression "uStack_134 = 0" identifier = number_literal) ;) (expression_statement "uStack_130 = 0;" (assignment_expression "uStack_130 = 0" identifier = number_literal) ;) (expression_statement "uStack_12c = 0;" (assignment_expression "uStack_12c = 0" identifier = number_literal) ;) (expression_statement "uStack_128 = 0;" (assignment_expression "uStack_128 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if (bVar1 == 3) {\n        puVar40 = *(uint **)pbVar47;\n        prVar44 = &rStack_144;\n        do {\n          pIVar15 = &prVar44->nelem;\n          uVar30 = *puVar40;\n          puVar40 = puVar40 + 1;\n          prVar35 = (re_node_set *)(prVar44->alloc | uVar30);\n          prVar44->alloc = (Idx)prVar35;\n          prVar44 = (re_node_set *)pIVar15;\n        } while (&rStack_124 != (re_node_set *)pIVar15);\n        goto LAB_0001e060;\n      }\n      if (bVar1 == 5) {\n        if ((int)prVar7[7].elems < 2) {\n          rStack_144.alloc = -1;\n          rStack_144.nelem = 0xffffffff;\n          rStack_144.elems = (Idx *)0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          puVar40 = (uint *)prVar7[5].alloc;\n          prVar44 = &rStack_144;\n          do {\n            pIVar15 = &prVar44->nelem;\n            uVar30 = *puVar40;\n            puVar40 = puVar40 + 1;\n            prVar44->alloc = prVar44->alloc | uVar30;\n            prVar44 = (re_node_set *)pIVar15;\n          } while (&rStack_124 != (re_node_set *)pIVar15);\n        }\n        pIVar15 = prVar7[10].elems;\njoined_r0x0001e3b8:\n        if (((uint)pIVar15 & 0x40) == 0) {\n          rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffbff);\n        }\n        prVar35 = (re_node_set *)rStack_144.alloc;\n        if (((uint)pIVar15 & 0x80) != 0) {\n          prVar35 = (re_node_set *)&SUB_fffffffe;\n          rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      prVar35 = (re_node_set *)0xffffffff;\n      if (bVar1 == 7) {\n        pIVar15 = prVar7[10].elems;\n        rStack_144.alloc = -1;\n        rStack_144.nelem = 0xffffffff;\n        rStack_144.elems = (Idx *)0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }" else (compound_statement "{\n      if (bVar1 == 3) {\n        puVar40 = *(uint **)pbVar47;\n        prVar44 = &rStack_144;\n        do {\n          pIVar15 = &prVar44->nelem;\n          uVar30 = *puVar40;\n          puVar40 = puVar40 + 1;\n          prVar35 = (re_node_set *)(prVar44->alloc | uVar30);\n          prVar44->alloc = (Idx)prVar35;\n          prVar44 = (re_node_set *)pIVar15;\n        } while (&rStack_124 != (re_node_set *)pIVar15);\n        goto LAB_0001e060;\n      }\n      if (bVar1 == 5) {\n        if ((int)prVar7[7].elems < 2) {\n          rStack_144.alloc = -1;\n          rStack_144.nelem = 0xffffffff;\n          rStack_144.elems = (Idx *)0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          puVar40 = (uint *)prVar7[5].alloc;\n          prVar44 = &rStack_144;\n          do {\n            pIVar15 = &prVar44->nelem;\n            uVar30 = *puVar40;\n            puVar40 = puVar40 + 1;\n            prVar44->alloc = prVar44->alloc | uVar30;\n            prVar44 = (re_node_set *)pIVar15;\n          } while (&rStack_124 != (re_node_set *)pIVar15);\n        }\n        pIVar15 = prVar7[10].elems;\njoined_r0x0001e3b8:\n        if (((uint)pIVar15 & 0x40) == 0) {\n          rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffbff);\n        }\n        prVar35 = (re_node_set *)rStack_144.alloc;\n        if (((uint)pIVar15 & 0x80) != 0) {\n          prVar35 = (re_node_set *)&SUB_fffffffe;\n          rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      prVar35 = (re_node_set *)0xffffffff;\n      if (bVar1 == 7) {\n        pIVar15 = prVar7[10].elems;\n        rStack_144.alloc = -1;\n        rStack_144.nelem = 0xffffffff;\n        rStack_144.elems = (Idx *)0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }" { (if_statement "if (bVar1 == 3) {\n        puVar40 = *(uint **)pbVar47;\n        prVar44 = &rStack_144;\n        do {\n          pIVar15 = &prVar44->nelem;\n          uVar30 = *puVar40;\n          puVar40 = puVar40 + 1;\n          prVar35 = (re_node_set *)(prVar44->alloc | uVar30);\n          prVar44->alloc = (Idx)prVar35;\n          prVar44 = (re_node_set *)pIVar15;\n        } while (&rStack_124 != (re_node_set *)pIVar15);\n        goto LAB_0001e060;\n      }" if (parenthesized_expression "(bVar1 == 3)" ( (binary_expression "bVar1 == 3" identifier == number_literal) )) (compound_statement "{\n        puVar40 = *(uint **)pbVar47;\n        prVar44 = &rStack_144;\n        do {\n          pIVar15 = &prVar44->nelem;\n          uVar30 = *puVar40;\n          puVar40 = puVar40 + 1;\n          prVar35 = (re_node_set *)(prVar44->alloc | uVar30);\n          prVar44->alloc = (Idx)prVar35;\n          prVar44 = (re_node_set *)pIVar15;\n        } while (&rStack_124 != (re_node_set *)pIVar15);\n        goto LAB_0001e060;\n      }" { (expression_statement "puVar40 = *(uint **)pbVar47;" (assignment_expression "puVar40 = *(uint **)pbVar47" identifier = (pointer_expression "*(uint **)pbVar47" * (cast_expression "(uint **)pbVar47" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "prVar44 = &rStack_144;" (assignment_expression "prVar44 = &rStack_144" identifier = (pointer_expression "&rStack_144" & identifier)) ;) (do_statement "do {\n          pIVar15 = &prVar44->nelem;\n          uVar30 = *puVar40;\n          puVar40 = puVar40 + 1;\n          prVar35 = (re_node_set *)(prVar44->alloc | uVar30);\n          prVar44->alloc = (Idx)prVar35;\n          prVar44 = (re_node_set *)pIVar15;\n        } while (&rStack_124 != (re_node_set *)pIVar15);" do (compound_statement "{\n          pIVar15 = &prVar44->nelem;\n          uVar30 = *puVar40;\n          puVar40 = puVar40 + 1;\n          prVar35 = (re_node_set *)(prVar44->alloc | uVar30);\n          prVar44->alloc = (Idx)prVar35;\n          prVar44 = (re_node_set *)pIVar15;\n        }" { (expression_statement "pIVar15 = &prVar44->nelem;" (assignment_expression "pIVar15 = &prVar44->nelem" identifier = (pointer_expression "&prVar44->nelem" & (field_expression "prVar44->nelem" identifier -> field_identifier))) ;) (expression_statement "uVar30 = *puVar40;" (assignment_expression "uVar30 = *puVar40" identifier = (pointer_expression "*puVar40" * identifier)) ;) (expression_statement "puVar40 = puVar40 + 1;" (assignment_expression "puVar40 = puVar40 + 1" identifier = (binary_expression "puVar40 + 1" identifier + number_literal)) ;) (expression_statement "prVar35 = (re_node_set *)(prVar44->alloc | uVar30);" (assignment_expression "prVar35 = (re_node_set *)(prVar44->alloc | uVar30)" identifier = (cast_expression "(re_node_set *)(prVar44->alloc | uVar30)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prVar44->alloc | uVar30)" ( (binary_expression "prVar44->alloc | uVar30" (field_expression "prVar44->alloc" identifier -> field_identifier) | identifier) )))) ;) (expression_statement "prVar44->alloc = (Idx)prVar35;" (assignment_expression "prVar44->alloc = (Idx)prVar35" (field_expression "prVar44->alloc" identifier -> field_identifier) = (cast_expression "(Idx)prVar35" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "prVar44 = (re_node_set *)pIVar15;" (assignment_expression "prVar44 = (re_node_set *)pIVar15" identifier = (cast_expression "(re_node_set *)pIVar15" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(&rStack_124 != (re_node_set *)pIVar15)" ( (binary_expression "&rStack_124 != (re_node_set *)pIVar15" (pointer_expression "&rStack_124" & identifier) != (cast_expression "(re_node_set *)pIVar15" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (goto_statement "goto LAB_0001e060;" goto statement_identifier ;) })) (if_statement "if (bVar1 == 5) {\n        if ((int)prVar7[7].elems < 2) {\n          rStack_144.alloc = -1;\n          rStack_144.nelem = 0xffffffff;\n          rStack_144.elems = (Idx *)0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          puVar40 = (uint *)prVar7[5].alloc;\n          prVar44 = &rStack_144;\n          do {\n            pIVar15 = &prVar44->nelem;\n            uVar30 = *puVar40;\n            puVar40 = puVar40 + 1;\n            prVar44->alloc = prVar44->alloc | uVar30;\n            prVar44 = (re_node_set *)pIVar15;\n          } while (&rStack_124 != (re_node_set *)pIVar15);\n        }\n        pIVar15 = prVar7[10].elems;\njoined_r0x0001e3b8:\n        if (((uint)pIVar15 & 0x40) == 0) {\n          rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffbff);\n        }\n        prVar35 = (re_node_set *)rStack_144.alloc;\n        if (((uint)pIVar15 & 0x80) != 0) {\n          prVar35 = (re_node_set *)&SUB_fffffffe;\n          rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }" if (parenthesized_expression "(bVar1 == 5)" ( (binary_expression "bVar1 == 5" identifier == number_literal) )) (compound_statement "{\n        if ((int)prVar7[7].elems < 2) {\n          rStack_144.alloc = -1;\n          rStack_144.nelem = 0xffffffff;\n          rStack_144.elems = (Idx *)0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          puVar40 = (uint *)prVar7[5].alloc;\n          prVar44 = &rStack_144;\n          do {\n            pIVar15 = &prVar44->nelem;\n            uVar30 = *puVar40;\n            puVar40 = puVar40 + 1;\n            prVar44->alloc = prVar44->alloc | uVar30;\n            prVar44 = (re_node_set *)pIVar15;\n          } while (&rStack_124 != (re_node_set *)pIVar15);\n        }\n        pIVar15 = prVar7[10].elems;\njoined_r0x0001e3b8:\n        if (((uint)pIVar15 & 0x40) == 0) {\n          rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffbff);\n        }\n        prVar35 = (re_node_set *)rStack_144.alloc;\n        if (((uint)pIVar15 & 0x80) != 0) {\n          prVar35 = (re_node_set *)&SUB_fffffffe;\n          rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }" { (if_statement "if ((int)prVar7[7].elems < 2) {\n          rStack_144.alloc = -1;\n          rStack_144.nelem = 0xffffffff;\n          rStack_144.elems = (Idx *)0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          puVar40 = (uint *)prVar7[5].alloc;\n          prVar44 = &rStack_144;\n          do {\n            pIVar15 = &prVar44->nelem;\n            uVar30 = *puVar40;\n            puVar40 = puVar40 + 1;\n            prVar44->alloc = prVar44->alloc | uVar30;\n            prVar44 = (re_node_set *)pIVar15;\n          } while (&rStack_124 != (re_node_set *)pIVar15);\n        }" if (parenthesized_expression "((int)prVar7[7].elems < 2)" ( (binary_expression "(int)prVar7[7].elems < 2" (cast_expression "(int)prVar7[7].elems" ( (type_descriptor "int" primitive_type) ) (field_expression "prVar7[7].elems" (subscript_expression "prVar7[7]" identifier [ number_literal ]) . field_identifier)) < number_literal) )) (compound_statement "{\n          rStack_144.alloc = -1;\n          rStack_144.nelem = 0xffffffff;\n          rStack_144.elems = (Idx *)0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }" { (expression_statement "rStack_144.alloc = -1;" (assignment_expression "rStack_144.alloc = -1" (field_expression "rStack_144.alloc" identifier . field_identifier) = number_literal) ;) (expression_statement "rStack_144.nelem = 0xffffffff;" (assignment_expression "rStack_144.nelem = 0xffffffff" (field_expression "rStack_144.nelem" identifier . field_identifier) = number_literal) ;) (expression_statement "rStack_144.elems = (Idx *)0xffffffff;" (assignment_expression "rStack_144.elems = (Idx *)0xffffffff" (field_expression "rStack_144.elems" identifier . field_identifier) = (cast_expression "(Idx *)0xffffffff" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_138 = 0xffffffff;" (assignment_expression "uStack_138 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uStack_134 = 0xffffffff;" (assignment_expression "uStack_134 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uStack_130 = 0xffffffff;" (assignment_expression "uStack_130 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uStack_12c = 0xffffffff;" (assignment_expression "uStack_12c = 0xffffffff" identifier = number_literal) ;) (expression_statement "uStack_128 = 0xffffffff;" (assignment_expression "uStack_128 = 0xffffffff" identifier = number_literal) ;) }) (else_clause "else {\n          puVar40 = (uint *)prVar7[5].alloc;\n          prVar44 = &rStack_144;\n          do {\n            pIVar15 = &prVar44->nelem;\n            uVar30 = *puVar40;\n            puVar40 = puVar40 + 1;\n            prVar44->alloc = prVar44->alloc | uVar30;\n            prVar44 = (re_node_set *)pIVar15;\n          } while (&rStack_124 != (re_node_set *)pIVar15);\n        }" else (compound_statement "{\n          puVar40 = (uint *)prVar7[5].alloc;\n          prVar44 = &rStack_144;\n          do {\n            pIVar15 = &prVar44->nelem;\n            uVar30 = *puVar40;\n            puVar40 = puVar40 + 1;\n            prVar44->alloc = prVar44->alloc | uVar30;\n            prVar44 = (re_node_set *)pIVar15;\n          } while (&rStack_124 != (re_node_set *)pIVar15);\n        }" { (expression_statement "puVar40 = (uint *)prVar7[5].alloc;" (assignment_expression "puVar40 = (uint *)prVar7[5].alloc" identifier = (cast_expression "(uint *)prVar7[5].alloc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prVar7[5].alloc" (subscript_expression "prVar7[5]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "prVar44 = &rStack_144;" (assignment_expression "prVar44 = &rStack_144" identifier = (pointer_expression "&rStack_144" & identifier)) ;) (do_statement "do {\n            pIVar15 = &prVar44->nelem;\n            uVar30 = *puVar40;\n            puVar40 = puVar40 + 1;\n            prVar44->alloc = prVar44->alloc | uVar30;\n            prVar44 = (re_node_set *)pIVar15;\n          } while (&rStack_124 != (re_node_set *)pIVar15);" do (compound_statement "{\n            pIVar15 = &prVar44->nelem;\n            uVar30 = *puVar40;\n            puVar40 = puVar40 + 1;\n            prVar44->alloc = prVar44->alloc | uVar30;\n            prVar44 = (re_node_set *)pIVar15;\n          }" { (expression_statement "pIVar15 = &prVar44->nelem;" (assignment_expression "pIVar15 = &prVar44->nelem" identifier = (pointer_expression "&prVar44->nelem" & (field_expression "prVar44->nelem" identifier -> field_identifier))) ;) (expression_statement "uVar30 = *puVar40;" (assignment_expression "uVar30 = *puVar40" identifier = (pointer_expression "*puVar40" * identifier)) ;) (expression_statement "puVar40 = puVar40 + 1;" (assignment_expression "puVar40 = puVar40 + 1" identifier = (binary_expression "puVar40 + 1" identifier + number_literal)) ;) (expression_statement "prVar44->alloc = prVar44->alloc | uVar30;" (assignment_expression "prVar44->alloc = prVar44->alloc | uVar30" (field_expression "prVar44->alloc" identifier -> field_identifier) = (binary_expression "prVar44->alloc | uVar30" (field_expression "prVar44->alloc" identifier -> field_identifier) | identifier)) ;) (expression_statement "prVar44 = (re_node_set *)pIVar15;" (assignment_expression "prVar44 = (re_node_set *)pIVar15" identifier = (cast_expression "(re_node_set *)pIVar15" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(&rStack_124 != (re_node_set *)pIVar15)" ( (binary_expression "&rStack_124 != (re_node_set *)pIVar15" (pointer_expression "&rStack_124" & identifier) != (cast_expression "(re_node_set *)pIVar15" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) }))) (expression_statement "pIVar15 = prVar7[10].elems;" (assignment_expression "pIVar15 = prVar7[10].elems" identifier = (field_expression "prVar7[10].elems" (subscript_expression "prVar7[10]" identifier [ number_literal ]) . field_identifier)) ;) (labeled_statement "joined_r0x0001e3b8:\n        if (((uint)pIVar15 & 0x40) == 0) {\n          rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffbff);\n        }" statement_identifier : (if_statement "if (((uint)pIVar15 & 0x40) == 0) {\n          rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffbff);\n        }" if (parenthesized_expression "(((uint)pIVar15 & 0x40) == 0)" ( (binary_expression "((uint)pIVar15 & 0x40) == 0" (parenthesized_expression "((uint)pIVar15 & 0x40)" ( (binary_expression "(uint)pIVar15 & 0x40" (cast_expression "(uint)pIVar15" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffbff);\n        }" { (expression_statement "rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffbff);" (assignment_expression "rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffbff)" (field_expression "rStack_144.alloc" identifier . field_identifier) = (call_expression "(Idx)(rStack_144.alloc & 0xfffffbff)" (parenthesized_expression "(Idx)" ( identifier )) (argument_list "(rStack_144.alloc & 0xfffffbff)" ( (binary_expression "rStack_144.alloc & 0xfffffbff" (field_expression "rStack_144.alloc" identifier . field_identifier) & number_literal) )))) ;) }))) (expression_statement "prVar35 = (re_node_set *)rStack_144.alloc;" (assignment_expression "prVar35 = (re_node_set *)rStack_144.alloc" identifier = (cast_expression "(re_node_set *)rStack_144.alloc" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "rStack_144.alloc" identifier . field_identifier))) ;) (if_statement "if (((uint)pIVar15 & 0x80) != 0) {\n          prVar35 = (re_node_set *)&SUB_fffffffe;\n          rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffffe);\n        }" if (parenthesized_expression "(((uint)pIVar15 & 0x80) != 0)" ( (binary_expression "((uint)pIVar15 & 0x80) != 0" (parenthesized_expression "((uint)pIVar15 & 0x80)" ( (binary_expression "(uint)pIVar15 & 0x80" (cast_expression "(uint)pIVar15" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          prVar35 = (re_node_set *)&SUB_fffffffe;\n          rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffffe);\n        }" { (expression_statement "prVar35 = (re_node_set *)&SUB_fffffffe;" (assignment_expression "prVar35 = (re_node_set *)&SUB_fffffffe" identifier = (cast_expression "(re_node_set *)&SUB_fffffffe" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&SUB_fffffffe" & identifier))) ;) (expression_statement "rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffffe);" (assignment_expression "rStack_144.alloc = (Idx)(rStack_144.alloc & 0xfffffffe)" (field_expression "rStack_144.alloc" identifier . field_identifier) = (call_expression "(Idx)(rStack_144.alloc & 0xfffffffe)" (parenthesized_expression "(Idx)" ( identifier )) (argument_list "(rStack_144.alloc & 0xfffffffe)" ( (binary_expression "rStack_144.alloc & 0xfffffffe" (field_expression "rStack_144.alloc" identifier . field_identifier) & number_literal) )))) ;) })) (goto_statement "goto LAB_0001e060;" goto statement_identifier ;) })) (expression_statement "prVar35 = (re_node_set *)0xffffffff;" (assignment_expression "prVar35 = (re_node_set *)0xffffffff" identifier = (cast_expression "(re_node_set *)0xffffffff" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (bVar1 == 7) {\n        pIVar15 = prVar7[10].elems;\n        rStack_144.alloc = -1;\n        rStack_144.nelem = 0xffffffff;\n        rStack_144.elems = (Idx *)0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }" if (parenthesized_expression "(bVar1 == 7)" ( (binary_expression "bVar1 == 7" identifier == number_literal) )) (compound_statement "{\n        pIVar15 = prVar7[10].elems;\n        rStack_144.alloc = -1;\n        rStack_144.nelem = 0xffffffff;\n        rStack_144.elems = (Idx *)0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }" { (expression_statement "pIVar15 = prVar7[10].elems;" (assignment_expression "pIVar15 = prVar7[10].elems" identifier = (field_expression "prVar7[10].elems" (subscript_expression "prVar7[10]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "rStack_144.alloc = -1;" (assignment_expression "rStack_144.alloc = -1" (field_expression "rStack_144.alloc" identifier . field_identifier) = number_literal) ;) (expression_statement "rStack_144.nelem = 0xffffffff;" (assignment_expression "rStack_144.nelem = 0xffffffff" (field_expression "rStack_144.nelem" identifier . field_identifier) = number_literal) ;) (expression_statement "rStack_144.elems = (Idx *)0xffffffff;" (assignment_expression "rStack_144.elems = (Idx *)0xffffffff" (field_expression "rStack_144.elems" identifier . field_identifier) = (cast_expression "(Idx *)0xffffffff" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_138 = 0xffffffff;" (assignment_expression "uStack_138 = 0xffffffff" identifier = number_literal) ;) (goto_statement "goto joined_r0x0001e3b8;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_0001dcc8:\n    iStack_184 = iStack_184 + 1;" statement_identifier : (expression_statement "iStack_184 = iStack_184 + 1;" (assignment_expression "iStack_184 = iStack_184 + 1" identifier = (binary_expression "iStack_184 + 1" identifier + number_literal)) ;)) (if_statement "if ((int)pIVar24 <= iStack_184) goto code_r0x0001dcdc;" if (parenthesized_expression "((int)pIVar24 <= iStack_184)" ( (binary_expression "(int)pIVar24 <= iStack_184" (cast_expression "(int)pIVar24" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (goto_statement "goto code_r0x0001dcdc;" goto statement_identifier ;)) (goto_statement "goto LAB_0001dc74;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar52 + 0x1e790))(iVar29);" (call_expression "(**(code **)(pcVar52 + 0x1e790))(iVar29)" (parenthesized_expression "(**(code **)(pcVar52 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar52 + 0x1e790)" * (pointer_expression "*(code **)(pcVar52 + 0x1e790)" * (cast_expression "(code **)(pcVar52 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar52 + 0x1e790)" ( (binary_expression "pcVar52 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(iVar29)" ( identifier ))) ;) (goto_statement "goto LAB_0001e824;" goto statement_identifier ;) (labeled_statement "code_r0x0001dcdc:\n  if (0 < (int)prVar28) {\n    pbVar47 = (byte *)((int)&prVar28->alloc + 1);\n    uStack_14c = 0;\n    pbStack_150 = pbVar47;\n    iVar45 = (**(code **)(pcVar52 + 0x1e724))((int)pbVar47 * 4);\n    iStack_148 = iVar45;\n    if ((iVar45 == 0) || (iStack_154 = 0, 0x155551aa < (int)prVar28)) {\n      iStack_178 = (int)prVar28 << 1;\n    }\n    else {\n      iStack_178 = (int)prVar28 * 2;\n      pIVar24 = (Idx *)(**(code **)(pcVar52 + 0x1e724))((int)prVar28 * 0xc);\n      if (pIVar24 != (Idx *)0x0) {\n        iVar45 = (int)pbVar47 * 4 + -4;\n        pprVar39 = &prStack_104;\n        iVar38 = 0;\n        pIVar15 = pIVar24 + (int)&prVar28->alloc;\n        prStack_104 = (re_dfa_t *)0x0;\n        piVar43 = (int *)(iVar29 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar46 = *(int *)(pcVar52 + 0x1e658);\n        uStack_f8 = 0;\n        bVar2 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar53 = (code *)(*(int *)(pcVar52 + 0x1e658) + -0x42b4);\n        do {\n          iVar27 = *piVar43;\n          iVar48 = 0;\n          uStack_14c = 0;\n          if (0 < iVar27) {\n            do {\n              iVar10 = *(int *)(prVar7[1].alloc + *(int *)(piVar43[1] + iVar48 * 4) * 4);\n              if (iVar10 != -1) {\n                prVar35 = (re_node_set *)(prVar7[2].alloc + iVar10 * 0xc);\n                iStack_154 = (*(code *)(iVar46 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar27 = *piVar43;\n              }\n              iVar48 = iVar48 + 1;\n            } while (iVar48 < iVar27);\n          }\n          prVar35 = prVar7;\n          iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,0);\n          *(int *)((int)pIVar24 + iVar38) = iVar27;\n          if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar27 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n          }\n          else {\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,1);\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar27 != *(int *)((int)pIVar24 + iVar38)) && (1 < (int)prVar7[7].elems)) {\n              bVar2 = true;\n            }\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,2);\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n            if ((iVar27 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar27 = iVar38 * 8 + iVar29;\n          pprVar11 = pprVar39;\n          do {\n            pprVar12 = pprVar11 + 1;\n            puVar40 = (uint *)(iVar27 + 0xc00);\n            iVar27 = iVar27 + 4;\n            *pprVar11 = (re_dfa_t *)((uint)*pprVar11 | *puVar40);\n            pprVar11 = pprVar12;\n          } while (&prStack_e4 != pprVar12);\n          iVar38 = iVar38 + 4;\n          piVar43 = piVar43 + 3;\n        } while (iVar45 != iVar38);\n        if (bVar2) {\n          prVar35 = (re_node_set *)0x200;\n          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n          prVar18[4].alloc = (Idx)pIVar13;\n          if (pIVar13 == (Idx *)0x0) goto LAB_0001e660;\n          iVar45 = iVar29;\n          pIVar37 = pIVar13;\n          do {\n            prVar21 = *pprVar39;\n            if (prVar21 != (re_dfa_t *)0x0) {\n              prVar35 = (re_node_set *)0x1;\n              pIVar34 = pIVar37;\n              do {\n                if (((uint)prVar21 & 1) != 0) {\n                  iVar38 = 0;\n                  pIVar25 = pIVar15;\n                  pIVar31 = pIVar24;\n                  iVar46 = iVar45;\n                  if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                    do {\n                      puVar40 = (uint *)(iVar46 + 0xc20);\n                      iVar38 = iVar38 + 1;\n                      iVar46 = iVar46 + 0x20;\n                    } while (((uint)prVar35 & *puVar40) == 0);\n                    pIVar25 = pIVar15 + iVar38;\n                    pIVar31 = pIVar24 + iVar38;\n                  }\n                  *pIVar34 = *pIVar31;\n                  pIVar34[0x100] = *pIVar25;\n                }\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1);\n                prVar35 = (re_node_set *)((int)prVar35 << 1);\n                pIVar34 = pIVar34 + 1;\n              } while (prVar21 != (re_dfa_t *)0x0);\n            }\n            pIVar37 = pIVar37 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            iVar45 = iVar45 + 4;\n          } while (pIVar13 + 0x100 != pIVar37);\n        }\n        else {\n          prVar35 = (re_node_set *)0x100;\n          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n          prVar18[3].elems = pIVar13;\n          if (pIVar13 == (Idx *)0x0) {\nLAB_0001e660:\n            pcVar50 = *(code **)(pcVar52 + 0x1e790);\nLAB_0001e664:\n            (*pcVar50)(pIVar24);\n            iVar45 = iStack_148;\n            goto LAB_0001e674;\n          }\n          prVar7 = prVar7 + 8;\n          iVar46 = 0;\n          iVar45 = iVar29;\n          do {\n            prVar35 = (re_node_set *)0x1;\n            iVar38 = iVar46;\n            for (prVar21 = *pprVar39; prVar21 != (re_dfa_t *)0x0;\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1)) {\n              if (((uint)prVar21 & 1) != 0) {\n                iVar48 = 0;\n                iVar27 = iVar45;\n                if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                  do {\n                    puVar40 = (uint *)(iVar27 + 0xc20);\n                    iVar48 = iVar48 + 1;\n                    iVar27 = iVar27 + 0x20;\n                  } while (((uint)prVar35 & *puVar40) == 0);\n                  iVar48 = iVar48 * 4;\n                }\n                if (((uint)prVar35 & prVar7->alloc) == 0) {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar24 + iVar48);\n                }\n                else {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar15 + iVar48);\n                }\n              }\n              prVar35 = (re_node_set *)((int)prVar35 << 1);\n              iVar38 = iVar38 + 1;\n            }\n            iVar46 = iVar46 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            prVar7 = (re_node_set *)&prVar7->nelem;\n            iVar45 = iVar45 + 4;\n          } while (iVar46 != 0x100);\n        }\n        pcVar53 = *(code **)(pcVar52 + 0x1e790);\n        if ((int)prStack_104 << 0x15 < 0) {\n          prVar35 = (re_node_set *)0x0;\n          do {\n            if ((*puVar9 & 0x400) != 0) {\n              IVar22 = pIVar15[(int)(pbVar47 + (int)((int)&prVar35[-1].elems + 3))];\n              pIVar13[10] = IVar22;\n              if (bVar2) {\n                pIVar13[0x10a] = IVar22;\n              }\n              break;\n            }\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            puVar9 = puVar9 + 8;\n          } while (prVar35 != prVar28);\n          pcVar53 = *(code **)(pcVar52 + 0x1e790);\n        }\n        (*pcVar53)(pIVar24);\n        (**(code **)(pcVar52 + 0x1e790))(iStack_148);\n        iVar45 = iVar29;\n        do {\n          iVar46 = iVar45 + 0xc;\n          (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n          iVar45 = iVar46;\n        } while (iVar29 + (int)prVar28 * 0xc != iVar46);\n        (**(code **)(pcVar52 + 0x1e790))(iVar29);\n        rVar5 = _REG_NOMATCH;\n        goto LAB_0001e000;\n      }\n    }\nLAB_0001e674:\n    (**(code **)(pcVar52 + 0x1e790))(iVar45);\n    iVar45 = iVar29;\n    do {\n      iVar46 = iVar45 + 0xc;\n      (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n      iVar45 = iVar46;\n    } while (iVar46 != (int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29);\n    (**(code **)(pcVar52 + 0x1e790))(iVar29);\nLAB_0001dffc:\n    rVar5 = _REG_NOERROR;\n    goto LAB_0001e000;\n  }" statement_identifier : (if_statement "if (0 < (int)prVar28) {\n    pbVar47 = (byte *)((int)&prVar28->alloc + 1);\n    uStack_14c = 0;\n    pbStack_150 = pbVar47;\n    iVar45 = (**(code **)(pcVar52 + 0x1e724))((int)pbVar47 * 4);\n    iStack_148 = iVar45;\n    if ((iVar45 == 0) || (iStack_154 = 0, 0x155551aa < (int)prVar28)) {\n      iStack_178 = (int)prVar28 << 1;\n    }\n    else {\n      iStack_178 = (int)prVar28 * 2;\n      pIVar24 = (Idx *)(**(code **)(pcVar52 + 0x1e724))((int)prVar28 * 0xc);\n      if (pIVar24 != (Idx *)0x0) {\n        iVar45 = (int)pbVar47 * 4 + -4;\n        pprVar39 = &prStack_104;\n        iVar38 = 0;\n        pIVar15 = pIVar24 + (int)&prVar28->alloc;\n        prStack_104 = (re_dfa_t *)0x0;\n        piVar43 = (int *)(iVar29 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar46 = *(int *)(pcVar52 + 0x1e658);\n        uStack_f8 = 0;\n        bVar2 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar53 = (code *)(*(int *)(pcVar52 + 0x1e658) + -0x42b4);\n        do {\n          iVar27 = *piVar43;\n          iVar48 = 0;\n          uStack_14c = 0;\n          if (0 < iVar27) {\n            do {\n              iVar10 = *(int *)(prVar7[1].alloc + *(int *)(piVar43[1] + iVar48 * 4) * 4);\n              if (iVar10 != -1) {\n                prVar35 = (re_node_set *)(prVar7[2].alloc + iVar10 * 0xc);\n                iStack_154 = (*(code *)(iVar46 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar27 = *piVar43;\n              }\n              iVar48 = iVar48 + 1;\n            } while (iVar48 < iVar27);\n          }\n          prVar35 = prVar7;\n          iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,0);\n          *(int *)((int)pIVar24 + iVar38) = iVar27;\n          if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar27 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n          }\n          else {\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,1);\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar27 != *(int *)((int)pIVar24 + iVar38)) && (1 < (int)prVar7[7].elems)) {\n              bVar2 = true;\n            }\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,2);\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n            if ((iVar27 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar27 = iVar38 * 8 + iVar29;\n          pprVar11 = pprVar39;\n          do {\n            pprVar12 = pprVar11 + 1;\n            puVar40 = (uint *)(iVar27 + 0xc00);\n            iVar27 = iVar27 + 4;\n            *pprVar11 = (re_dfa_t *)((uint)*pprVar11 | *puVar40);\n            pprVar11 = pprVar12;\n          } while (&prStack_e4 != pprVar12);\n          iVar38 = iVar38 + 4;\n          piVar43 = piVar43 + 3;\n        } while (iVar45 != iVar38);\n        if (bVar2) {\n          prVar35 = (re_node_set *)0x200;\n          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n          prVar18[4].alloc = (Idx)pIVar13;\n          if (pIVar13 == (Idx *)0x0) goto LAB_0001e660;\n          iVar45 = iVar29;\n          pIVar37 = pIVar13;\n          do {\n            prVar21 = *pprVar39;\n            if (prVar21 != (re_dfa_t *)0x0) {\n              prVar35 = (re_node_set *)0x1;\n              pIVar34 = pIVar37;\n              do {\n                if (((uint)prVar21 & 1) != 0) {\n                  iVar38 = 0;\n                  pIVar25 = pIVar15;\n                  pIVar31 = pIVar24;\n                  iVar46 = iVar45;\n                  if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                    do {\n                      puVar40 = (uint *)(iVar46 + 0xc20);\n                      iVar38 = iVar38 + 1;\n                      iVar46 = iVar46 + 0x20;\n                    } while (((uint)prVar35 & *puVar40) == 0);\n                    pIVar25 = pIVar15 + iVar38;\n                    pIVar31 = pIVar24 + iVar38;\n                  }\n                  *pIVar34 = *pIVar31;\n                  pIVar34[0x100] = *pIVar25;\n                }\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1);\n                prVar35 = (re_node_set *)((int)prVar35 << 1);\n                pIVar34 = pIVar34 + 1;\n              } while (prVar21 != (re_dfa_t *)0x0);\n            }\n            pIVar37 = pIVar37 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            iVar45 = iVar45 + 4;\n          } while (pIVar13 + 0x100 != pIVar37);\n        }\n        else {\n          prVar35 = (re_node_set *)0x100;\n          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n          prVar18[3].elems = pIVar13;\n          if (pIVar13 == (Idx *)0x0) {\nLAB_0001e660:\n            pcVar50 = *(code **)(pcVar52 + 0x1e790);\nLAB_0001e664:\n            (*pcVar50)(pIVar24);\n            iVar45 = iStack_148;\n            goto LAB_0001e674;\n          }\n          prVar7 = prVar7 + 8;\n          iVar46 = 0;\n          iVar45 = iVar29;\n          do {\n            prVar35 = (re_node_set *)0x1;\n            iVar38 = iVar46;\n            for (prVar21 = *pprVar39; prVar21 != (re_dfa_t *)0x0;\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1)) {\n              if (((uint)prVar21 & 1) != 0) {\n                iVar48 = 0;\n                iVar27 = iVar45;\n                if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                  do {\n                    puVar40 = (uint *)(iVar27 + 0xc20);\n                    iVar48 = iVar48 + 1;\n                    iVar27 = iVar27 + 0x20;\n                  } while (((uint)prVar35 & *puVar40) == 0);\n                  iVar48 = iVar48 * 4;\n                }\n                if (((uint)prVar35 & prVar7->alloc) == 0) {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar24 + iVar48);\n                }\n                else {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar15 + iVar48);\n                }\n              }\n              prVar35 = (re_node_set *)((int)prVar35 << 1);\n              iVar38 = iVar38 + 1;\n            }\n            iVar46 = iVar46 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            prVar7 = (re_node_set *)&prVar7->nelem;\n            iVar45 = iVar45 + 4;\n          } while (iVar46 != 0x100);\n        }\n        pcVar53 = *(code **)(pcVar52 + 0x1e790);\n        if ((int)prStack_104 << 0x15 < 0) {\n          prVar35 = (re_node_set *)0x0;\n          do {\n            if ((*puVar9 & 0x400) != 0) {\n              IVar22 = pIVar15[(int)(pbVar47 + (int)((int)&prVar35[-1].elems + 3))];\n              pIVar13[10] = IVar22;\n              if (bVar2) {\n                pIVar13[0x10a] = IVar22;\n              }\n              break;\n            }\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            puVar9 = puVar9 + 8;\n          } while (prVar35 != prVar28);\n          pcVar53 = *(code **)(pcVar52 + 0x1e790);\n        }\n        (*pcVar53)(pIVar24);\n        (**(code **)(pcVar52 + 0x1e790))(iStack_148);\n        iVar45 = iVar29;\n        do {\n          iVar46 = iVar45 + 0xc;\n          (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n          iVar45 = iVar46;\n        } while (iVar29 + (int)prVar28 * 0xc != iVar46);\n        (**(code **)(pcVar52 + 0x1e790))(iVar29);\n        rVar5 = _REG_NOMATCH;\n        goto LAB_0001e000;\n      }\n    }\nLAB_0001e674:\n    (**(code **)(pcVar52 + 0x1e790))(iVar45);\n    iVar45 = iVar29;\n    do {\n      iVar46 = iVar45 + 0xc;\n      (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n      iVar45 = iVar46;\n    } while (iVar46 != (int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29);\n    (**(code **)(pcVar52 + 0x1e790))(iVar29);\nLAB_0001dffc:\n    rVar5 = _REG_NOERROR;\n    goto LAB_0001e000;\n  }" if (parenthesized_expression "(0 < (int)prVar28)" ( (binary_expression "0 < (int)prVar28" number_literal < (cast_expression "(int)prVar28" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    pbVar47 = (byte *)((int)&prVar28->alloc + 1);\n    uStack_14c = 0;\n    pbStack_150 = pbVar47;\n    iVar45 = (**(code **)(pcVar52 + 0x1e724))((int)pbVar47 * 4);\n    iStack_148 = iVar45;\n    if ((iVar45 == 0) || (iStack_154 = 0, 0x155551aa < (int)prVar28)) {\n      iStack_178 = (int)prVar28 << 1;\n    }\n    else {\n      iStack_178 = (int)prVar28 * 2;\n      pIVar24 = (Idx *)(**(code **)(pcVar52 + 0x1e724))((int)prVar28 * 0xc);\n      if (pIVar24 != (Idx *)0x0) {\n        iVar45 = (int)pbVar47 * 4 + -4;\n        pprVar39 = &prStack_104;\n        iVar38 = 0;\n        pIVar15 = pIVar24 + (int)&prVar28->alloc;\n        prStack_104 = (re_dfa_t *)0x0;\n        piVar43 = (int *)(iVar29 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar46 = *(int *)(pcVar52 + 0x1e658);\n        uStack_f8 = 0;\n        bVar2 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar53 = (code *)(*(int *)(pcVar52 + 0x1e658) + -0x42b4);\n        do {\n          iVar27 = *piVar43;\n          iVar48 = 0;\n          uStack_14c = 0;\n          if (0 < iVar27) {\n            do {\n              iVar10 = *(int *)(prVar7[1].alloc + *(int *)(piVar43[1] + iVar48 * 4) * 4);\n              if (iVar10 != -1) {\n                prVar35 = (re_node_set *)(prVar7[2].alloc + iVar10 * 0xc);\n                iStack_154 = (*(code *)(iVar46 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar27 = *piVar43;\n              }\n              iVar48 = iVar48 + 1;\n            } while (iVar48 < iVar27);\n          }\n          prVar35 = prVar7;\n          iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,0);\n          *(int *)((int)pIVar24 + iVar38) = iVar27;\n          if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar27 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n          }\n          else {\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,1);\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar27 != *(int *)((int)pIVar24 + iVar38)) && (1 < (int)prVar7[7].elems)) {\n              bVar2 = true;\n            }\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,2);\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n            if ((iVar27 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar27 = iVar38 * 8 + iVar29;\n          pprVar11 = pprVar39;\n          do {\n            pprVar12 = pprVar11 + 1;\n            puVar40 = (uint *)(iVar27 + 0xc00);\n            iVar27 = iVar27 + 4;\n            *pprVar11 = (re_dfa_t *)((uint)*pprVar11 | *puVar40);\n            pprVar11 = pprVar12;\n          } while (&prStack_e4 != pprVar12);\n          iVar38 = iVar38 + 4;\n          piVar43 = piVar43 + 3;\n        } while (iVar45 != iVar38);\n        if (bVar2) {\n          prVar35 = (re_node_set *)0x200;\n          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n          prVar18[4].alloc = (Idx)pIVar13;\n          if (pIVar13 == (Idx *)0x0) goto LAB_0001e660;\n          iVar45 = iVar29;\n          pIVar37 = pIVar13;\n          do {\n            prVar21 = *pprVar39;\n            if (prVar21 != (re_dfa_t *)0x0) {\n              prVar35 = (re_node_set *)0x1;\n              pIVar34 = pIVar37;\n              do {\n                if (((uint)prVar21 & 1) != 0) {\n                  iVar38 = 0;\n                  pIVar25 = pIVar15;\n                  pIVar31 = pIVar24;\n                  iVar46 = iVar45;\n                  if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                    do {\n                      puVar40 = (uint *)(iVar46 + 0xc20);\n                      iVar38 = iVar38 + 1;\n                      iVar46 = iVar46 + 0x20;\n                    } while (((uint)prVar35 & *puVar40) == 0);\n                    pIVar25 = pIVar15 + iVar38;\n                    pIVar31 = pIVar24 + iVar38;\n                  }\n                  *pIVar34 = *pIVar31;\n                  pIVar34[0x100] = *pIVar25;\n                }\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1);\n                prVar35 = (re_node_set *)((int)prVar35 << 1);\n                pIVar34 = pIVar34 + 1;\n              } while (prVar21 != (re_dfa_t *)0x0);\n            }\n            pIVar37 = pIVar37 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            iVar45 = iVar45 + 4;\n          } while (pIVar13 + 0x100 != pIVar37);\n        }\n        else {\n          prVar35 = (re_node_set *)0x100;\n          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n          prVar18[3].elems = pIVar13;\n          if (pIVar13 == (Idx *)0x0) {\nLAB_0001e660:\n            pcVar50 = *(code **)(pcVar52 + 0x1e790);\nLAB_0001e664:\n            (*pcVar50)(pIVar24);\n            iVar45 = iStack_148;\n            goto LAB_0001e674;\n          }\n          prVar7 = prVar7 + 8;\n          iVar46 = 0;\n          iVar45 = iVar29;\n          do {\n            prVar35 = (re_node_set *)0x1;\n            iVar38 = iVar46;\n            for (prVar21 = *pprVar39; prVar21 != (re_dfa_t *)0x0;\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1)) {\n              if (((uint)prVar21 & 1) != 0) {\n                iVar48 = 0;\n                iVar27 = iVar45;\n                if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                  do {\n                    puVar40 = (uint *)(iVar27 + 0xc20);\n                    iVar48 = iVar48 + 1;\n                    iVar27 = iVar27 + 0x20;\n                  } while (((uint)prVar35 & *puVar40) == 0);\n                  iVar48 = iVar48 * 4;\n                }\n                if (((uint)prVar35 & prVar7->alloc) == 0) {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar24 + iVar48);\n                }\n                else {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar15 + iVar48);\n                }\n              }\n              prVar35 = (re_node_set *)((int)prVar35 << 1);\n              iVar38 = iVar38 + 1;\n            }\n            iVar46 = iVar46 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            prVar7 = (re_node_set *)&prVar7->nelem;\n            iVar45 = iVar45 + 4;\n          } while (iVar46 != 0x100);\n        }\n        pcVar53 = *(code **)(pcVar52 + 0x1e790);\n        if ((int)prStack_104 << 0x15 < 0) {\n          prVar35 = (re_node_set *)0x0;\n          do {\n            if ((*puVar9 & 0x400) != 0) {\n              IVar22 = pIVar15[(int)(pbVar47 + (int)((int)&prVar35[-1].elems + 3))];\n              pIVar13[10] = IVar22;\n              if (bVar2) {\n                pIVar13[0x10a] = IVar22;\n              }\n              break;\n            }\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            puVar9 = puVar9 + 8;\n          } while (prVar35 != prVar28);\n          pcVar53 = *(code **)(pcVar52 + 0x1e790);\n        }\n        (*pcVar53)(pIVar24);\n        (**(code **)(pcVar52 + 0x1e790))(iStack_148);\n        iVar45 = iVar29;\n        do {\n          iVar46 = iVar45 + 0xc;\n          (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n          iVar45 = iVar46;\n        } while (iVar29 + (int)prVar28 * 0xc != iVar46);\n        (**(code **)(pcVar52 + 0x1e790))(iVar29);\n        rVar5 = _REG_NOMATCH;\n        goto LAB_0001e000;\n      }\n    }\nLAB_0001e674:\n    (**(code **)(pcVar52 + 0x1e790))(iVar45);\n    iVar45 = iVar29;\n    do {\n      iVar46 = iVar45 + 0xc;\n      (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n      iVar45 = iVar46;\n    } while (iVar46 != (int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29);\n    (**(code **)(pcVar52 + 0x1e790))(iVar29);\nLAB_0001dffc:\n    rVar5 = _REG_NOERROR;\n    goto LAB_0001e000;\n  }" { (expression_statement "pbVar47 = (byte *)((int)&prVar28->alloc + 1);" (assignment_expression "pbVar47 = (byte *)((int)&prVar28->alloc + 1)" identifier = (cast_expression "(byte *)((int)&prVar28->alloc + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar28->alloc + 1)" ( (binary_expression "(int)&prVar28->alloc + 1" (cast_expression "(int)&prVar28->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar28->alloc" & (field_expression "prVar28->alloc" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "uStack_14c = 0;" (assignment_expression "uStack_14c = 0" identifier = number_literal) ;) (expression_statement "pbStack_150 = pbVar47;" (assignment_expression "pbStack_150 = pbVar47" identifier = identifier) ;) (expression_statement "iVar45 = (**(code **)(pcVar52 + 0x1e724))((int)pbVar47 * 4);" (assignment_expression "iVar45 = (**(code **)(pcVar52 + 0x1e724))((int)pbVar47 * 4)" identifier = (call_expression "(**(code **)(pcVar52 + 0x1e724))((int)pbVar47 * 4)" (parenthesized_expression "(**(code **)(pcVar52 + 0x1e724))" ( (pointer_expression "**(code **)(pcVar52 + 0x1e724)" * (pointer_expression "*(code **)(pcVar52 + 0x1e724)" * (cast_expression "(code **)(pcVar52 + 0x1e724)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar52 + 0x1e724)" ( (binary_expression "pcVar52 + 0x1e724" identifier + number_literal) ))))) )) (argument_list "((int)pbVar47 * 4)" ( (binary_expression "(int)pbVar47 * 4" (cast_expression "(int)pbVar47" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "iStack_148 = iVar45;" (assignment_expression "iStack_148 = iVar45" identifier = identifier) ;) (if_statement "if ((iVar45 == 0) || (iStack_154 = 0, 0x155551aa < (int)prVar28)) {\n      iStack_178 = (int)prVar28 << 1;\n    }\n    else {\n      iStack_178 = (int)prVar28 * 2;\n      pIVar24 = (Idx *)(**(code **)(pcVar52 + 0x1e724))((int)prVar28 * 0xc);\n      if (pIVar24 != (Idx *)0x0) {\n        iVar45 = (int)pbVar47 * 4 + -4;\n        pprVar39 = &prStack_104;\n        iVar38 = 0;\n        pIVar15 = pIVar24 + (int)&prVar28->alloc;\n        prStack_104 = (re_dfa_t *)0x0;\n        piVar43 = (int *)(iVar29 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar46 = *(int *)(pcVar52 + 0x1e658);\n        uStack_f8 = 0;\n        bVar2 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar53 = (code *)(*(int *)(pcVar52 + 0x1e658) + -0x42b4);\n        do {\n          iVar27 = *piVar43;\n          iVar48 = 0;\n          uStack_14c = 0;\n          if (0 < iVar27) {\n            do {\n              iVar10 = *(int *)(prVar7[1].alloc + *(int *)(piVar43[1] + iVar48 * 4) * 4);\n              if (iVar10 != -1) {\n                prVar35 = (re_node_set *)(prVar7[2].alloc + iVar10 * 0xc);\n                iStack_154 = (*(code *)(iVar46 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar27 = *piVar43;\n              }\n              iVar48 = iVar48 + 1;\n            } while (iVar48 < iVar27);\n          }\n          prVar35 = prVar7;\n          iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,0);\n          *(int *)((int)pIVar24 + iVar38) = iVar27;\n          if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar27 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n          }\n          else {\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,1);\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar27 != *(int *)((int)pIVar24 + iVar38)) && (1 < (int)prVar7[7].elems)) {\n              bVar2 = true;\n            }\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,2);\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n            if ((iVar27 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar27 = iVar38 * 8 + iVar29;\n          pprVar11 = pprVar39;\n          do {\n            pprVar12 = pprVar11 + 1;\n            puVar40 = (uint *)(iVar27 + 0xc00);\n            iVar27 = iVar27 + 4;\n            *pprVar11 = (re_dfa_t *)((uint)*pprVar11 | *puVar40);\n            pprVar11 = pprVar12;\n          } while (&prStack_e4 != pprVar12);\n          iVar38 = iVar38 + 4;\n          piVar43 = piVar43 + 3;\n        } while (iVar45 != iVar38);\n        if (bVar2) {\n          prVar35 = (re_node_set *)0x200;\n          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n          prVar18[4].alloc = (Idx)pIVar13;\n          if (pIVar13 == (Idx *)0x0) goto LAB_0001e660;\n          iVar45 = iVar29;\n          pIVar37 = pIVar13;\n          do {\n            prVar21 = *pprVar39;\n            if (prVar21 != (re_dfa_t *)0x0) {\n              prVar35 = (re_node_set *)0x1;\n              pIVar34 = pIVar37;\n              do {\n                if (((uint)prVar21 & 1) != 0) {\n                  iVar38 = 0;\n                  pIVar25 = pIVar15;\n                  pIVar31 = pIVar24;\n                  iVar46 = iVar45;\n                  if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                    do {\n                      puVar40 = (uint *)(iVar46 + 0xc20);\n                      iVar38 = iVar38 + 1;\n                      iVar46 = iVar46 + 0x20;\n                    } while (((uint)prVar35 & *puVar40) == 0);\n                    pIVar25 = pIVar15 + iVar38;\n                    pIVar31 = pIVar24 + iVar38;\n                  }\n                  *pIVar34 = *pIVar31;\n                  pIVar34[0x100] = *pIVar25;\n                }\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1);\n                prVar35 = (re_node_set *)((int)prVar35 << 1);\n                pIVar34 = pIVar34 + 1;\n              } while (prVar21 != (re_dfa_t *)0x0);\n            }\n            pIVar37 = pIVar37 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            iVar45 = iVar45 + 4;\n          } while (pIVar13 + 0x100 != pIVar37);\n        }\n        else {\n          prVar35 = (re_node_set *)0x100;\n          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n          prVar18[3].elems = pIVar13;\n          if (pIVar13 == (Idx *)0x0) {\nLAB_0001e660:\n            pcVar50 = *(code **)(pcVar52 + 0x1e790);\nLAB_0001e664:\n            (*pcVar50)(pIVar24);\n            iVar45 = iStack_148;\n            goto LAB_0001e674;\n          }\n          prVar7 = prVar7 + 8;\n          iVar46 = 0;\n          iVar45 = iVar29;\n          do {\n            prVar35 = (re_node_set *)0x1;\n            iVar38 = iVar46;\n            for (prVar21 = *pprVar39; prVar21 != (re_dfa_t *)0x0;\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1)) {\n              if (((uint)prVar21 & 1) != 0) {\n                iVar48 = 0;\n                iVar27 = iVar45;\n                if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                  do {\n                    puVar40 = (uint *)(iVar27 + 0xc20);\n                    iVar48 = iVar48 + 1;\n                    iVar27 = iVar27 + 0x20;\n                  } while (((uint)prVar35 & *puVar40) == 0);\n                  iVar48 = iVar48 * 4;\n                }\n                if (((uint)prVar35 & prVar7->alloc) == 0) {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar24 + iVar48);\n                }\n                else {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar15 + iVar48);\n                }\n              }\n              prVar35 = (re_node_set *)((int)prVar35 << 1);\n              iVar38 = iVar38 + 1;\n            }\n            iVar46 = iVar46 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            prVar7 = (re_node_set *)&prVar7->nelem;\n            iVar45 = iVar45 + 4;\n          } while (iVar46 != 0x100);\n        }\n        pcVar53 = *(code **)(pcVar52 + 0x1e790);\n        if ((int)prStack_104 << 0x15 < 0) {\n          prVar35 = (re_node_set *)0x0;\n          do {\n            if ((*puVar9 & 0x400) != 0) {\n              IVar22 = pIVar15[(int)(pbVar47 + (int)((int)&prVar35[-1].elems + 3))];\n              pIVar13[10] = IVar22;\n              if (bVar2) {\n                pIVar13[0x10a] = IVar22;\n              }\n              break;\n            }\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            puVar9 = puVar9 + 8;\n          } while (prVar35 != prVar28);\n          pcVar53 = *(code **)(pcVar52 + 0x1e790);\n        }\n        (*pcVar53)(pIVar24);\n        (**(code **)(pcVar52 + 0x1e790))(iStack_148);\n        iVar45 = iVar29;\n        do {\n          iVar46 = iVar45 + 0xc;\n          (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n          iVar45 = iVar46;\n        } while (iVar29 + (int)prVar28 * 0xc != iVar46);\n        (**(code **)(pcVar52 + 0x1e790))(iVar29);\n        rVar5 = _REG_NOMATCH;\n        goto LAB_0001e000;\n      }\n    }" if (parenthesized_expression "((iVar45 == 0) || (iStack_154 = 0, 0x155551aa < (int)prVar28))" ( (binary_expression "(iVar45 == 0) || (iStack_154 = 0, 0x155551aa < (int)prVar28)" (parenthesized_expression "(iVar45 == 0)" ( (binary_expression "iVar45 == 0" identifier == number_literal) )) || (parenthesized_expression "(iStack_154 = 0, 0x155551aa < (int)prVar28)" ( (comma_expression "iStack_154 = 0, 0x155551aa < (int)prVar28" (assignment_expression "iStack_154 = 0" identifier = number_literal) , (binary_expression "0x155551aa < (int)prVar28" number_literal < (cast_expression "(int)prVar28" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n      iStack_178 = (int)prVar28 << 1;\n    }" { (expression_statement "iStack_178 = (int)prVar28 << 1;" (assignment_expression "iStack_178 = (int)prVar28 << 1" identifier = (binary_expression "(int)prVar28 << 1" (cast_expression "(int)prVar28" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) }) (else_clause "else {\n      iStack_178 = (int)prVar28 * 2;\n      pIVar24 = (Idx *)(**(code **)(pcVar52 + 0x1e724))((int)prVar28 * 0xc);\n      if (pIVar24 != (Idx *)0x0) {\n        iVar45 = (int)pbVar47 * 4 + -4;\n        pprVar39 = &prStack_104;\n        iVar38 = 0;\n        pIVar15 = pIVar24 + (int)&prVar28->alloc;\n        prStack_104 = (re_dfa_t *)0x0;\n        piVar43 = (int *)(iVar29 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar46 = *(int *)(pcVar52 + 0x1e658);\n        uStack_f8 = 0;\n        bVar2 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar53 = (code *)(*(int *)(pcVar52 + 0x1e658) + -0x42b4);\n        do {\n          iVar27 = *piVar43;\n          iVar48 = 0;\n          uStack_14c = 0;\n          if (0 < iVar27) {\n            do {\n              iVar10 = *(int *)(prVar7[1].alloc + *(int *)(piVar43[1] + iVar48 * 4) * 4);\n              if (iVar10 != -1) {\n                prVar35 = (re_node_set *)(prVar7[2].alloc + iVar10 * 0xc);\n                iStack_154 = (*(code *)(iVar46 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar27 = *piVar43;\n              }\n              iVar48 = iVar48 + 1;\n            } while (iVar48 < iVar27);\n          }\n          prVar35 = prVar7;\n          iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,0);\n          *(int *)((int)pIVar24 + iVar38) = iVar27;\n          if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar27 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n          }\n          else {\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,1);\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar27 != *(int *)((int)pIVar24 + iVar38)) && (1 < (int)prVar7[7].elems)) {\n              bVar2 = true;\n            }\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,2);\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n            if ((iVar27 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar27 = iVar38 * 8 + iVar29;\n          pprVar11 = pprVar39;\n          do {\n            pprVar12 = pprVar11 + 1;\n            puVar40 = (uint *)(iVar27 + 0xc00);\n            iVar27 = iVar27 + 4;\n            *pprVar11 = (re_dfa_t *)((uint)*pprVar11 | *puVar40);\n            pprVar11 = pprVar12;\n          } while (&prStack_e4 != pprVar12);\n          iVar38 = iVar38 + 4;\n          piVar43 = piVar43 + 3;\n        } while (iVar45 != iVar38);\n        if (bVar2) {\n          prVar35 = (re_node_set *)0x200;\n          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n          prVar18[4].alloc = (Idx)pIVar13;\n          if (pIVar13 == (Idx *)0x0) goto LAB_0001e660;\n          iVar45 = iVar29;\n          pIVar37 = pIVar13;\n          do {\n            prVar21 = *pprVar39;\n            if (prVar21 != (re_dfa_t *)0x0) {\n              prVar35 = (re_node_set *)0x1;\n              pIVar34 = pIVar37;\n              do {\n                if (((uint)prVar21 & 1) != 0) {\n                  iVar38 = 0;\n                  pIVar25 = pIVar15;\n                  pIVar31 = pIVar24;\n                  iVar46 = iVar45;\n                  if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                    do {\n                      puVar40 = (uint *)(iVar46 + 0xc20);\n                      iVar38 = iVar38 + 1;\n                      iVar46 = iVar46 + 0x20;\n                    } while (((uint)prVar35 & *puVar40) == 0);\n                    pIVar25 = pIVar15 + iVar38;\n                    pIVar31 = pIVar24 + iVar38;\n                  }\n                  *pIVar34 = *pIVar31;\n                  pIVar34[0x100] = *pIVar25;\n                }\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1);\n                prVar35 = (re_node_set *)((int)prVar35 << 1);\n                pIVar34 = pIVar34 + 1;\n              } while (prVar21 != (re_dfa_t *)0x0);\n            }\n            pIVar37 = pIVar37 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            iVar45 = iVar45 + 4;\n          } while (pIVar13 + 0x100 != pIVar37);\n        }\n        else {\n          prVar35 = (re_node_set *)0x100;\n          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n          prVar18[3].elems = pIVar13;\n          if (pIVar13 == (Idx *)0x0) {\nLAB_0001e660:\n            pcVar50 = *(code **)(pcVar52 + 0x1e790);\nLAB_0001e664:\n            (*pcVar50)(pIVar24);\n            iVar45 = iStack_148;\n            goto LAB_0001e674;\n          }\n          prVar7 = prVar7 + 8;\n          iVar46 = 0;\n          iVar45 = iVar29;\n          do {\n            prVar35 = (re_node_set *)0x1;\n            iVar38 = iVar46;\n            for (prVar21 = *pprVar39; prVar21 != (re_dfa_t *)0x0;\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1)) {\n              if (((uint)prVar21 & 1) != 0) {\n                iVar48 = 0;\n                iVar27 = iVar45;\n                if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                  do {\n                    puVar40 = (uint *)(iVar27 + 0xc20);\n                    iVar48 = iVar48 + 1;\n                    iVar27 = iVar27 + 0x20;\n                  } while (((uint)prVar35 & *puVar40) == 0);\n                  iVar48 = iVar48 * 4;\n                }\n                if (((uint)prVar35 & prVar7->alloc) == 0) {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar24 + iVar48);\n                }\n                else {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar15 + iVar48);\n                }\n              }\n              prVar35 = (re_node_set *)((int)prVar35 << 1);\n              iVar38 = iVar38 + 1;\n            }\n            iVar46 = iVar46 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            prVar7 = (re_node_set *)&prVar7->nelem;\n            iVar45 = iVar45 + 4;\n          } while (iVar46 != 0x100);\n        }\n        pcVar53 = *(code **)(pcVar52 + 0x1e790);\n        if ((int)prStack_104 << 0x15 < 0) {\n          prVar35 = (re_node_set *)0x0;\n          do {\n            if ((*puVar9 & 0x400) != 0) {\n              IVar22 = pIVar15[(int)(pbVar47 + (int)((int)&prVar35[-1].elems + 3))];\n              pIVar13[10] = IVar22;\n              if (bVar2) {\n                pIVar13[0x10a] = IVar22;\n              }\n              break;\n            }\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            puVar9 = puVar9 + 8;\n          } while (prVar35 != prVar28);\n          pcVar53 = *(code **)(pcVar52 + 0x1e790);\n        }\n        (*pcVar53)(pIVar24);\n        (**(code **)(pcVar52 + 0x1e790))(iStack_148);\n        iVar45 = iVar29;\n        do {\n          iVar46 = iVar45 + 0xc;\n          (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n          iVar45 = iVar46;\n        } while (iVar29 + (int)prVar28 * 0xc != iVar46);\n        (**(code **)(pcVar52 + 0x1e790))(iVar29);\n        rVar5 = _REG_NOMATCH;\n        goto LAB_0001e000;\n      }\n    }" else (compound_statement "{\n      iStack_178 = (int)prVar28 * 2;\n      pIVar24 = (Idx *)(**(code **)(pcVar52 + 0x1e724))((int)prVar28 * 0xc);\n      if (pIVar24 != (Idx *)0x0) {\n        iVar45 = (int)pbVar47 * 4 + -4;\n        pprVar39 = &prStack_104;\n        iVar38 = 0;\n        pIVar15 = pIVar24 + (int)&prVar28->alloc;\n        prStack_104 = (re_dfa_t *)0x0;\n        piVar43 = (int *)(iVar29 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar46 = *(int *)(pcVar52 + 0x1e658);\n        uStack_f8 = 0;\n        bVar2 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar53 = (code *)(*(int *)(pcVar52 + 0x1e658) + -0x42b4);\n        do {\n          iVar27 = *piVar43;\n          iVar48 = 0;\n          uStack_14c = 0;\n          if (0 < iVar27) {\n            do {\n              iVar10 = *(int *)(prVar7[1].alloc + *(int *)(piVar43[1] + iVar48 * 4) * 4);\n              if (iVar10 != -1) {\n                prVar35 = (re_node_set *)(prVar7[2].alloc + iVar10 * 0xc);\n                iStack_154 = (*(code *)(iVar46 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar27 = *piVar43;\n              }\n              iVar48 = iVar48 + 1;\n            } while (iVar48 < iVar27);\n          }\n          prVar35 = prVar7;\n          iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,0);\n          *(int *)((int)pIVar24 + iVar38) = iVar27;\n          if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar27 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n          }\n          else {\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,1);\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar27 != *(int *)((int)pIVar24 + iVar38)) && (1 < (int)prVar7[7].elems)) {\n              bVar2 = true;\n            }\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,2);\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n            if ((iVar27 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar27 = iVar38 * 8 + iVar29;\n          pprVar11 = pprVar39;\n          do {\n            pprVar12 = pprVar11 + 1;\n            puVar40 = (uint *)(iVar27 + 0xc00);\n            iVar27 = iVar27 + 4;\n            *pprVar11 = (re_dfa_t *)((uint)*pprVar11 | *puVar40);\n            pprVar11 = pprVar12;\n          } while (&prStack_e4 != pprVar12);\n          iVar38 = iVar38 + 4;\n          piVar43 = piVar43 + 3;\n        } while (iVar45 != iVar38);\n        if (bVar2) {\n          prVar35 = (re_node_set *)0x200;\n          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n          prVar18[4].alloc = (Idx)pIVar13;\n          if (pIVar13 == (Idx *)0x0) goto LAB_0001e660;\n          iVar45 = iVar29;\n          pIVar37 = pIVar13;\n          do {\n            prVar21 = *pprVar39;\n            if (prVar21 != (re_dfa_t *)0x0) {\n              prVar35 = (re_node_set *)0x1;\n              pIVar34 = pIVar37;\n              do {\n                if (((uint)prVar21 & 1) != 0) {\n                  iVar38 = 0;\n                  pIVar25 = pIVar15;\n                  pIVar31 = pIVar24;\n                  iVar46 = iVar45;\n                  if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                    do {\n                      puVar40 = (uint *)(iVar46 + 0xc20);\n                      iVar38 = iVar38 + 1;\n                      iVar46 = iVar46 + 0x20;\n                    } while (((uint)prVar35 & *puVar40) == 0);\n                    pIVar25 = pIVar15 + iVar38;\n                    pIVar31 = pIVar24 + iVar38;\n                  }\n                  *pIVar34 = *pIVar31;\n                  pIVar34[0x100] = *pIVar25;\n                }\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1);\n                prVar35 = (re_node_set *)((int)prVar35 << 1);\n                pIVar34 = pIVar34 + 1;\n              } while (prVar21 != (re_dfa_t *)0x0);\n            }\n            pIVar37 = pIVar37 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            iVar45 = iVar45 + 4;\n          } while (pIVar13 + 0x100 != pIVar37);\n        }\n        else {\n          prVar35 = (re_node_set *)0x100;\n          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n          prVar18[3].elems = pIVar13;\n          if (pIVar13 == (Idx *)0x0) {\nLAB_0001e660:\n            pcVar50 = *(code **)(pcVar52 + 0x1e790);\nLAB_0001e664:\n            (*pcVar50)(pIVar24);\n            iVar45 = iStack_148;\n            goto LAB_0001e674;\n          }\n          prVar7 = prVar7 + 8;\n          iVar46 = 0;\n          iVar45 = iVar29;\n          do {\n            prVar35 = (re_node_set *)0x1;\n            iVar38 = iVar46;\n            for (prVar21 = *pprVar39; prVar21 != (re_dfa_t *)0x0;\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1)) {\n              if (((uint)prVar21 & 1) != 0) {\n                iVar48 = 0;\n                iVar27 = iVar45;\n                if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                  do {\n                    puVar40 = (uint *)(iVar27 + 0xc20);\n                    iVar48 = iVar48 + 1;\n                    iVar27 = iVar27 + 0x20;\n                  } while (((uint)prVar35 & *puVar40) == 0);\n                  iVar48 = iVar48 * 4;\n                }\n                if (((uint)prVar35 & prVar7->alloc) == 0) {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar24 + iVar48);\n                }\n                else {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar15 + iVar48);\n                }\n              }\n              prVar35 = (re_node_set *)((int)prVar35 << 1);\n              iVar38 = iVar38 + 1;\n            }\n            iVar46 = iVar46 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            prVar7 = (re_node_set *)&prVar7->nelem;\n            iVar45 = iVar45 + 4;\n          } while (iVar46 != 0x100);\n        }\n        pcVar53 = *(code **)(pcVar52 + 0x1e790);\n        if ((int)prStack_104 << 0x15 < 0) {\n          prVar35 = (re_node_set *)0x0;\n          do {\n            if ((*puVar9 & 0x400) != 0) {\n              IVar22 = pIVar15[(int)(pbVar47 + (int)((int)&prVar35[-1].elems + 3))];\n              pIVar13[10] = IVar22;\n              if (bVar2) {\n                pIVar13[0x10a] = IVar22;\n              }\n              break;\n            }\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            puVar9 = puVar9 + 8;\n          } while (prVar35 != prVar28);\n          pcVar53 = *(code **)(pcVar52 + 0x1e790);\n        }\n        (*pcVar53)(pIVar24);\n        (**(code **)(pcVar52 + 0x1e790))(iStack_148);\n        iVar45 = iVar29;\n        do {\n          iVar46 = iVar45 + 0xc;\n          (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n          iVar45 = iVar46;\n        } while (iVar29 + (int)prVar28 * 0xc != iVar46);\n        (**(code **)(pcVar52 + 0x1e790))(iVar29);\n        rVar5 = _REG_NOMATCH;\n        goto LAB_0001e000;\n      }\n    }" { (expression_statement "iStack_178 = (int)prVar28 * 2;" (assignment_expression "iStack_178 = (int)prVar28 * 2" identifier = (binary_expression "(int)prVar28 * 2" (cast_expression "(int)prVar28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "pIVar24 = (Idx *)(**(code **)(pcVar52 + 0x1e724))((int)prVar28 * 0xc);" (assignment_expression "pIVar24 = (Idx *)(**(code **)(pcVar52 + 0x1e724))((int)prVar28 * 0xc)" identifier = (cast_expression "(Idx *)(**(code **)(pcVar52 + 0x1e724))((int)prVar28 * 0xc)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar52 + 0x1e724))((int)prVar28 * 0xc)" (parenthesized_expression "(**(code **)(pcVar52 + 0x1e724))" ( (pointer_expression "**(code **)(pcVar52 + 0x1e724)" * (pointer_expression "*(code **)(pcVar52 + 0x1e724)" * (cast_expression "(code **)(pcVar52 + 0x1e724)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar52 + 0x1e724)" ( (binary_expression "pcVar52 + 0x1e724" identifier + number_literal) ))))) )) (argument_list "((int)prVar28 * 0xc)" ( (binary_expression "(int)prVar28 * 0xc" (cast_expression "(int)prVar28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))))) ;) (if_statement "if (pIVar24 != (Idx *)0x0) {\n        iVar45 = (int)pbVar47 * 4 + -4;\n        pprVar39 = &prStack_104;\n        iVar38 = 0;\n        pIVar15 = pIVar24 + (int)&prVar28->alloc;\n        prStack_104 = (re_dfa_t *)0x0;\n        piVar43 = (int *)(iVar29 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar46 = *(int *)(pcVar52 + 0x1e658);\n        uStack_f8 = 0;\n        bVar2 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar53 = (code *)(*(int *)(pcVar52 + 0x1e658) + -0x42b4);\n        do {\n          iVar27 = *piVar43;\n          iVar48 = 0;\n          uStack_14c = 0;\n          if (0 < iVar27) {\n            do {\n              iVar10 = *(int *)(prVar7[1].alloc + *(int *)(piVar43[1] + iVar48 * 4) * 4);\n              if (iVar10 != -1) {\n                prVar35 = (re_node_set *)(prVar7[2].alloc + iVar10 * 0xc);\n                iStack_154 = (*(code *)(iVar46 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar27 = *piVar43;\n              }\n              iVar48 = iVar48 + 1;\n            } while (iVar48 < iVar27);\n          }\n          prVar35 = prVar7;\n          iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,0);\n          *(int *)((int)pIVar24 + iVar38) = iVar27;\n          if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar27 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n          }\n          else {\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,1);\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar27 != *(int *)((int)pIVar24 + iVar38)) && (1 < (int)prVar7[7].elems)) {\n              bVar2 = true;\n            }\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,2);\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n            if ((iVar27 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar27 = iVar38 * 8 + iVar29;\n          pprVar11 = pprVar39;\n          do {\n            pprVar12 = pprVar11 + 1;\n            puVar40 = (uint *)(iVar27 + 0xc00);\n            iVar27 = iVar27 + 4;\n            *pprVar11 = (re_dfa_t *)((uint)*pprVar11 | *puVar40);\n            pprVar11 = pprVar12;\n          } while (&prStack_e4 != pprVar12);\n          iVar38 = iVar38 + 4;\n          piVar43 = piVar43 + 3;\n        } while (iVar45 != iVar38);\n        if (bVar2) {\n          prVar35 = (re_node_set *)0x200;\n          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n          prVar18[4].alloc = (Idx)pIVar13;\n          if (pIVar13 == (Idx *)0x0) goto LAB_0001e660;\n          iVar45 = iVar29;\n          pIVar37 = pIVar13;\n          do {\n            prVar21 = *pprVar39;\n            if (prVar21 != (re_dfa_t *)0x0) {\n              prVar35 = (re_node_set *)0x1;\n              pIVar34 = pIVar37;\n              do {\n                if (((uint)prVar21 & 1) != 0) {\n                  iVar38 = 0;\n                  pIVar25 = pIVar15;\n                  pIVar31 = pIVar24;\n                  iVar46 = iVar45;\n                  if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                    do {\n                      puVar40 = (uint *)(iVar46 + 0xc20);\n                      iVar38 = iVar38 + 1;\n                      iVar46 = iVar46 + 0x20;\n                    } while (((uint)prVar35 & *puVar40) == 0);\n                    pIVar25 = pIVar15 + iVar38;\n                    pIVar31 = pIVar24 + iVar38;\n                  }\n                  *pIVar34 = *pIVar31;\n                  pIVar34[0x100] = *pIVar25;\n                }\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1);\n                prVar35 = (re_node_set *)((int)prVar35 << 1);\n                pIVar34 = pIVar34 + 1;\n              } while (prVar21 != (re_dfa_t *)0x0);\n            }\n            pIVar37 = pIVar37 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            iVar45 = iVar45 + 4;\n          } while (pIVar13 + 0x100 != pIVar37);\n        }\n        else {\n          prVar35 = (re_node_set *)0x100;\n          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n          prVar18[3].elems = pIVar13;\n          if (pIVar13 == (Idx *)0x0) {\nLAB_0001e660:\n            pcVar50 = *(code **)(pcVar52 + 0x1e790);\nLAB_0001e664:\n            (*pcVar50)(pIVar24);\n            iVar45 = iStack_148;\n            goto LAB_0001e674;\n          }\n          prVar7 = prVar7 + 8;\n          iVar46 = 0;\n          iVar45 = iVar29;\n          do {\n            prVar35 = (re_node_set *)0x1;\n            iVar38 = iVar46;\n            for (prVar21 = *pprVar39; prVar21 != (re_dfa_t *)0x0;\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1)) {\n              if (((uint)prVar21 & 1) != 0) {\n                iVar48 = 0;\n                iVar27 = iVar45;\n                if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                  do {\n                    puVar40 = (uint *)(iVar27 + 0xc20);\n                    iVar48 = iVar48 + 1;\n                    iVar27 = iVar27 + 0x20;\n                  } while (((uint)prVar35 & *puVar40) == 0);\n                  iVar48 = iVar48 * 4;\n                }\n                if (((uint)prVar35 & prVar7->alloc) == 0) {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar24 + iVar48);\n                }\n                else {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar15 + iVar48);\n                }\n              }\n              prVar35 = (re_node_set *)((int)prVar35 << 1);\n              iVar38 = iVar38 + 1;\n            }\n            iVar46 = iVar46 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            prVar7 = (re_node_set *)&prVar7->nelem;\n            iVar45 = iVar45 + 4;\n          } while (iVar46 != 0x100);\n        }\n        pcVar53 = *(code **)(pcVar52 + 0x1e790);\n        if ((int)prStack_104 << 0x15 < 0) {\n          prVar35 = (re_node_set *)0x0;\n          do {\n            if ((*puVar9 & 0x400) != 0) {\n              IVar22 = pIVar15[(int)(pbVar47 + (int)((int)&prVar35[-1].elems + 3))];\n              pIVar13[10] = IVar22;\n              if (bVar2) {\n                pIVar13[0x10a] = IVar22;\n              }\n              break;\n            }\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            puVar9 = puVar9 + 8;\n          } while (prVar35 != prVar28);\n          pcVar53 = *(code **)(pcVar52 + 0x1e790);\n        }\n        (*pcVar53)(pIVar24);\n        (**(code **)(pcVar52 + 0x1e790))(iStack_148);\n        iVar45 = iVar29;\n        do {\n          iVar46 = iVar45 + 0xc;\n          (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n          iVar45 = iVar46;\n        } while (iVar29 + (int)prVar28 * 0xc != iVar46);\n        (**(code **)(pcVar52 + 0x1e790))(iVar29);\n        rVar5 = _REG_NOMATCH;\n        goto LAB_0001e000;\n      }" if (parenthesized_expression "(pIVar24 != (Idx *)0x0)" ( (binary_expression "pIVar24 != (Idx *)0x0" identifier != (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar45 = (int)pbVar47 * 4 + -4;\n        pprVar39 = &prStack_104;\n        iVar38 = 0;\n        pIVar15 = pIVar24 + (int)&prVar28->alloc;\n        prStack_104 = (re_dfa_t *)0x0;\n        piVar43 = (int *)(iVar29 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar46 = *(int *)(pcVar52 + 0x1e658);\n        uStack_f8 = 0;\n        bVar2 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar53 = (code *)(*(int *)(pcVar52 + 0x1e658) + -0x42b4);\n        do {\n          iVar27 = *piVar43;\n          iVar48 = 0;\n          uStack_14c = 0;\n          if (0 < iVar27) {\n            do {\n              iVar10 = *(int *)(prVar7[1].alloc + *(int *)(piVar43[1] + iVar48 * 4) * 4);\n              if (iVar10 != -1) {\n                prVar35 = (re_node_set *)(prVar7[2].alloc + iVar10 * 0xc);\n                iStack_154 = (*(code *)(iVar46 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar27 = *piVar43;\n              }\n              iVar48 = iVar48 + 1;\n            } while (iVar48 < iVar27);\n          }\n          prVar35 = prVar7;\n          iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,0);\n          *(int *)((int)pIVar24 + iVar38) = iVar27;\n          if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar27 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n          }\n          else {\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,1);\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar27 != *(int *)((int)pIVar24 + iVar38)) && (1 < (int)prVar7[7].elems)) {\n              bVar2 = true;\n            }\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,2);\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n            if ((iVar27 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar27 = iVar38 * 8 + iVar29;\n          pprVar11 = pprVar39;\n          do {\n            pprVar12 = pprVar11 + 1;\n            puVar40 = (uint *)(iVar27 + 0xc00);\n            iVar27 = iVar27 + 4;\n            *pprVar11 = (re_dfa_t *)((uint)*pprVar11 | *puVar40);\n            pprVar11 = pprVar12;\n          } while (&prStack_e4 != pprVar12);\n          iVar38 = iVar38 + 4;\n          piVar43 = piVar43 + 3;\n        } while (iVar45 != iVar38);\n        if (bVar2) {\n          prVar35 = (re_node_set *)0x200;\n          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n          prVar18[4].alloc = (Idx)pIVar13;\n          if (pIVar13 == (Idx *)0x0) goto LAB_0001e660;\n          iVar45 = iVar29;\n          pIVar37 = pIVar13;\n          do {\n            prVar21 = *pprVar39;\n            if (prVar21 != (re_dfa_t *)0x0) {\n              prVar35 = (re_node_set *)0x1;\n              pIVar34 = pIVar37;\n              do {\n                if (((uint)prVar21 & 1) != 0) {\n                  iVar38 = 0;\n                  pIVar25 = pIVar15;\n                  pIVar31 = pIVar24;\n                  iVar46 = iVar45;\n                  if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                    do {\n                      puVar40 = (uint *)(iVar46 + 0xc20);\n                      iVar38 = iVar38 + 1;\n                      iVar46 = iVar46 + 0x20;\n                    } while (((uint)prVar35 & *puVar40) == 0);\n                    pIVar25 = pIVar15 + iVar38;\n                    pIVar31 = pIVar24 + iVar38;\n                  }\n                  *pIVar34 = *pIVar31;\n                  pIVar34[0x100] = *pIVar25;\n                }\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1);\n                prVar35 = (re_node_set *)((int)prVar35 << 1);\n                pIVar34 = pIVar34 + 1;\n              } while (prVar21 != (re_dfa_t *)0x0);\n            }\n            pIVar37 = pIVar37 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            iVar45 = iVar45 + 4;\n          } while (pIVar13 + 0x100 != pIVar37);\n        }\n        else {\n          prVar35 = (re_node_set *)0x100;\n          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n          prVar18[3].elems = pIVar13;\n          if (pIVar13 == (Idx *)0x0) {\nLAB_0001e660:\n            pcVar50 = *(code **)(pcVar52 + 0x1e790);\nLAB_0001e664:\n            (*pcVar50)(pIVar24);\n            iVar45 = iStack_148;\n            goto LAB_0001e674;\n          }\n          prVar7 = prVar7 + 8;\n          iVar46 = 0;\n          iVar45 = iVar29;\n          do {\n            prVar35 = (re_node_set *)0x1;\n            iVar38 = iVar46;\n            for (prVar21 = *pprVar39; prVar21 != (re_dfa_t *)0x0;\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1)) {\n              if (((uint)prVar21 & 1) != 0) {\n                iVar48 = 0;\n                iVar27 = iVar45;\n                if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                  do {\n                    puVar40 = (uint *)(iVar27 + 0xc20);\n                    iVar48 = iVar48 + 1;\n                    iVar27 = iVar27 + 0x20;\n                  } while (((uint)prVar35 & *puVar40) == 0);\n                  iVar48 = iVar48 * 4;\n                }\n                if (((uint)prVar35 & prVar7->alloc) == 0) {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar24 + iVar48);\n                }\n                else {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar15 + iVar48);\n                }\n              }\n              prVar35 = (re_node_set *)((int)prVar35 << 1);\n              iVar38 = iVar38 + 1;\n            }\n            iVar46 = iVar46 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            prVar7 = (re_node_set *)&prVar7->nelem;\n            iVar45 = iVar45 + 4;\n          } while (iVar46 != 0x100);\n        }\n        pcVar53 = *(code **)(pcVar52 + 0x1e790);\n        if ((int)prStack_104 << 0x15 < 0) {\n          prVar35 = (re_node_set *)0x0;\n          do {\n            if ((*puVar9 & 0x400) != 0) {\n              IVar22 = pIVar15[(int)(pbVar47 + (int)((int)&prVar35[-1].elems + 3))];\n              pIVar13[10] = IVar22;\n              if (bVar2) {\n                pIVar13[0x10a] = IVar22;\n              }\n              break;\n            }\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            puVar9 = puVar9 + 8;\n          } while (prVar35 != prVar28);\n          pcVar53 = *(code **)(pcVar52 + 0x1e790);\n        }\n        (*pcVar53)(pIVar24);\n        (**(code **)(pcVar52 + 0x1e790))(iStack_148);\n        iVar45 = iVar29;\n        do {\n          iVar46 = iVar45 + 0xc;\n          (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n          iVar45 = iVar46;\n        } while (iVar29 + (int)prVar28 * 0xc != iVar46);\n        (**(code **)(pcVar52 + 0x1e790))(iVar29);\n        rVar5 = _REG_NOMATCH;\n        goto LAB_0001e000;\n      }" { (expression_statement "iVar45 = (int)pbVar47 * 4 + -4;" (assignment_expression "iVar45 = (int)pbVar47 * 4 + -4" identifier = (binary_expression "(int)pbVar47 * 4 + -4" (binary_expression "(int)pbVar47 * 4" (cast_expression "(int)pbVar47" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal)) ;) (expression_statement "pprVar39 = &prStack_104;" (assignment_expression "pprVar39 = &prStack_104" identifier = (pointer_expression "&prStack_104" & identifier)) ;) (expression_statement "iVar38 = 0;" (assignment_expression "iVar38 = 0" identifier = number_literal) ;) (expression_statement "pIVar15 = pIVar24 + (int)&prVar28->alloc;" (assignment_expression "pIVar15 = pIVar24 + (int)&prVar28->alloc" identifier = (binary_expression "pIVar24 + (int)&prVar28->alloc" identifier + (cast_expression "(int)&prVar28->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar28->alloc" & (field_expression "prVar28->alloc" identifier -> field_identifier))))) ;) (expression_statement "prStack_104 = (re_dfa_t *)0x0;" (assignment_expression "prStack_104 = (re_dfa_t *)0x0" identifier = (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar43 = (int *)(iVar29 + 4);" (assignment_expression "piVar43 = (int *)(iVar29 + 4)" identifier = (cast_expression "(int *)(iVar29 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 4)" ( (binary_expression "iVar29 + 4" identifier + number_literal) )))) ;) (expression_statement "uStack_100 = 0;" (assignment_expression "uStack_100 = 0" identifier = number_literal) ;) (expression_statement "uStack_fc = 0;" (assignment_expression "uStack_fc = 0" identifier = number_literal) ;) (expression_statement "iVar46 = *(int *)(pcVar52 + 0x1e658);" (assignment_expression "iVar46 = *(int *)(pcVar52 + 0x1e658)" identifier = (pointer_expression "*(int *)(pcVar52 + 0x1e658)" * (cast_expression "(int *)(pcVar52 + 0x1e658)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar52 + 0x1e658)" ( (binary_expression "pcVar52 + 0x1e658" identifier + number_literal) ))))) ;) (expression_statement "uStack_f8 = 0;" (assignment_expression "uStack_f8 = 0" identifier = number_literal) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "uStack_f4 = 0;" (assignment_expression "uStack_f4 = 0" identifier = number_literal) ;) (expression_statement "uStack_f0 = 0;" (assignment_expression "uStack_f0 = 0" identifier = number_literal) ;) (expression_statement "uStack_ec = 0;" (assignment_expression "uStack_ec = 0" identifier = number_literal) ;) (expression_statement "uStack_e8 = 0;" (assignment_expression "uStack_e8 = 0" identifier = number_literal) ;) (expression_statement "pcVar53 = (code *)(*(int *)(pcVar52 + 0x1e658) + -0x42b4);" (assignment_expression "pcVar53 = (code *)(*(int *)(pcVar52 + 0x1e658) + -0x42b4)" identifier = (cast_expression "(code *)(*(int *)(pcVar52 + 0x1e658) + -0x42b4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar52 + 0x1e658) + -0x42b4)" ( (binary_expression "*(int *)(pcVar52 + 0x1e658) + -0x42b4" (pointer_expression "*(int *)(pcVar52 + 0x1e658)" * (cast_expression "(int *)(pcVar52 + 0x1e658)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar52 + 0x1e658)" ( (binary_expression "pcVar52 + 0x1e658" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n          iVar27 = *piVar43;\n          iVar48 = 0;\n          uStack_14c = 0;\n          if (0 < iVar27) {\n            do {\n              iVar10 = *(int *)(prVar7[1].alloc + *(int *)(piVar43[1] + iVar48 * 4) * 4);\n              if (iVar10 != -1) {\n                prVar35 = (re_node_set *)(prVar7[2].alloc + iVar10 * 0xc);\n                iStack_154 = (*(code *)(iVar46 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar27 = *piVar43;\n              }\n              iVar48 = iVar48 + 1;\n            } while (iVar48 < iVar27);\n          }\n          prVar35 = prVar7;\n          iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,0);\n          *(int *)((int)pIVar24 + iVar38) = iVar27;\n          if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar27 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n          }\n          else {\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,1);\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar27 != *(int *)((int)pIVar24 + iVar38)) && (1 < (int)prVar7[7].elems)) {\n              bVar2 = true;\n            }\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,2);\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n            if ((iVar27 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar27 = iVar38 * 8 + iVar29;\n          pprVar11 = pprVar39;\n          do {\n            pprVar12 = pprVar11 + 1;\n            puVar40 = (uint *)(iVar27 + 0xc00);\n            iVar27 = iVar27 + 4;\n            *pprVar11 = (re_dfa_t *)((uint)*pprVar11 | *puVar40);\n            pprVar11 = pprVar12;\n          } while (&prStack_e4 != pprVar12);\n          iVar38 = iVar38 + 4;\n          piVar43 = piVar43 + 3;\n        } while (iVar45 != iVar38);" do (compound_statement "{\n          iVar27 = *piVar43;\n          iVar48 = 0;\n          uStack_14c = 0;\n          if (0 < iVar27) {\n            do {\n              iVar10 = *(int *)(prVar7[1].alloc + *(int *)(piVar43[1] + iVar48 * 4) * 4);\n              if (iVar10 != -1) {\n                prVar35 = (re_node_set *)(prVar7[2].alloc + iVar10 * 0xc);\n                iStack_154 = (*(code *)(iVar46 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar27 = *piVar43;\n              }\n              iVar48 = iVar48 + 1;\n            } while (iVar48 < iVar27);\n          }\n          prVar35 = prVar7;\n          iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,0);\n          *(int *)((int)pIVar24 + iVar38) = iVar27;\n          if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar27 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n          }\n          else {\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,1);\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar27 != *(int *)((int)pIVar24 + iVar38)) && (1 < (int)prVar7[7].elems)) {\n              bVar2 = true;\n            }\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,2);\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n            if ((iVar27 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar27 = iVar38 * 8 + iVar29;\n          pprVar11 = pprVar39;\n          do {\n            pprVar12 = pprVar11 + 1;\n            puVar40 = (uint *)(iVar27 + 0xc00);\n            iVar27 = iVar27 + 4;\n            *pprVar11 = (re_dfa_t *)((uint)*pprVar11 | *puVar40);\n            pprVar11 = pprVar12;\n          } while (&prStack_e4 != pprVar12);\n          iVar38 = iVar38 + 4;\n          piVar43 = piVar43 + 3;\n        }" { (expression_statement "iVar27 = *piVar43;" (assignment_expression "iVar27 = *piVar43" identifier = (pointer_expression "*piVar43" * identifier)) ;) (expression_statement "iVar48 = 0;" (assignment_expression "iVar48 = 0" identifier = number_literal) ;) (expression_statement "uStack_14c = 0;" (assignment_expression "uStack_14c = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar27) {\n            do {\n              iVar10 = *(int *)(prVar7[1].alloc + *(int *)(piVar43[1] + iVar48 * 4) * 4);\n              if (iVar10 != -1) {\n                prVar35 = (re_node_set *)(prVar7[2].alloc + iVar10 * 0xc);\n                iStack_154 = (*(code *)(iVar46 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar27 = *piVar43;\n              }\n              iVar48 = iVar48 + 1;\n            } while (iVar48 < iVar27);\n          }" if (parenthesized_expression "(0 < iVar27)" ( (binary_expression "0 < iVar27" number_literal < identifier) )) (compound_statement "{\n            do {\n              iVar10 = *(int *)(prVar7[1].alloc + *(int *)(piVar43[1] + iVar48 * 4) * 4);\n              if (iVar10 != -1) {\n                prVar35 = (re_node_set *)(prVar7[2].alloc + iVar10 * 0xc);\n                iStack_154 = (*(code *)(iVar46 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar27 = *piVar43;\n              }\n              iVar48 = iVar48 + 1;\n            } while (iVar48 < iVar27);\n          }" { (do_statement "do {\n              iVar10 = *(int *)(prVar7[1].alloc + *(int *)(piVar43[1] + iVar48 * 4) * 4);\n              if (iVar10 != -1) {\n                prVar35 = (re_node_set *)(prVar7[2].alloc + iVar10 * 0xc);\n                iStack_154 = (*(code *)(iVar46 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar27 = *piVar43;\n              }\n              iVar48 = iVar48 + 1;\n            } while (iVar48 < iVar27);" do (compound_statement "{\n              iVar10 = *(int *)(prVar7[1].alloc + *(int *)(piVar43[1] + iVar48 * 4) * 4);\n              if (iVar10 != -1) {\n                prVar35 = (re_node_set *)(prVar7[2].alloc + iVar10 * 0xc);\n                iStack_154 = (*(code *)(iVar46 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar27 = *piVar43;\n              }\n              iVar48 = iVar48 + 1;\n            }" { (expression_statement "iVar10 = *(int *)(prVar7[1].alloc + *(int *)(piVar43[1] + iVar48 * 4) * 4);" (assignment_expression "iVar10 = *(int *)(prVar7[1].alloc + *(int *)(piVar43[1] + iVar48 * 4) * 4)" identifier = (pointer_expression "*(int *)(prVar7[1].alloc + *(int *)(piVar43[1] + iVar48 * 4) * 4)" * (cast_expression "(int *)(prVar7[1].alloc + *(int *)(piVar43[1] + iVar48 * 4) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prVar7[1].alloc + *(int *)(piVar43[1] + iVar48 * 4) * 4)" ( (binary_expression "prVar7[1].alloc + *(int *)(piVar43[1] + iVar48 * 4) * 4" (field_expression "prVar7[1].alloc" (subscript_expression "prVar7[1]" identifier [ number_literal ]) . field_identifier) + (binary_expression "*(int *)(piVar43[1] + iVar48 * 4) * 4" (pointer_expression "*(int *)(piVar43[1] + iVar48 * 4)" * (cast_expression "(int *)(piVar43[1] + iVar48 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar43[1] + iVar48 * 4)" ( (binary_expression "piVar43[1] + iVar48 * 4" (subscript_expression "piVar43[1]" identifier [ number_literal ]) + (binary_expression "iVar48 * 4" identifier * number_literal)) )))) * number_literal)) ))))) ;) (if_statement "if (iVar10 != -1) {\n                prVar35 = (re_node_set *)(prVar7[2].alloc + iVar10 * 0xc);\n                iStack_154 = (*(code *)(iVar46 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar27 = *piVar43;\n              }" if (parenthesized_expression "(iVar10 != -1)" ( (binary_expression "iVar10 != -1" identifier != number_literal) )) (compound_statement "{\n                prVar35 = (re_node_set *)(prVar7[2].alloc + iVar10 * 0xc);\n                iStack_154 = (*(code *)(iVar46 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar27 = *piVar43;\n              }" { (expression_statement "prVar35 = (re_node_set *)(prVar7[2].alloc + iVar10 * 0xc);" (assignment_expression "prVar35 = (re_node_set *)(prVar7[2].alloc + iVar10 * 0xc)" identifier = (cast_expression "(re_node_set *)(prVar7[2].alloc + iVar10 * 0xc)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prVar7[2].alloc + iVar10 * 0xc)" ( (binary_expression "prVar7[2].alloc + iVar10 * 0xc" (field_expression "prVar7[2].alloc" (subscript_expression "prVar7[2]" identifier [ number_literal ]) . field_identifier) + (binary_expression "iVar10 * 0xc" identifier * number_literal)) )))) ;) (expression_statement "iStack_154 = (*(code *)(iVar46 + -0x55b4))(&pbStack_150);" (assignment_expression "iStack_154 = (*(code *)(iVar46 + -0x55b4))(&pbStack_150)" identifier = (call_expression "(*(code *)(iVar46 + -0x55b4))(&pbStack_150)" (parenthesized_expression "(*(code *)(iVar46 + -0x55b4))" ( (pointer_expression "*(code *)(iVar46 + -0x55b4)" * (cast_expression "(code *)(iVar46 + -0x55b4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + -0x55b4)" ( (binary_expression "iVar46 + -0x55b4" identifier + number_literal) )))) )) (argument_list "(&pbStack_150)" ( (pointer_expression "&pbStack_150" & identifier) )))) ;) (if_statement "if (iStack_154 != 0) goto LAB_0001e660;" if (parenthesized_expression "(iStack_154 != 0)" ( (binary_expression "iStack_154 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001e660;" goto statement_identifier ;)) (expression_statement "iVar27 = *piVar43;" (assignment_expression "iVar27 = *piVar43" identifier = (pointer_expression "*piVar43" * identifier)) ;) })) (expression_statement "iVar48 = iVar48 + 1;" (assignment_expression "iVar48 = iVar48 + 1" identifier = (binary_expression "iVar48 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar48 < iVar27)" ( (binary_expression "iVar48 < iVar27" identifier < identifier) )) ;) })) (expression_statement "prVar35 = prVar7;" (assignment_expression "prVar35 = prVar7" identifier = identifier) ;) (expression_statement "iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,0);" (assignment_expression "iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,0)" identifier = (call_expression "(*pcVar53)(&iStack_154,prVar7,&pbStack_150,0)" (parenthesized_expression "(*pcVar53)" ( (pointer_expression "*pcVar53" * identifier) )) (argument_list "(&iStack_154,prVar7,&pbStack_150,0)" ( (pointer_expression "&iStack_154" & identifier) , identifier , (pointer_expression "&pbStack_150" & identifier) , number_literal )))) ;) (expression_statement "*(int *)((int)pIVar24 + iVar38) = iVar27;" (assignment_expression "*(int *)((int)pIVar24 + iVar38) = iVar27" (pointer_expression "*(int *)((int)pIVar24 + iVar38)" * (cast_expression "(int *)((int)pIVar24 + iVar38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pIVar24 + iVar38)" ( (binary_expression "(int)pIVar24 + iVar38" (cast_expression "(int)pIVar24" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (if_statement "if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;" if (parenthesized_expression "((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))" ( (binary_expression "(iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0)" (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) && (parenthesized_expression "(pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0)" ( (comma_expression "pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0" (assignment_expression "pcVar50 = *(code **)(pcVar52 + 0x1e790)" identifier = (pointer_expression "*(code **)(pcVar52 + 0x1e790)" * (cast_expression "(code **)(pcVar52 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar52 + 0x1e790)" ( (binary_expression "pcVar52 + 0x1e790" identifier + number_literal) ))))) , (binary_expression "iStack_154 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0001e664;" goto statement_identifier ;)) (if_statement "if ((*(byte *)(iVar27 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n          }\n          else {\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,1);\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar27 != *(int *)((int)pIVar24 + iVar38)) && (1 < (int)prVar7[7].elems)) {\n              bVar2 = true;\n            }\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,2);\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n            if ((iVar27 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }" if (parenthesized_expression "((*(byte *)(iVar27 + 0x34) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar27 + 0x34) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar27 + 0x34) & 1)" ( (binary_expression "*(byte *)(iVar27 + 0x34) & 1" (pointer_expression "*(byte *)(iVar27 + 0x34)" * (cast_expression "(byte *)(iVar27 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x34)" ( (binary_expression "iVar27 + 0x34" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n          }" { (expression_statement "*(int *)((int)pIVar15 + iVar38) = iVar27;" (assignment_expression "*(int *)((int)pIVar15 + iVar38) = iVar27" (pointer_expression "*(int *)((int)pIVar15 + iVar38)" * (cast_expression "(int *)((int)pIVar15 + iVar38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pIVar15 + iVar38)" ( (binary_expression "(int)pIVar15 + iVar38" (cast_expression "(int)pIVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "*(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;" (assignment_expression "*(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27" (pointer_expression "*(int *)((int)pIVar15 + iVar38 + iVar45)" * (cast_expression "(int *)((int)pIVar15 + iVar38 + iVar45)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pIVar15 + iVar38 + iVar45)" ( (binary_expression "(int)pIVar15 + iVar38 + iVar45" (binary_expression "(int)pIVar15 + iVar38" (cast_expression "(int)pIVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) )))) = identifier) ;) }) (else_clause "else {\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,1);\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar27 != *(int *)((int)pIVar24 + iVar38)) && (1 < (int)prVar7[7].elems)) {\n              bVar2 = true;\n            }\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,2);\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n            if ((iVar27 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }" else (compound_statement "{\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,1);\n            *(int *)((int)pIVar15 + iVar38) = iVar27;\n            if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar27 != *(int *)((int)pIVar24 + iVar38)) && (1 < (int)prVar7[7].elems)) {\n              bVar2 = true;\n            }\n            prVar35 = prVar7;\n            iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,2);\n            *(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;\n            if ((iVar27 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }" { (expression_statement "prVar35 = prVar7;" (assignment_expression "prVar35 = prVar7" identifier = identifier) ;) (expression_statement "iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,1);" (assignment_expression "iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,1)" identifier = (call_expression "(*pcVar53)(&iStack_154,prVar7,&pbStack_150,1)" (parenthesized_expression "(*pcVar53)" ( (pointer_expression "*pcVar53" * identifier) )) (argument_list "(&iStack_154,prVar7,&pbStack_150,1)" ( (pointer_expression "&iStack_154" & identifier) , identifier , (pointer_expression "&pbStack_150" & identifier) , number_literal )))) ;) (expression_statement "*(int *)((int)pIVar15 + iVar38) = iVar27;" (assignment_expression "*(int *)((int)pIVar15 + iVar38) = iVar27" (pointer_expression "*(int *)((int)pIVar15 + iVar38)" * (cast_expression "(int *)((int)pIVar15 + iVar38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pIVar15 + iVar38)" ( (binary_expression "(int)pIVar15 + iVar38" (cast_expression "(int)pIVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (if_statement "if ((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;" if (parenthesized_expression "((iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0))" ( (binary_expression "(iVar27 == 0) && (pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0)" (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) && (parenthesized_expression "(pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0)" ( (comma_expression "pcVar50 = *(code **)(pcVar52 + 0x1e790), iStack_154 != 0" (assignment_expression "pcVar50 = *(code **)(pcVar52 + 0x1e790)" identifier = (pointer_expression "*(code **)(pcVar52 + 0x1e790)" * (cast_expression "(code **)(pcVar52 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar52 + 0x1e790)" ( (binary_expression "pcVar52 + 0x1e790" identifier + number_literal) ))))) , (binary_expression "iStack_154 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0001e664;" goto statement_identifier ;)) (if_statement "if ((iVar27 != *(int *)((int)pIVar24 + iVar38)) && (1 < (int)prVar7[7].elems)) {\n              bVar2 = true;\n            }" if (parenthesized_expression "((iVar27 != *(int *)((int)pIVar24 + iVar38)) && (1 < (int)prVar7[7].elems))" ( (binary_expression "(iVar27 != *(int *)((int)pIVar24 + iVar38)) && (1 < (int)prVar7[7].elems)" (parenthesized_expression "(iVar27 != *(int *)((int)pIVar24 + iVar38))" ( (binary_expression "iVar27 != *(int *)((int)pIVar24 + iVar38)" identifier != (pointer_expression "*(int *)((int)pIVar24 + iVar38)" * (cast_expression "(int *)((int)pIVar24 + iVar38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pIVar24 + iVar38)" ( (binary_expression "(int)pIVar24 + iVar38" (cast_expression "(int)pIVar24" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) )) && (parenthesized_expression "(1 < (int)prVar7[7].elems)" ( (binary_expression "1 < (int)prVar7[7].elems" number_literal < (cast_expression "(int)prVar7[7].elems" ( (type_descriptor "int" primitive_type) ) (field_expression "prVar7[7].elems" (subscript_expression "prVar7[7]" identifier [ number_literal ]) . field_identifier))) ))) )) (compound_statement "{\n              bVar2 = true;\n            }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) })) (expression_statement "prVar35 = prVar7;" (assignment_expression "prVar35 = prVar7" identifier = identifier) ;) (expression_statement "iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,2);" (assignment_expression "iVar27 = (*pcVar53)(&iStack_154,prVar7,&pbStack_150,2)" identifier = (call_expression "(*pcVar53)(&iStack_154,prVar7,&pbStack_150,2)" (parenthesized_expression "(*pcVar53)" ( (pointer_expression "*pcVar53" * identifier) )) (argument_list "(&iStack_154,prVar7,&pbStack_150,2)" ( (pointer_expression "&iStack_154" & identifier) , identifier , (pointer_expression "&pbStack_150" & identifier) , number_literal )))) ;) (expression_statement "*(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27;" (assignment_expression "*(int *)((int)pIVar15 + iVar38 + iVar45) = iVar27" (pointer_expression "*(int *)((int)pIVar15 + iVar38 + iVar45)" * (cast_expression "(int *)((int)pIVar15 + iVar38 + iVar45)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pIVar15 + iVar38 + iVar45)" ( (binary_expression "(int)pIVar15 + iVar38 + iVar45" (binary_expression "(int)pIVar15 + iVar38" (cast_expression "(int)pIVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) )))) = identifier) ;) (if_statement "if ((iVar27 == 0) && (iStack_154 != 0)) goto LAB_0001e660;" if (parenthesized_expression "((iVar27 == 0) && (iStack_154 != 0))" ( (binary_expression "(iVar27 == 0) && (iStack_154 != 0)" (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) && (parenthesized_expression "(iStack_154 != 0)" ( (binary_expression "iStack_154 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_0001e660;" goto statement_identifier ;)) }))) (expression_statement "iVar27 = iVar38 * 8 + iVar29;" (assignment_expression "iVar27 = iVar38 * 8 + iVar29" identifier = (binary_expression "iVar38 * 8 + iVar29" (binary_expression "iVar38 * 8" identifier * number_literal) + identifier)) ;) (expression_statement "pprVar11 = pprVar39;" (assignment_expression "pprVar11 = pprVar39" identifier = identifier) ;) (do_statement "do {\n            pprVar12 = pprVar11 + 1;\n            puVar40 = (uint *)(iVar27 + 0xc00);\n            iVar27 = iVar27 + 4;\n            *pprVar11 = (re_dfa_t *)((uint)*pprVar11 | *puVar40);\n            pprVar11 = pprVar12;\n          } while (&prStack_e4 != pprVar12);" do (compound_statement "{\n            pprVar12 = pprVar11 + 1;\n            puVar40 = (uint *)(iVar27 + 0xc00);\n            iVar27 = iVar27 + 4;\n            *pprVar11 = (re_dfa_t *)((uint)*pprVar11 | *puVar40);\n            pprVar11 = pprVar12;\n          }" { (expression_statement "pprVar12 = pprVar11 + 1;" (assignment_expression "pprVar12 = pprVar11 + 1" identifier = (binary_expression "pprVar11 + 1" identifier + number_literal)) ;) (expression_statement "puVar40 = (uint *)(iVar27 + 0xc00);" (assignment_expression "puVar40 = (uint *)(iVar27 + 0xc00)" identifier = (cast_expression "(uint *)(iVar27 + 0xc00)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0xc00)" ( (binary_expression "iVar27 + 0xc00" identifier + number_literal) )))) ;) (expression_statement "iVar27 = iVar27 + 4;" (assignment_expression "iVar27 = iVar27 + 4" identifier = (binary_expression "iVar27 + 4" identifier + number_literal)) ;) (expression_statement "*pprVar11 = (re_dfa_t *)((uint)*pprVar11 | *puVar40);" (assignment_expression "*pprVar11 = (re_dfa_t *)((uint)*pprVar11 | *puVar40)" (pointer_expression "*pprVar11" * identifier) = (cast_expression "(re_dfa_t *)((uint)*pprVar11 | *puVar40)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)*pprVar11 | *puVar40)" ( (binary_expression "(uint)*pprVar11 | *puVar40" (binary_expression "(uint)*pprVar11" (parenthesized_expression "(uint)" ( identifier )) * identifier) | (pointer_expression "*puVar40" * identifier)) )))) ;) (expression_statement "pprVar11 = pprVar12;" (assignment_expression "pprVar11 = pprVar12" identifier = identifier) ;) }) while (parenthesized_expression "(&prStack_e4 != pprVar12)" ( (binary_expression "&prStack_e4 != pprVar12" (pointer_expression "&prStack_e4" & identifier) != identifier) )) ;) (expression_statement "iVar38 = iVar38 + 4;" (assignment_expression "iVar38 = iVar38 + 4" identifier = (binary_expression "iVar38 + 4" identifier + number_literal)) ;) (expression_statement "piVar43 = piVar43 + 3;" (assignment_expression "piVar43 = piVar43 + 3" identifier = (binary_expression "piVar43 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar45 != iVar38)" ( (binary_expression "iVar45 != iVar38" identifier != identifier) )) ;) (if_statement "if (bVar2) {\n          prVar35 = (re_node_set *)0x200;\n          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n          prVar18[4].alloc = (Idx)pIVar13;\n          if (pIVar13 == (Idx *)0x0) goto LAB_0001e660;\n          iVar45 = iVar29;\n          pIVar37 = pIVar13;\n          do {\n            prVar21 = *pprVar39;\n            if (prVar21 != (re_dfa_t *)0x0) {\n              prVar35 = (re_node_set *)0x1;\n              pIVar34 = pIVar37;\n              do {\n                if (((uint)prVar21 & 1) != 0) {\n                  iVar38 = 0;\n                  pIVar25 = pIVar15;\n                  pIVar31 = pIVar24;\n                  iVar46 = iVar45;\n                  if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                    do {\n                      puVar40 = (uint *)(iVar46 + 0xc20);\n                      iVar38 = iVar38 + 1;\n                      iVar46 = iVar46 + 0x20;\n                    } while (((uint)prVar35 & *puVar40) == 0);\n                    pIVar25 = pIVar15 + iVar38;\n                    pIVar31 = pIVar24 + iVar38;\n                  }\n                  *pIVar34 = *pIVar31;\n                  pIVar34[0x100] = *pIVar25;\n                }\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1);\n                prVar35 = (re_node_set *)((int)prVar35 << 1);\n                pIVar34 = pIVar34 + 1;\n              } while (prVar21 != (re_dfa_t *)0x0);\n            }\n            pIVar37 = pIVar37 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            iVar45 = iVar45 + 4;\n          } while (pIVar13 + 0x100 != pIVar37);\n        }\n        else {\n          prVar35 = (re_node_set *)0x100;\n          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n          prVar18[3].elems = pIVar13;\n          if (pIVar13 == (Idx *)0x0) {\nLAB_0001e660:\n            pcVar50 = *(code **)(pcVar52 + 0x1e790);\nLAB_0001e664:\n            (*pcVar50)(pIVar24);\n            iVar45 = iStack_148;\n            goto LAB_0001e674;\n          }\n          prVar7 = prVar7 + 8;\n          iVar46 = 0;\n          iVar45 = iVar29;\n          do {\n            prVar35 = (re_node_set *)0x1;\n            iVar38 = iVar46;\n            for (prVar21 = *pprVar39; prVar21 != (re_dfa_t *)0x0;\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1)) {\n              if (((uint)prVar21 & 1) != 0) {\n                iVar48 = 0;\n                iVar27 = iVar45;\n                if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                  do {\n                    puVar40 = (uint *)(iVar27 + 0xc20);\n                    iVar48 = iVar48 + 1;\n                    iVar27 = iVar27 + 0x20;\n                  } while (((uint)prVar35 & *puVar40) == 0);\n                  iVar48 = iVar48 * 4;\n                }\n                if (((uint)prVar35 & prVar7->alloc) == 0) {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar24 + iVar48);\n                }\n                else {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar15 + iVar48);\n                }\n              }\n              prVar35 = (re_node_set *)((int)prVar35 << 1);\n              iVar38 = iVar38 + 1;\n            }\n            iVar46 = iVar46 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            prVar7 = (re_node_set *)&prVar7->nelem;\n            iVar45 = iVar45 + 4;\n          } while (iVar46 != 0x100);\n        }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n          prVar35 = (re_node_set *)0x200;\n          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n          prVar18[4].alloc = (Idx)pIVar13;\n          if (pIVar13 == (Idx *)0x0) goto LAB_0001e660;\n          iVar45 = iVar29;\n          pIVar37 = pIVar13;\n          do {\n            prVar21 = *pprVar39;\n            if (prVar21 != (re_dfa_t *)0x0) {\n              prVar35 = (re_node_set *)0x1;\n              pIVar34 = pIVar37;\n              do {\n                if (((uint)prVar21 & 1) != 0) {\n                  iVar38 = 0;\n                  pIVar25 = pIVar15;\n                  pIVar31 = pIVar24;\n                  iVar46 = iVar45;\n                  if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                    do {\n                      puVar40 = (uint *)(iVar46 + 0xc20);\n                      iVar38 = iVar38 + 1;\n                      iVar46 = iVar46 + 0x20;\n                    } while (((uint)prVar35 & *puVar40) == 0);\n                    pIVar25 = pIVar15 + iVar38;\n                    pIVar31 = pIVar24 + iVar38;\n                  }\n                  *pIVar34 = *pIVar31;\n                  pIVar34[0x100] = *pIVar25;\n                }\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1);\n                prVar35 = (re_node_set *)((int)prVar35 << 1);\n                pIVar34 = pIVar34 + 1;\n              } while (prVar21 != (re_dfa_t *)0x0);\n            }\n            pIVar37 = pIVar37 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            iVar45 = iVar45 + 4;\n          } while (pIVar13 + 0x100 != pIVar37);\n        }" { (expression_statement "prVar35 = (re_node_set *)0x200;" (assignment_expression "prVar35 = (re_node_set *)0x200" identifier = (cast_expression "(re_node_set *)0x200" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);" (assignment_expression "pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4)" identifier = (cast_expression "(Idx *)(**(code **)(pcVar52 + 0x1e688))(4)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar52 + 0x1e688))(4)" (parenthesized_expression "(**(code **)(pcVar52 + 0x1e688))" ( (pointer_expression "**(code **)(pcVar52 + 0x1e688)" * (pointer_expression "*(code **)(pcVar52 + 0x1e688)" * (cast_expression "(code **)(pcVar52 + 0x1e688)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar52 + 0x1e688)" ( (binary_expression "pcVar52 + 0x1e688" identifier + number_literal) ))))) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "prVar18[4].alloc = (Idx)pIVar13;" (assignment_expression "prVar18[4].alloc = (Idx)pIVar13" (field_expression "prVar18[4].alloc" (subscript_expression "prVar18[4]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Idx)pIVar13" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (if_statement "if (pIVar13 == (Idx *)0x0) goto LAB_0001e660;" if (parenthesized_expression "(pIVar13 == (Idx *)0x0)" ( (binary_expression "pIVar13 == (Idx *)0x0" identifier == (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001e660;" goto statement_identifier ;)) (expression_statement "iVar45 = iVar29;" (assignment_expression "iVar45 = iVar29" identifier = identifier) ;) (expression_statement "pIVar37 = pIVar13;" (assignment_expression "pIVar37 = pIVar13" identifier = identifier) ;) (do_statement "do {\n            prVar21 = *pprVar39;\n            if (prVar21 != (re_dfa_t *)0x0) {\n              prVar35 = (re_node_set *)0x1;\n              pIVar34 = pIVar37;\n              do {\n                if (((uint)prVar21 & 1) != 0) {\n                  iVar38 = 0;\n                  pIVar25 = pIVar15;\n                  pIVar31 = pIVar24;\n                  iVar46 = iVar45;\n                  if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                    do {\n                      puVar40 = (uint *)(iVar46 + 0xc20);\n                      iVar38 = iVar38 + 1;\n                      iVar46 = iVar46 + 0x20;\n                    } while (((uint)prVar35 & *puVar40) == 0);\n                    pIVar25 = pIVar15 + iVar38;\n                    pIVar31 = pIVar24 + iVar38;\n                  }\n                  *pIVar34 = *pIVar31;\n                  pIVar34[0x100] = *pIVar25;\n                }\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1);\n                prVar35 = (re_node_set *)((int)prVar35 << 1);\n                pIVar34 = pIVar34 + 1;\n              } while (prVar21 != (re_dfa_t *)0x0);\n            }\n            pIVar37 = pIVar37 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            iVar45 = iVar45 + 4;\n          } while (pIVar13 + 0x100 != pIVar37);" do (compound_statement "{\n            prVar21 = *pprVar39;\n            if (prVar21 != (re_dfa_t *)0x0) {\n              prVar35 = (re_node_set *)0x1;\n              pIVar34 = pIVar37;\n              do {\n                if (((uint)prVar21 & 1) != 0) {\n                  iVar38 = 0;\n                  pIVar25 = pIVar15;\n                  pIVar31 = pIVar24;\n                  iVar46 = iVar45;\n                  if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                    do {\n                      puVar40 = (uint *)(iVar46 + 0xc20);\n                      iVar38 = iVar38 + 1;\n                      iVar46 = iVar46 + 0x20;\n                    } while (((uint)prVar35 & *puVar40) == 0);\n                    pIVar25 = pIVar15 + iVar38;\n                    pIVar31 = pIVar24 + iVar38;\n                  }\n                  *pIVar34 = *pIVar31;\n                  pIVar34[0x100] = *pIVar25;\n                }\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1);\n                prVar35 = (re_node_set *)((int)prVar35 << 1);\n                pIVar34 = pIVar34 + 1;\n              } while (prVar21 != (re_dfa_t *)0x0);\n            }\n            pIVar37 = pIVar37 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            iVar45 = iVar45 + 4;\n          }" { (expression_statement "prVar21 = *pprVar39;" (assignment_expression "prVar21 = *pprVar39" identifier = (pointer_expression "*pprVar39" * identifier)) ;) (if_statement "if (prVar21 != (re_dfa_t *)0x0) {\n              prVar35 = (re_node_set *)0x1;\n              pIVar34 = pIVar37;\n              do {\n                if (((uint)prVar21 & 1) != 0) {\n                  iVar38 = 0;\n                  pIVar25 = pIVar15;\n                  pIVar31 = pIVar24;\n                  iVar46 = iVar45;\n                  if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                    do {\n                      puVar40 = (uint *)(iVar46 + 0xc20);\n                      iVar38 = iVar38 + 1;\n                      iVar46 = iVar46 + 0x20;\n                    } while (((uint)prVar35 & *puVar40) == 0);\n                    pIVar25 = pIVar15 + iVar38;\n                    pIVar31 = pIVar24 + iVar38;\n                  }\n                  *pIVar34 = *pIVar31;\n                  pIVar34[0x100] = *pIVar25;\n                }\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1);\n                prVar35 = (re_node_set *)((int)prVar35 << 1);\n                pIVar34 = pIVar34 + 1;\n              } while (prVar21 != (re_dfa_t *)0x0);\n            }" if (parenthesized_expression "(prVar21 != (re_dfa_t *)0x0)" ( (binary_expression "prVar21 != (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              prVar35 = (re_node_set *)0x1;\n              pIVar34 = pIVar37;\n              do {\n                if (((uint)prVar21 & 1) != 0) {\n                  iVar38 = 0;\n                  pIVar25 = pIVar15;\n                  pIVar31 = pIVar24;\n                  iVar46 = iVar45;\n                  if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                    do {\n                      puVar40 = (uint *)(iVar46 + 0xc20);\n                      iVar38 = iVar38 + 1;\n                      iVar46 = iVar46 + 0x20;\n                    } while (((uint)prVar35 & *puVar40) == 0);\n                    pIVar25 = pIVar15 + iVar38;\n                    pIVar31 = pIVar24 + iVar38;\n                  }\n                  *pIVar34 = *pIVar31;\n                  pIVar34[0x100] = *pIVar25;\n                }\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1);\n                prVar35 = (re_node_set *)((int)prVar35 << 1);\n                pIVar34 = pIVar34 + 1;\n              } while (prVar21 != (re_dfa_t *)0x0);\n            }" { (expression_statement "prVar35 = (re_node_set *)0x1;" (assignment_expression "prVar35 = (re_node_set *)0x1" identifier = (cast_expression "(re_node_set *)0x1" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pIVar34 = pIVar37;" (assignment_expression "pIVar34 = pIVar37" identifier = identifier) ;) (do_statement "do {\n                if (((uint)prVar21 & 1) != 0) {\n                  iVar38 = 0;\n                  pIVar25 = pIVar15;\n                  pIVar31 = pIVar24;\n                  iVar46 = iVar45;\n                  if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                    do {\n                      puVar40 = (uint *)(iVar46 + 0xc20);\n                      iVar38 = iVar38 + 1;\n                      iVar46 = iVar46 + 0x20;\n                    } while (((uint)prVar35 & *puVar40) == 0);\n                    pIVar25 = pIVar15 + iVar38;\n                    pIVar31 = pIVar24 + iVar38;\n                  }\n                  *pIVar34 = *pIVar31;\n                  pIVar34[0x100] = *pIVar25;\n                }\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1);\n                prVar35 = (re_node_set *)((int)prVar35 << 1);\n                pIVar34 = pIVar34 + 1;\n              } while (prVar21 != (re_dfa_t *)0x0);" do (compound_statement "{\n                if (((uint)prVar21 & 1) != 0) {\n                  iVar38 = 0;\n                  pIVar25 = pIVar15;\n                  pIVar31 = pIVar24;\n                  iVar46 = iVar45;\n                  if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                    do {\n                      puVar40 = (uint *)(iVar46 + 0xc20);\n                      iVar38 = iVar38 + 1;\n                      iVar46 = iVar46 + 0x20;\n                    } while (((uint)prVar35 & *puVar40) == 0);\n                    pIVar25 = pIVar15 + iVar38;\n                    pIVar31 = pIVar24 + iVar38;\n                  }\n                  *pIVar34 = *pIVar31;\n                  pIVar34[0x100] = *pIVar25;\n                }\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1);\n                prVar35 = (re_node_set *)((int)prVar35 << 1);\n                pIVar34 = pIVar34 + 1;\n              }" { (if_statement "if (((uint)prVar21 & 1) != 0) {\n                  iVar38 = 0;\n                  pIVar25 = pIVar15;\n                  pIVar31 = pIVar24;\n                  iVar46 = iVar45;\n                  if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                    do {\n                      puVar40 = (uint *)(iVar46 + 0xc20);\n                      iVar38 = iVar38 + 1;\n                      iVar46 = iVar46 + 0x20;\n                    } while (((uint)prVar35 & *puVar40) == 0);\n                    pIVar25 = pIVar15 + iVar38;\n                    pIVar31 = pIVar24 + iVar38;\n                  }\n                  *pIVar34 = *pIVar31;\n                  pIVar34[0x100] = *pIVar25;\n                }" if (parenthesized_expression "(((uint)prVar21 & 1) != 0)" ( (binary_expression "((uint)prVar21 & 1) != 0" (parenthesized_expression "((uint)prVar21 & 1)" ( (binary_expression "(uint)prVar21 & 1" (cast_expression "(uint)prVar21" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                  iVar38 = 0;\n                  pIVar25 = pIVar15;\n                  pIVar31 = pIVar24;\n                  iVar46 = iVar45;\n                  if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                    do {\n                      puVar40 = (uint *)(iVar46 + 0xc20);\n                      iVar38 = iVar38 + 1;\n                      iVar46 = iVar46 + 0x20;\n                    } while (((uint)prVar35 & *puVar40) == 0);\n                    pIVar25 = pIVar15 + iVar38;\n                    pIVar31 = pIVar24 + iVar38;\n                  }\n                  *pIVar34 = *pIVar31;\n                  pIVar34[0x100] = *pIVar25;\n                }" { (expression_statement "iVar38 = 0;" (assignment_expression "iVar38 = 0" identifier = number_literal) ;) (expression_statement "pIVar25 = pIVar15;" (assignment_expression "pIVar25 = pIVar15" identifier = identifier) ;) (expression_statement "pIVar31 = pIVar24;" (assignment_expression "pIVar31 = pIVar24" identifier = identifier) ;) (expression_statement "iVar46 = iVar45;" (assignment_expression "iVar46 = iVar45" identifier = identifier) ;) (if_statement "if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                    do {\n                      puVar40 = (uint *)(iVar46 + 0xc20);\n                      iVar38 = iVar38 + 1;\n                      iVar46 = iVar46 + 0x20;\n                    } while (((uint)prVar35 & *puVar40) == 0);\n                    pIVar25 = pIVar15 + iVar38;\n                    pIVar31 = pIVar24 + iVar38;\n                  }" if (parenthesized_expression "(((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0)" ( (binary_expression "((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0" (parenthesized_expression "((uint)prVar35 & *(uint *)(iVar45 + 0xc00))" ( (binary_expression "(uint)prVar35 & *(uint *)(iVar45 + 0xc00)" (cast_expression "(uint)prVar35" ( (type_descriptor "uint" type_identifier) ) identifier) & (pointer_expression "*(uint *)(iVar45 + 0xc00)" * (cast_expression "(uint *)(iVar45 + 0xc00)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar45 + 0xc00)" ( (binary_expression "iVar45 + 0xc00" identifier + number_literal) ))))) )) == number_literal) )) (compound_statement "{\n                    do {\n                      puVar40 = (uint *)(iVar46 + 0xc20);\n                      iVar38 = iVar38 + 1;\n                      iVar46 = iVar46 + 0x20;\n                    } while (((uint)prVar35 & *puVar40) == 0);\n                    pIVar25 = pIVar15 + iVar38;\n                    pIVar31 = pIVar24 + iVar38;\n                  }" { (do_statement "do {\n                      puVar40 = (uint *)(iVar46 + 0xc20);\n                      iVar38 = iVar38 + 1;\n                      iVar46 = iVar46 + 0x20;\n                    } while (((uint)prVar35 & *puVar40) == 0);" do (compound_statement "{\n                      puVar40 = (uint *)(iVar46 + 0xc20);\n                      iVar38 = iVar38 + 1;\n                      iVar46 = iVar46 + 0x20;\n                    }" { (expression_statement "puVar40 = (uint *)(iVar46 + 0xc20);" (assignment_expression "puVar40 = (uint *)(iVar46 + 0xc20)" identifier = (cast_expression "(uint *)(iVar46 + 0xc20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar46 + 0xc20)" ( (binary_expression "iVar46 + 0xc20" identifier + number_literal) )))) ;) (expression_statement "iVar38 = iVar38 + 1;" (assignment_expression "iVar38 = iVar38 + 1" identifier = (binary_expression "iVar38 + 1" identifier + number_literal)) ;) (expression_statement "iVar46 = iVar46 + 0x20;" (assignment_expression "iVar46 = iVar46 + 0x20" identifier = (binary_expression "iVar46 + 0x20" identifier + number_literal)) ;) }) while (parenthesized_expression "(((uint)prVar35 & *puVar40) == 0)" ( (binary_expression "((uint)prVar35 & *puVar40) == 0" (parenthesized_expression "((uint)prVar35 & *puVar40)" ( (binary_expression "(uint)prVar35 & *puVar40" (cast_expression "(uint)prVar35" ( (type_descriptor "uint" type_identifier) ) identifier) & (pointer_expression "*puVar40" * identifier)) )) == number_literal) )) ;) (expression_statement "pIVar25 = pIVar15 + iVar38;" (assignment_expression "pIVar25 = pIVar15 + iVar38" identifier = (binary_expression "pIVar15 + iVar38" identifier + identifier)) ;) (expression_statement "pIVar31 = pIVar24 + iVar38;" (assignment_expression "pIVar31 = pIVar24 + iVar38" identifier = (binary_expression "pIVar24 + iVar38" identifier + identifier)) ;) })) (expression_statement "*pIVar34 = *pIVar31;" (assignment_expression "*pIVar34 = *pIVar31" (pointer_expression "*pIVar34" * identifier) = (pointer_expression "*pIVar31" * identifier)) ;) (expression_statement "pIVar34[0x100] = *pIVar25;" (assignment_expression "pIVar34[0x100] = *pIVar25" (subscript_expression "pIVar34[0x100]" identifier [ number_literal ]) = (pointer_expression "*pIVar25" * identifier)) ;) })) (expression_statement "prVar21 = (re_dfa_t *)((uint)prVar21 >> 1);" (assignment_expression "prVar21 = (re_dfa_t *)((uint)prVar21 >> 1)" identifier = (cast_expression "(re_dfa_t *)((uint)prVar21 >> 1)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)prVar21 >> 1)" ( (binary_expression "(uint)prVar21 >> 1" (cast_expression "(uint)prVar21" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "prVar35 = (re_node_set *)((int)prVar35 << 1);" (assignment_expression "prVar35 = (re_node_set *)((int)prVar35 << 1)" identifier = (cast_expression "(re_node_set *)((int)prVar35 << 1)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)prVar35 << 1)" ( (binary_expression "(int)prVar35 << 1" (cast_expression "(int)prVar35" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "pIVar34 = pIVar34 + 1;" (assignment_expression "pIVar34 = pIVar34 + 1" identifier = (binary_expression "pIVar34 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(prVar21 != (re_dfa_t *)0x0)" ( (binary_expression "prVar21 != (re_dfa_t *)0x0" identifier != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "pIVar37 = pIVar37 + 0x20;" (assignment_expression "pIVar37 = pIVar37 + 0x20" identifier = (binary_expression "pIVar37 + 0x20" identifier + number_literal)) ;) (expression_statement "pprVar39 = pprVar39 + 1;" (assignment_expression "pprVar39 = pprVar39 + 1" identifier = (binary_expression "pprVar39 + 1" identifier + number_literal)) ;) (expression_statement "iVar45 = iVar45 + 4;" (assignment_expression "iVar45 = iVar45 + 4" identifier = (binary_expression "iVar45 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pIVar13 + 0x100 != pIVar37)" ( (binary_expression "pIVar13 + 0x100 != pIVar37" (binary_expression "pIVar13 + 0x100" identifier + number_literal) != identifier) )) ;) }) (else_clause "else {\n          prVar35 = (re_node_set *)0x100;\n          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n          prVar18[3].elems = pIVar13;\n          if (pIVar13 == (Idx *)0x0) {\nLAB_0001e660:\n            pcVar50 = *(code **)(pcVar52 + 0x1e790);\nLAB_0001e664:\n            (*pcVar50)(pIVar24);\n            iVar45 = iStack_148;\n            goto LAB_0001e674;\n          }\n          prVar7 = prVar7 + 8;\n          iVar46 = 0;\n          iVar45 = iVar29;\n          do {\n            prVar35 = (re_node_set *)0x1;\n            iVar38 = iVar46;\n            for (prVar21 = *pprVar39; prVar21 != (re_dfa_t *)0x0;\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1)) {\n              if (((uint)prVar21 & 1) != 0) {\n                iVar48 = 0;\n                iVar27 = iVar45;\n                if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                  do {\n                    puVar40 = (uint *)(iVar27 + 0xc20);\n                    iVar48 = iVar48 + 1;\n                    iVar27 = iVar27 + 0x20;\n                  } while (((uint)prVar35 & *puVar40) == 0);\n                  iVar48 = iVar48 * 4;\n                }\n                if (((uint)prVar35 & prVar7->alloc) == 0) {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar24 + iVar48);\n                }\n                else {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar15 + iVar48);\n                }\n              }\n              prVar35 = (re_node_set *)((int)prVar35 << 1);\n              iVar38 = iVar38 + 1;\n            }\n            iVar46 = iVar46 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            prVar7 = (re_node_set *)&prVar7->nelem;\n            iVar45 = iVar45 + 4;\n          } while (iVar46 != 0x100);\n        }" else (compound_statement "{\n          prVar35 = (re_node_set *)0x100;\n          pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);\n          prVar18[3].elems = pIVar13;\n          if (pIVar13 == (Idx *)0x0) {\nLAB_0001e660:\n            pcVar50 = *(code **)(pcVar52 + 0x1e790);\nLAB_0001e664:\n            (*pcVar50)(pIVar24);\n            iVar45 = iStack_148;\n            goto LAB_0001e674;\n          }\n          prVar7 = prVar7 + 8;\n          iVar46 = 0;\n          iVar45 = iVar29;\n          do {\n            prVar35 = (re_node_set *)0x1;\n            iVar38 = iVar46;\n            for (prVar21 = *pprVar39; prVar21 != (re_dfa_t *)0x0;\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1)) {\n              if (((uint)prVar21 & 1) != 0) {\n                iVar48 = 0;\n                iVar27 = iVar45;\n                if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                  do {\n                    puVar40 = (uint *)(iVar27 + 0xc20);\n                    iVar48 = iVar48 + 1;\n                    iVar27 = iVar27 + 0x20;\n                  } while (((uint)prVar35 & *puVar40) == 0);\n                  iVar48 = iVar48 * 4;\n                }\n                if (((uint)prVar35 & prVar7->alloc) == 0) {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar24 + iVar48);\n                }\n                else {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar15 + iVar48);\n                }\n              }\n              prVar35 = (re_node_set *)((int)prVar35 << 1);\n              iVar38 = iVar38 + 1;\n            }\n            iVar46 = iVar46 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            prVar7 = (re_node_set *)&prVar7->nelem;\n            iVar45 = iVar45 + 4;\n          } while (iVar46 != 0x100);\n        }" { (expression_statement "prVar35 = (re_node_set *)0x100;" (assignment_expression "prVar35 = (re_node_set *)0x100" identifier = (cast_expression "(re_node_set *)0x100" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);" (assignment_expression "pIVar13 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4)" identifier = (cast_expression "(Idx *)(**(code **)(pcVar52 + 0x1e688))(4)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar52 + 0x1e688))(4)" (parenthesized_expression "(**(code **)(pcVar52 + 0x1e688))" ( (pointer_expression "**(code **)(pcVar52 + 0x1e688)" * (pointer_expression "*(code **)(pcVar52 + 0x1e688)" * (cast_expression "(code **)(pcVar52 + 0x1e688)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar52 + 0x1e688)" ( (binary_expression "pcVar52 + 0x1e688" identifier + number_literal) ))))) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "prVar18[3].elems = pIVar13;" (assignment_expression "prVar18[3].elems = pIVar13" (field_expression "prVar18[3].elems" (subscript_expression "prVar18[3]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (if_statement "if (pIVar13 == (Idx *)0x0) {\nLAB_0001e660:\n            pcVar50 = *(code **)(pcVar52 + 0x1e790);\nLAB_0001e664:\n            (*pcVar50)(pIVar24);\n            iVar45 = iStack_148;\n            goto LAB_0001e674;\n          }" if (parenthesized_expression "(pIVar13 == (Idx *)0x0)" ( (binary_expression "pIVar13 == (Idx *)0x0" identifier == (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0001e660:\n            pcVar50 = *(code **)(pcVar52 + 0x1e790);\nLAB_0001e664:\n            (*pcVar50)(pIVar24);\n            iVar45 = iStack_148;\n            goto LAB_0001e674;\n          }" { (labeled_statement "LAB_0001e660:\n            pcVar50 = *(code **)(pcVar52 + 0x1e790);" statement_identifier : (expression_statement "pcVar50 = *(code **)(pcVar52 + 0x1e790);" (assignment_expression "pcVar50 = *(code **)(pcVar52 + 0x1e790)" identifier = (pointer_expression "*(code **)(pcVar52 + 0x1e790)" * (cast_expression "(code **)(pcVar52 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar52 + 0x1e790)" ( (binary_expression "pcVar52 + 0x1e790" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0001e664:\n            (*pcVar50)(pIVar24);" statement_identifier : (expression_statement "(*pcVar50)(pIVar24);" (call_expression "(*pcVar50)(pIVar24)" (parenthesized_expression "(*pcVar50)" ( (pointer_expression "*pcVar50" * identifier) )) (argument_list "(pIVar24)" ( identifier ))) ;)) (expression_statement "iVar45 = iStack_148;" (assignment_expression "iVar45 = iStack_148" identifier = identifier) ;) (goto_statement "goto LAB_0001e674;" goto statement_identifier ;) })) (expression_statement "prVar7 = prVar7 + 8;" (assignment_expression "prVar7 = prVar7 + 8" identifier = (binary_expression "prVar7 + 8" identifier + number_literal)) ;) (expression_statement "iVar46 = 0;" (assignment_expression "iVar46 = 0" identifier = number_literal) ;) (expression_statement "iVar45 = iVar29;" (assignment_expression "iVar45 = iVar29" identifier = identifier) ;) (do_statement "do {\n            prVar35 = (re_node_set *)0x1;\n            iVar38 = iVar46;\n            for (prVar21 = *pprVar39; prVar21 != (re_dfa_t *)0x0;\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1)) {\n              if (((uint)prVar21 & 1) != 0) {\n                iVar48 = 0;\n                iVar27 = iVar45;\n                if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                  do {\n                    puVar40 = (uint *)(iVar27 + 0xc20);\n                    iVar48 = iVar48 + 1;\n                    iVar27 = iVar27 + 0x20;\n                  } while (((uint)prVar35 & *puVar40) == 0);\n                  iVar48 = iVar48 * 4;\n                }\n                if (((uint)prVar35 & prVar7->alloc) == 0) {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar24 + iVar48);\n                }\n                else {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar15 + iVar48);\n                }\n              }\n              prVar35 = (re_node_set *)((int)prVar35 << 1);\n              iVar38 = iVar38 + 1;\n            }\n            iVar46 = iVar46 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            prVar7 = (re_node_set *)&prVar7->nelem;\n            iVar45 = iVar45 + 4;\n          } while (iVar46 != 0x100);" do (compound_statement "{\n            prVar35 = (re_node_set *)0x1;\n            iVar38 = iVar46;\n            for (prVar21 = *pprVar39; prVar21 != (re_dfa_t *)0x0;\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1)) {\n              if (((uint)prVar21 & 1) != 0) {\n                iVar48 = 0;\n                iVar27 = iVar45;\n                if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                  do {\n                    puVar40 = (uint *)(iVar27 + 0xc20);\n                    iVar48 = iVar48 + 1;\n                    iVar27 = iVar27 + 0x20;\n                  } while (((uint)prVar35 & *puVar40) == 0);\n                  iVar48 = iVar48 * 4;\n                }\n                if (((uint)prVar35 & prVar7->alloc) == 0) {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar24 + iVar48);\n                }\n                else {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar15 + iVar48);\n                }\n              }\n              prVar35 = (re_node_set *)((int)prVar35 << 1);\n              iVar38 = iVar38 + 1;\n            }\n            iVar46 = iVar46 + 0x20;\n            pprVar39 = pprVar39 + 1;\n            prVar7 = (re_node_set *)&prVar7->nelem;\n            iVar45 = iVar45 + 4;\n          }" { (expression_statement "prVar35 = (re_node_set *)0x1;" (assignment_expression "prVar35 = (re_node_set *)0x1" identifier = (cast_expression "(re_node_set *)0x1" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar38 = iVar46;" (assignment_expression "iVar38 = iVar46" identifier = identifier) ;) (for_statement "for (prVar21 = *pprVar39; prVar21 != (re_dfa_t *)0x0;\n                prVar21 = (re_dfa_t *)((uint)prVar21 >> 1)) {\n              if (((uint)prVar21 & 1) != 0) {\n                iVar48 = 0;\n                iVar27 = iVar45;\n                if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                  do {\n                    puVar40 = (uint *)(iVar27 + 0xc20);\n                    iVar48 = iVar48 + 1;\n                    iVar27 = iVar27 + 0x20;\n                  } while (((uint)prVar35 & *puVar40) == 0);\n                  iVar48 = iVar48 * 4;\n                }\n                if (((uint)prVar35 & prVar7->alloc) == 0) {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar24 + iVar48);\n                }\n                else {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar15 + iVar48);\n                }\n              }\n              prVar35 = (re_node_set *)((int)prVar35 << 1);\n              iVar38 = iVar38 + 1;\n            }" for ( (assignment_expression "prVar21 = *pprVar39" identifier = (pointer_expression "*pprVar39" * identifier)) ; (binary_expression "prVar21 != (re_dfa_t *)0x0" identifier != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "prVar21 = (re_dfa_t *)((uint)prVar21 >> 1)" identifier = (cast_expression "(re_dfa_t *)((uint)prVar21 >> 1)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)prVar21 >> 1)" ( (binary_expression "(uint)prVar21 >> 1" (cast_expression "(uint)prVar21" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ) (compound_statement "{\n              if (((uint)prVar21 & 1) != 0) {\n                iVar48 = 0;\n                iVar27 = iVar45;\n                if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                  do {\n                    puVar40 = (uint *)(iVar27 + 0xc20);\n                    iVar48 = iVar48 + 1;\n                    iVar27 = iVar27 + 0x20;\n                  } while (((uint)prVar35 & *puVar40) == 0);\n                  iVar48 = iVar48 * 4;\n                }\n                if (((uint)prVar35 & prVar7->alloc) == 0) {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar24 + iVar48);\n                }\n                else {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar15 + iVar48);\n                }\n              }\n              prVar35 = (re_node_set *)((int)prVar35 << 1);\n              iVar38 = iVar38 + 1;\n            }" { (if_statement "if (((uint)prVar21 & 1) != 0) {\n                iVar48 = 0;\n                iVar27 = iVar45;\n                if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                  do {\n                    puVar40 = (uint *)(iVar27 + 0xc20);\n                    iVar48 = iVar48 + 1;\n                    iVar27 = iVar27 + 0x20;\n                  } while (((uint)prVar35 & *puVar40) == 0);\n                  iVar48 = iVar48 * 4;\n                }\n                if (((uint)prVar35 & prVar7->alloc) == 0) {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar24 + iVar48);\n                }\n                else {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar15 + iVar48);\n                }\n              }" if (parenthesized_expression "(((uint)prVar21 & 1) != 0)" ( (binary_expression "((uint)prVar21 & 1) != 0" (parenthesized_expression "((uint)prVar21 & 1)" ( (binary_expression "(uint)prVar21 & 1" (cast_expression "(uint)prVar21" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                iVar48 = 0;\n                iVar27 = iVar45;\n                if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                  do {\n                    puVar40 = (uint *)(iVar27 + 0xc20);\n                    iVar48 = iVar48 + 1;\n                    iVar27 = iVar27 + 0x20;\n                  } while (((uint)prVar35 & *puVar40) == 0);\n                  iVar48 = iVar48 * 4;\n                }\n                if (((uint)prVar35 & prVar7->alloc) == 0) {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar24 + iVar48);\n                }\n                else {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar15 + iVar48);\n                }\n              }" { (expression_statement "iVar48 = 0;" (assignment_expression "iVar48 = 0" identifier = number_literal) ;) (expression_statement "iVar27 = iVar45;" (assignment_expression "iVar27 = iVar45" identifier = identifier) ;) (if_statement "if (((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0) {\n                  do {\n                    puVar40 = (uint *)(iVar27 + 0xc20);\n                    iVar48 = iVar48 + 1;\n                    iVar27 = iVar27 + 0x20;\n                  } while (((uint)prVar35 & *puVar40) == 0);\n                  iVar48 = iVar48 * 4;\n                }" if (parenthesized_expression "(((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0)" ( (binary_expression "((uint)prVar35 & *(uint *)(iVar45 + 0xc00)) == 0" (parenthesized_expression "((uint)prVar35 & *(uint *)(iVar45 + 0xc00))" ( (binary_expression "(uint)prVar35 & *(uint *)(iVar45 + 0xc00)" (cast_expression "(uint)prVar35" ( (type_descriptor "uint" type_identifier) ) identifier) & (pointer_expression "*(uint *)(iVar45 + 0xc00)" * (cast_expression "(uint *)(iVar45 + 0xc00)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar45 + 0xc00)" ( (binary_expression "iVar45 + 0xc00" identifier + number_literal) ))))) )) == number_literal) )) (compound_statement "{\n                  do {\n                    puVar40 = (uint *)(iVar27 + 0xc20);\n                    iVar48 = iVar48 + 1;\n                    iVar27 = iVar27 + 0x20;\n                  } while (((uint)prVar35 & *puVar40) == 0);\n                  iVar48 = iVar48 * 4;\n                }" { (do_statement "do {\n                    puVar40 = (uint *)(iVar27 + 0xc20);\n                    iVar48 = iVar48 + 1;\n                    iVar27 = iVar27 + 0x20;\n                  } while (((uint)prVar35 & *puVar40) == 0);" do (compound_statement "{\n                    puVar40 = (uint *)(iVar27 + 0xc20);\n                    iVar48 = iVar48 + 1;\n                    iVar27 = iVar27 + 0x20;\n                  }" { (expression_statement "puVar40 = (uint *)(iVar27 + 0xc20);" (assignment_expression "puVar40 = (uint *)(iVar27 + 0xc20)" identifier = (cast_expression "(uint *)(iVar27 + 0xc20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0xc20)" ( (binary_expression "iVar27 + 0xc20" identifier + number_literal) )))) ;) (expression_statement "iVar48 = iVar48 + 1;" (assignment_expression "iVar48 = iVar48 + 1" identifier = (binary_expression "iVar48 + 1" identifier + number_literal)) ;) (expression_statement "iVar27 = iVar27 + 0x20;" (assignment_expression "iVar27 = iVar27 + 0x20" identifier = (binary_expression "iVar27 + 0x20" identifier + number_literal)) ;) }) while (parenthesized_expression "(((uint)prVar35 & *puVar40) == 0)" ( (binary_expression "((uint)prVar35 & *puVar40) == 0" (parenthesized_expression "((uint)prVar35 & *puVar40)" ( (binary_expression "(uint)prVar35 & *puVar40" (cast_expression "(uint)prVar35" ( (type_descriptor "uint" type_identifier) ) identifier) & (pointer_expression "*puVar40" * identifier)) )) == number_literal) )) ;) (expression_statement "iVar48 = iVar48 * 4;" (assignment_expression "iVar48 = iVar48 * 4" identifier = (binary_expression "iVar48 * 4" identifier * number_literal)) ;) })) (if_statement "if (((uint)prVar35 & prVar7->alloc) == 0) {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar24 + iVar48);\n                }\n                else {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar15 + iVar48);\n                }" if (parenthesized_expression "(((uint)prVar35 & prVar7->alloc) == 0)" ( (binary_expression "((uint)prVar35 & prVar7->alloc) == 0" (parenthesized_expression "((uint)prVar35 & prVar7->alloc)" ( (binary_expression "(uint)prVar35 & prVar7->alloc" (cast_expression "(uint)prVar35" ( (type_descriptor "uint" type_identifier) ) identifier) & (field_expression "prVar7->alloc" identifier -> field_identifier)) )) == number_literal) )) (compound_statement "{\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar24 + iVar48);\n                }" { (expression_statement "pIVar13[iVar38] = *(Idx *)((int)pIVar24 + iVar48);" (assignment_expression "pIVar13[iVar38] = *(Idx *)((int)pIVar24 + iVar48)" (subscript_expression "pIVar13[iVar38]" identifier [ identifier ]) = (pointer_expression "*(Idx *)((int)pIVar24 + iVar48)" * (cast_expression "(Idx *)((int)pIVar24 + iVar48)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pIVar24 + iVar48)" ( (binary_expression "(int)pIVar24 + iVar48" (cast_expression "(int)pIVar24" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) }) (else_clause "else {\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar15 + iVar48);\n                }" else (compound_statement "{\n                  pIVar13[iVar38] = *(Idx *)((int)pIVar15 + iVar48);\n                }" { (expression_statement "pIVar13[iVar38] = *(Idx *)((int)pIVar15 + iVar48);" (assignment_expression "pIVar13[iVar38] = *(Idx *)((int)pIVar15 + iVar48)" (subscript_expression "pIVar13[iVar38]" identifier [ identifier ]) = (pointer_expression "*(Idx *)((int)pIVar15 + iVar48)" * (cast_expression "(Idx *)((int)pIVar15 + iVar48)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pIVar15 + iVar48)" ( (binary_expression "(int)pIVar15 + iVar48" (cast_expression "(int)pIVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) }))) })) (expression_statement "prVar35 = (re_node_set *)((int)prVar35 << 1);" (assignment_expression "prVar35 = (re_node_set *)((int)prVar35 << 1)" identifier = (cast_expression "(re_node_set *)((int)prVar35 << 1)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)prVar35 << 1)" ( (binary_expression "(int)prVar35 << 1" (cast_expression "(int)prVar35" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "iVar38 = iVar38 + 1;" (assignment_expression "iVar38 = iVar38 + 1" identifier = (binary_expression "iVar38 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar46 = iVar46 + 0x20;" (assignment_expression "iVar46 = iVar46 + 0x20" identifier = (binary_expression "iVar46 + 0x20" identifier + number_literal)) ;) (expression_statement "pprVar39 = pprVar39 + 1;" (assignment_expression "pprVar39 = pprVar39 + 1" identifier = (binary_expression "pprVar39 + 1" identifier + number_literal)) ;) (expression_statement "prVar7 = (re_node_set *)&prVar7->nelem;" (assignment_expression "prVar7 = (re_node_set *)&prVar7->nelem" identifier = (cast_expression "(re_node_set *)&prVar7->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar7->nelem" & (field_expression "prVar7->nelem" identifier -> field_identifier)))) ;) (expression_statement "iVar45 = iVar45 + 4;" (assignment_expression "iVar45 = iVar45 + 4" identifier = (binary_expression "iVar45 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar46 != 0x100)" ( (binary_expression "iVar46 != 0x100" identifier != number_literal) )) ;) }))) (expression_statement "pcVar53 = *(code **)(pcVar52 + 0x1e790);" (assignment_expression "pcVar53 = *(code **)(pcVar52 + 0x1e790)" identifier = (pointer_expression "*(code **)(pcVar52 + 0x1e790)" * (cast_expression "(code **)(pcVar52 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar52 + 0x1e790)" ( (binary_expression "pcVar52 + 0x1e790" identifier + number_literal) ))))) ;) (if_statement "if ((int)prStack_104 << 0x15 < 0) {\n          prVar35 = (re_node_set *)0x0;\n          do {\n            if ((*puVar9 & 0x400) != 0) {\n              IVar22 = pIVar15[(int)(pbVar47 + (int)((int)&prVar35[-1].elems + 3))];\n              pIVar13[10] = IVar22;\n              if (bVar2) {\n                pIVar13[0x10a] = IVar22;\n              }\n              break;\n            }\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            puVar9 = puVar9 + 8;\n          } while (prVar35 != prVar28);\n          pcVar53 = *(code **)(pcVar52 + 0x1e790);\n        }" if (parenthesized_expression "((int)prStack_104 << 0x15 < 0)" ( (binary_expression "(int)prStack_104 << 0x15 < 0" (binary_expression "(int)prStack_104 << 0x15" (cast_expression "(int)prStack_104" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) < number_literal) )) (compound_statement "{\n          prVar35 = (re_node_set *)0x0;\n          do {\n            if ((*puVar9 & 0x400) != 0) {\n              IVar22 = pIVar15[(int)(pbVar47 + (int)((int)&prVar35[-1].elems + 3))];\n              pIVar13[10] = IVar22;\n              if (bVar2) {\n                pIVar13[0x10a] = IVar22;\n              }\n              break;\n            }\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            puVar9 = puVar9 + 8;\n          } while (prVar35 != prVar28);\n          pcVar53 = *(code **)(pcVar52 + 0x1e790);\n        }" { (expression_statement "prVar35 = (re_node_set *)0x0;" (assignment_expression "prVar35 = (re_node_set *)0x0" identifier = (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            if ((*puVar9 & 0x400) != 0) {\n              IVar22 = pIVar15[(int)(pbVar47 + (int)((int)&prVar35[-1].elems + 3))];\n              pIVar13[10] = IVar22;\n              if (bVar2) {\n                pIVar13[0x10a] = IVar22;\n              }\n              break;\n            }\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            puVar9 = puVar9 + 8;\n          } while (prVar35 != prVar28);" do (compound_statement "{\n            if ((*puVar9 & 0x400) != 0) {\n              IVar22 = pIVar15[(int)(pbVar47 + (int)((int)&prVar35[-1].elems + 3))];\n              pIVar13[10] = IVar22;\n              if (bVar2) {\n                pIVar13[0x10a] = IVar22;\n              }\n              break;\n            }\n            prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);\n            puVar9 = puVar9 + 8;\n          }" { (if_statement "if ((*puVar9 & 0x400) != 0) {\n              IVar22 = pIVar15[(int)(pbVar47 + (int)((int)&prVar35[-1].elems + 3))];\n              pIVar13[10] = IVar22;\n              if (bVar2) {\n                pIVar13[0x10a] = IVar22;\n              }\n              break;\n            }" if (parenthesized_expression "((*puVar9 & 0x400) != 0)" ( (binary_expression "(*puVar9 & 0x400) != 0" (parenthesized_expression "(*puVar9 & 0x400)" ( (binary_expression "*puVar9 & 0x400" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n              IVar22 = pIVar15[(int)(pbVar47 + (int)((int)&prVar35[-1].elems + 3))];\n              pIVar13[10] = IVar22;\n              if (bVar2) {\n                pIVar13[0x10a] = IVar22;\n              }\n              break;\n            }" { (expression_statement "IVar22 = pIVar15[(int)(pbVar47 + (int)((int)&prVar35[-1].elems + 3))];" (assignment_expression "IVar22 = pIVar15[(int)(pbVar47 + (int)((int)&prVar35[-1].elems + 3))]" identifier = (subscript_expression "pIVar15[(int)(pbVar47 + (int)((int)&prVar35[-1].elems + 3))]" identifier [ (cast_expression "(int)(pbVar47 + (int)((int)&prVar35[-1].elems + 3))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar47 + (int)((int)&prVar35[-1].elems + 3))" ( (binary_expression "pbVar47 + (int)((int)&prVar35[-1].elems + 3)" identifier + (cast_expression "(int)((int)&prVar35[-1].elems + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&prVar35[-1].elems + 3)" ( (binary_expression "(int)&prVar35[-1].elems + 3" (cast_expression "(int)&prVar35[-1].elems" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar35[-1].elems" & (field_expression "prVar35[-1].elems" (subscript_expression "prVar35[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ))) ])) ;) (expression_statement "pIVar13[10] = IVar22;" (assignment_expression "pIVar13[10] = IVar22" (subscript_expression "pIVar13[10]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (bVar2) {\n                pIVar13[0x10a] = IVar22;\n              }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n                pIVar13[0x10a] = IVar22;\n              }" { (expression_statement "pIVar13[0x10a] = IVar22;" (assignment_expression "pIVar13[0x10a] = IVar22" (subscript_expression "pIVar13[0x10a]" identifier [ number_literal ]) = identifier) ;) })) (break_statement "break;" break ;) })) (expression_statement "prVar35 = (re_node_set *)((int)&prVar35->alloc + 1);" (assignment_expression "prVar35 = (re_node_set *)((int)&prVar35->alloc + 1)" identifier = (cast_expression "(re_node_set *)((int)&prVar35->alloc + 1)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar35->alloc + 1)" ( (binary_expression "(int)&prVar35->alloc + 1" (cast_expression "(int)&prVar35->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar35->alloc" & (field_expression "prVar35->alloc" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "puVar9 = puVar9 + 8;" (assignment_expression "puVar9 = puVar9 + 8" identifier = (binary_expression "puVar9 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(prVar35 != prVar28)" ( (binary_expression "prVar35 != prVar28" identifier != identifier) )) ;) (expression_statement "pcVar53 = *(code **)(pcVar52 + 0x1e790);" (assignment_expression "pcVar53 = *(code **)(pcVar52 + 0x1e790)" identifier = (pointer_expression "*(code **)(pcVar52 + 0x1e790)" * (cast_expression "(code **)(pcVar52 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar52 + 0x1e790)" ( (binary_expression "pcVar52 + 0x1e790" identifier + number_literal) ))))) ;) })) (expression_statement "(*pcVar53)(pIVar24);" (call_expression "(*pcVar53)(pIVar24)" (parenthesized_expression "(*pcVar53)" ( (pointer_expression "*pcVar53" * identifier) )) (argument_list "(pIVar24)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar52 + 0x1e790))(iStack_148);" (call_expression "(**(code **)(pcVar52 + 0x1e790))(iStack_148)" (parenthesized_expression "(**(code **)(pcVar52 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar52 + 0x1e790)" * (pointer_expression "*(code **)(pcVar52 + 0x1e790)" * (cast_expression "(code **)(pcVar52 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar52 + 0x1e790)" ( (binary_expression "pcVar52 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(iStack_148)" ( identifier ))) ;) (expression_statement "iVar45 = iVar29;" (assignment_expression "iVar45 = iVar29" identifier = identifier) ;) (do_statement "do {\n          iVar46 = iVar45 + 0xc;\n          (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n          iVar45 = iVar46;\n        } while (iVar29 + (int)prVar28 * 0xc != iVar46);" do (compound_statement "{\n          iVar46 = iVar45 + 0xc;\n          (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n          iVar45 = iVar46;\n        }" { (expression_statement "iVar46 = iVar45 + 0xc;" (assignment_expression "iVar46 = iVar45 + 0xc" identifier = (binary_expression "iVar45 + 0xc" identifier + number_literal)) ;) (expression_statement "(**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));" (call_expression "(**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8))" (parenthesized_expression "(**(code **)(pcVar52 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar52 + 0x1e790)" * (pointer_expression "*(code **)(pcVar52 + 0x1e790)" * (cast_expression "(code **)(pcVar52 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar52 + 0x1e790)" ( (binary_expression "pcVar52 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar45 + 8))" ( (pointer_expression "*(undefined4 *)(iVar45 + 8)" * (cast_expression "(undefined4 *)(iVar45 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar45 + 8)" ( (binary_expression "iVar45 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "iVar45 = iVar46;" (assignment_expression "iVar45 = iVar46" identifier = identifier) ;) }) while (parenthesized_expression "(iVar29 + (int)prVar28 * 0xc != iVar46)" ( (binary_expression "iVar29 + (int)prVar28 * 0xc != iVar46" (binary_expression "iVar29 + (int)prVar28 * 0xc" identifier + (binary_expression "(int)prVar28 * 0xc" (cast_expression "(int)prVar28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) != identifier) )) ;) (expression_statement "(**(code **)(pcVar52 + 0x1e790))(iVar29);" (call_expression "(**(code **)(pcVar52 + 0x1e790))(iVar29)" (parenthesized_expression "(**(code **)(pcVar52 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar52 + 0x1e790)" * (pointer_expression "*(code **)(pcVar52 + 0x1e790)" * (cast_expression "(code **)(pcVar52 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar52 + 0x1e790)" ( (binary_expression "pcVar52 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(iVar29)" ( identifier ))) ;) (expression_statement "rVar5 = _REG_NOMATCH;" (assignment_expression "rVar5 = _REG_NOMATCH" identifier = identifier) ;) (goto_statement "goto LAB_0001e000;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_0001e674:\n    (**(code **)(pcVar52 + 0x1e790))(iVar45);" statement_identifier : (expression_statement "(**(code **)(pcVar52 + 0x1e790))(iVar45);" (call_expression "(**(code **)(pcVar52 + 0x1e790))(iVar45)" (parenthesized_expression "(**(code **)(pcVar52 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar52 + 0x1e790)" * (pointer_expression "*(code **)(pcVar52 + 0x1e790)" * (cast_expression "(code **)(pcVar52 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar52 + 0x1e790)" ( (binary_expression "pcVar52 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(iVar45)" ( identifier ))) ;)) (expression_statement "iVar45 = iVar29;" (assignment_expression "iVar45 = iVar29" identifier = identifier) ;) (do_statement "do {\n      iVar46 = iVar45 + 0xc;\n      (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n      iVar45 = iVar46;\n    } while (iVar46 != (int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29);" do (compound_statement "{\n      iVar46 = iVar45 + 0xc;\n      (**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));\n      iVar45 = iVar46;\n    }" { (expression_statement "iVar46 = iVar45 + 0xc;" (assignment_expression "iVar46 = iVar45 + 0xc" identifier = (binary_expression "iVar45 + 0xc" identifier + number_literal)) ;) (expression_statement "(**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8));" (call_expression "(**(code **)(pcVar52 + 0x1e790))(*(undefined4 *)(iVar45 + 8))" (parenthesized_expression "(**(code **)(pcVar52 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar52 + 0x1e790)" * (pointer_expression "*(code **)(pcVar52 + 0x1e790)" * (cast_expression "(code **)(pcVar52 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar52 + 0x1e790)" ( (binary_expression "pcVar52 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar45 + 8))" ( (pointer_expression "*(undefined4 *)(iVar45 + 8)" * (cast_expression "(undefined4 *)(iVar45 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar45 + 8)" ( (binary_expression "iVar45 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "iVar45 = iVar46;" (assignment_expression "iVar45 = iVar46" identifier = identifier) ;) }) while (parenthesized_expression "(iVar46 != (int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29)" ( (binary_expression "iVar46 != (int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29" identifier != (binary_expression "(int)((int)&prVar28->alloc + iStack_178) * 4 + iVar29" (binary_expression "(int)((int)&prVar28->alloc + iStack_178) * 4" (cast_expression "(int)((int)&prVar28->alloc + iStack_178)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&prVar28->alloc + iStack_178)" ( (binary_expression "(int)&prVar28->alloc + iStack_178" (cast_expression "(int)&prVar28->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar28->alloc" & (field_expression "prVar28->alloc" identifier -> field_identifier))) + identifier) ))) * number_literal) + identifier)) )) ;) (expression_statement "(**(code **)(pcVar52 + 0x1e790))(iVar29);" (call_expression "(**(code **)(pcVar52 + 0x1e790))(iVar29)" (parenthesized_expression "(**(code **)(pcVar52 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar52 + 0x1e790)" * (pointer_expression "*(code **)(pcVar52 + 0x1e790)" * (cast_expression "(code **)(pcVar52 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar52 + 0x1e790)" ( (binary_expression "pcVar52 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(iVar29)" ( identifier ))) ;) (labeled_statement "LAB_0001dffc:\n    rVar5 = _REG_NOERROR;" statement_identifier : (expression_statement "rVar5 = _REG_NOERROR;" (assignment_expression "rVar5 = _REG_NOERROR" identifier = identifier) ;)) (goto_statement "goto LAB_0001e000;" goto statement_identifier ;) }))) (expression_statement "(**(code **)(pcVar52 + 0x1e790))(iVar29);" (call_expression "(**(code **)(pcVar52 + 0x1e790))(iVar29)" (parenthesized_expression "(**(code **)(pcVar52 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar52 + 0x1e790)" * (pointer_expression "*(code **)(pcVar52 + 0x1e790)" * (cast_expression "(code **)(pcVar52 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar52 + 0x1e790)" ( (binary_expression "pcVar52 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(iVar29)" ( identifier ))) ;) (if_statement "if (prVar28 != (re_node_set *)0x0) {\n    rVar5 = _REG_NOERROR;\n    goto LAB_0001e000;\n  }" if (parenthesized_expression "(prVar28 != (re_node_set *)0x0)" ( (binary_expression "prVar28 != (re_node_set *)0x0" identifier != (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    rVar5 = _REG_NOERROR;\n    goto LAB_0001e000;\n  }" { (expression_statement "rVar5 = _REG_NOERROR;" (assignment_expression "rVar5 = _REG_NOERROR" identifier = identifier) ;) (goto_statement "goto LAB_0001e000;" goto statement_identifier ;) })) (labeled_statement "LAB_0001e824:\n  prVar35 = (re_node_set *)0x100;" statement_identifier : (expression_statement "prVar35 = (re_node_set *)0x100;" (assignment_expression "prVar35 = (re_node_set *)0x100" identifier = (cast_expression "(re_node_set *)0x100" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pIVar24 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4);" (assignment_expression "pIVar24 = (Idx *)(**(code **)(pcVar52 + 0x1e688))(4)" identifier = (cast_expression "(Idx *)(**(code **)(pcVar52 + 0x1e688))(4)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar52 + 0x1e688))(4)" (parenthesized_expression "(**(code **)(pcVar52 + 0x1e688))" ( (pointer_expression "**(code **)(pcVar52 + 0x1e688)" * (pointer_expression "*(code **)(pcVar52 + 0x1e688)" * (cast_expression "(code **)(pcVar52 + 0x1e688)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar52 + 0x1e688)" ( (binary_expression "pcVar52 + 0x1e688" identifier + number_literal) ))))) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "prVar18[3].elems = pIVar24;" (assignment_expression "prVar18[3].elems = pIVar24" (field_expression "prVar18[3].elems" (subscript_expression "prVar18[3]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "rVar5 = (reg_errcode_t)(pIVar24 != (Idx *)0x0);" (assignment_expression "rVar5 = (reg_errcode_t)(pIVar24 != (Idx *)0x0)" identifier = (call_expression "(reg_errcode_t)(pIVar24 != (Idx *)0x0)" (parenthesized_expression "(reg_errcode_t)" ( identifier )) (argument_list "(pIVar24 != (Idx *)0x0)" ( (binary_expression "pIVar24 != (Idx *)0x0" identifier != (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ;) (labeled_statement "LAB_0001e000:\n  if (prStack_e4 == (re_dfa_t *)*piVar8) {\n    return rVar5;\n  }" statement_identifier : (if_statement "if (prStack_e4 == (re_dfa_t *)*piVar8) {\n    return rVar5;\n  }" if (parenthesized_expression "(prStack_e4 == (re_dfa_t *)*piVar8)" ( (binary_expression "prStack_e4 == (re_dfa_t *)*piVar8" identifier == (cast_expression "(re_dfa_t *)*piVar8" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) )) (compound_statement "{\n    return rVar5;\n  }" { (return_statement "return rVar5;" return identifier ;) }))) (expression_statement "pcVar52 = *(code **)(pcVar52 + 0x1e764);" (assignment_expression "pcVar52 = *(code **)(pcVar52 + 0x1e764)" identifier = (pointer_expression "*(code **)(pcVar52 + 0x1e764)" * (cast_expression "(code **)(pcVar52 + 0x1e764)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar52 + 0x1e764)" ( (binary_expression "pcVar52 + 0x1e764" identifier + number_literal) ))))) ;) (expression_statement "prVar21 = prStack_e4;" (assignment_expression "prVar21 = prStack_e4" identifier = identifier) ;) (expression_statement "(*pcVar52)();" (call_expression "(*pcVar52)()" (parenthesized_expression "(*pcVar52)" ( (pointer_expression "*pcVar52" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (*(uchar *)&prVar35[2].alloc == '\x10') {\n    IVar22 = ((Idx *)prVar35->nelem)[7];\n    prVar35[1].alloc = ((Idx *)prVar35->nelem)[3];\n    prVar35[2].nelem = IVar22;\n    return _REG_NOERROR;\n  }" if (parenthesized_expression "(*(uchar *)&prVar35[2].alloc == '\x10')" ( (binary_expression "*(uchar *)&prVar35[2].alloc == '\x10'" (pointer_expression "*(uchar *)&prVar35[2].alloc" * (cast_expression "(uchar *)&prVar35[2].alloc" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar35[2].alloc" & (field_expression "prVar35[2].alloc" (subscript_expression "prVar35[2]" identifier [ number_literal ]) . field_identifier)))) == (char_literal "'\x10'" ' escape_sequence ')) )) (compound_statement "{\n    IVar22 = ((Idx *)prVar35->nelem)[7];\n    prVar35[1].alloc = ((Idx *)prVar35->nelem)[3];\n    prVar35[2].nelem = IVar22;\n    return _REG_NOERROR;\n  }" { (expression_statement "IVar22 = ((Idx *)prVar35->nelem)[7];" (assignment_expression "IVar22 = ((Idx *)prVar35->nelem)[7]" identifier = (subscript_expression "((Idx *)prVar35->nelem)[7]" (parenthesized_expression "((Idx *)prVar35->nelem)" ( (cast_expression "(Idx *)prVar35->nelem" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prVar35->nelem" identifier -> field_identifier)) )) [ number_literal ])) ;) (expression_statement "prVar35[1].alloc = ((Idx *)prVar35->nelem)[3];" (assignment_expression "prVar35[1].alloc = ((Idx *)prVar35->nelem)[3]" (field_expression "prVar35[1].alloc" (subscript_expression "prVar35[1]" identifier [ number_literal ]) . field_identifier) = (subscript_expression "((Idx *)prVar35->nelem)[3]" (parenthesized_expression "((Idx *)prVar35->nelem)" ( (cast_expression "(Idx *)prVar35->nelem" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prVar35->nelem" identifier -> field_identifier)) )) [ number_literal ])) ;) (expression_statement "prVar35[2].nelem = IVar22;" (assignment_expression "prVar35[2].nelem = IVar22" (field_expression "prVar35[2].nelem" (subscript_expression "prVar35[2]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (return_statement "return _REG_NOERROR;" return identifier ;) })) (expression_statement "prVar35[1].alloc = (Idx)prVar35;" (assignment_expression "prVar35[1].alloc = (Idx)prVar35" (field_expression "prVar35[1].alloc" (subscript_expression "prVar35[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Idx)prVar35" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "token.opr.sbcset = (re_bitset_ptr_t)(pcVar52 + 0x25764);" (assignment_expression "token.opr.sbcset = (re_bitset_ptr_t)(pcVar52 + 0x25764)" (field_expression "token.opr.sbcset" (field_expression "token.opr" identifier . field_identifier) . field_identifier) = (call_expression "(re_bitset_ptr_t)(pcVar52 + 0x25764)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(pcVar52 + 0x25764)" ( (binary_expression "pcVar52 + 0x25764" identifier + number_literal) )))) ;) (expression_statement "token._4_4_ = in_stack_fffffe4c;" (assignment_expression "token._4_4_ = in_stack_fffffe4c" (field_expression "token._4_4_" identifier . field_identifier) = identifier) ;) (expression_statement "IVar22 = re_dfa_add_node(prVar21,token);" (assignment_expression "IVar22 = re_dfa_add_node(prVar21,token)" identifier = (call_expression "re_dfa_add_node(prVar21,token)" identifier (argument_list "(prVar21,token)" ( identifier , identifier )))) ;) (expression_statement "prVar35[2].nelem = IVar22;" (assignment_expression "prVar35[2].nelem = IVar22" (field_expression "prVar35[2].nelem" (subscript_expression "prVar35[2]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (if_statement "if (IVar22 == -1) {\n    rVar5 = _REG_ESPACE;\n  }\n  else {\n    if (*(uchar *)&prVar35[2].alloc == '\f') {\n      *(uint *)&prVar21->nodes[IVar22].field_0x4 =\n           *(uint *)&prVar21->nodes[IVar22].field_0x4 & 0xff003fff |\n           ((uint)prVar35[1].elems & 0x3ff) << 0xe;\n      return _REG_NOERROR;\n    }\n    rVar5 = _REG_NOERROR;\n  }" if (parenthesized_expression "(IVar22 == -1)" ( (binary_expression "IVar22 == -1" identifier == number_literal) )) (compound_statement "{\n    rVar5 = _REG_ESPACE;\n  }" { (expression_statement "rVar5 = _REG_ESPACE;" (assignment_expression "rVar5 = _REG_ESPACE" identifier = identifier) ;) }) (else_clause "else {\n    if (*(uchar *)&prVar35[2].alloc == '\f') {\n      *(uint *)&prVar21->nodes[IVar22].field_0x4 =\n           *(uint *)&prVar21->nodes[IVar22].field_0x4 & 0xff003fff |\n           ((uint)prVar35[1].elems & 0x3ff) << 0xe;\n      return _REG_NOERROR;\n    }\n    rVar5 = _REG_NOERROR;\n  }" else (compound_statement "{\n    if (*(uchar *)&prVar35[2].alloc == '\f') {\n      *(uint *)&prVar21->nodes[IVar22].field_0x4 =\n           *(uint *)&prVar21->nodes[IVar22].field_0x4 & 0xff003fff |\n           ((uint)prVar35[1].elems & 0x3ff) << 0xe;\n      return _REG_NOERROR;\n    }\n    rVar5 = _REG_NOERROR;\n  }" { (if_statement "if (*(uchar *)&prVar35[2].alloc == '\f') {\n      *(uint *)&prVar21->nodes[IVar22].field_0x4 =\n           *(uint *)&prVar21->nodes[IVar22].field_0x4 & 0xff003fff |\n           ((uint)prVar35[1].elems & 0x3ff) << 0xe;\n      return _REG_NOERROR;\n    }" if (parenthesized_expression "(*(uchar *)&prVar35[2].alloc == '\f')" ( (binary_expression "*(uchar *)&prVar35[2].alloc == '\f'" (pointer_expression "*(uchar *)&prVar35[2].alloc" * (cast_expression "(uchar *)&prVar35[2].alloc" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar35[2].alloc" & (field_expression "prVar35[2].alloc" (subscript_expression "prVar35[2]" identifier [ number_literal ]) . field_identifier)))) == (char_literal "'\f'" ' escape_sequence ')) )) (compound_statement "{\n      *(uint *)&prVar21->nodes[IVar22].field_0x4 =\n           *(uint *)&prVar21->nodes[IVar22].field_0x4 & 0xff003fff |\n           ((uint)prVar35[1].elems & 0x3ff) << 0xe;\n      return _REG_NOERROR;\n    }" { (expression_statement "*(uint *)&prVar21->nodes[IVar22].field_0x4 =\n           *(uint *)&prVar21->nodes[IVar22].field_0x4 & 0xff003fff |\n           ((uint)prVar35[1].elems & 0x3ff) << 0xe;" (assignment_expression "*(uint *)&prVar21->nodes[IVar22].field_0x4 =\n           *(uint *)&prVar21->nodes[IVar22].field_0x4 & 0xff003fff |\n           ((uint)prVar35[1].elems & 0x3ff) << 0xe" (pointer_expression "*(uint *)&prVar21->nodes[IVar22].field_0x4" * (cast_expression "(uint *)&prVar21->nodes[IVar22].field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar21->nodes[IVar22].field_0x4" & (field_expression "prVar21->nodes[IVar22].field_0x4" (subscript_expression "prVar21->nodes[IVar22]" (field_expression "prVar21->nodes" identifier -> field_identifier) [ identifier ]) . field_identifier)))) = (binary_expression "*(uint *)&prVar21->nodes[IVar22].field_0x4 & 0xff003fff |\n           ((uint)prVar35[1].elems & 0x3ff) << 0xe" (binary_expression "*(uint *)&prVar21->nodes[IVar22].field_0x4 & 0xff003fff" (pointer_expression "*(uint *)&prVar21->nodes[IVar22].field_0x4" * (cast_expression "(uint *)&prVar21->nodes[IVar22].field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar21->nodes[IVar22].field_0x4" & (field_expression "prVar21->nodes[IVar22].field_0x4" (subscript_expression "prVar21->nodes[IVar22]" (field_expression "prVar21->nodes" identifier -> field_identifier) [ identifier ]) . field_identifier)))) & number_literal) | (binary_expression "((uint)prVar35[1].elems & 0x3ff) << 0xe" (parenthesized_expression "((uint)prVar35[1].elems & 0x3ff)" ( (binary_expression "(uint)prVar35[1].elems & 0x3ff" (cast_expression "(uint)prVar35[1].elems" ( (type_descriptor "uint" type_identifier) ) (field_expression "prVar35[1].elems" (subscript_expression "prVar35[1]" identifier [ number_literal ]) . field_identifier)) & number_literal) )) << number_literal))) ;) (return_statement "return _REG_NOERROR;" return identifier ;) })) (expression_statement "rVar5 = _REG_NOERROR;" (assignment_expression "rVar5 = _REG_NOERROR" identifier = identifier) ;) }))) (return_statement "return rVar5;" return identifier ;) })))
(translation_unit "uint ******* FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)\n\n{\n  byte *pbVar1;\n  byte bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  char cVar15;\n  int iVar5;\n  int *piVar6;\n  uint *puVar7;\n  byte *pbVar8;\n  undefined4 *puVar9;\n  code *pcVar10;\n  int **ppiVar11;\n  int **ppiVar12;\n  uint ******ppppppuVar13;\n  uint *puVar14;\n  uint *******pppppppuVar16;\n  undefined4 *puVar17;\n  uint *******pppppppuVar18;\n  uint *******pppppppuVar19;\n  uint ******ppppppuVar20;\n  undefined4 *puVar21;\n  uint *******pppppppuVar22;\n  int iVar23;\n  uint *******pppppppuVar24;\n  int iVar25;\n  uint uVar26;\n  undefined4 *puVar27;\n  uint *******pppppppuVar28;\n  uint uVar29;\n  uint ****ppppuVar30;\n  uint *****pppppuVar31;\n  uint ******ppppppuVar32;\n  uint *puVar33;\n  uint uVar34;\n  int iVar35;\n  uint ******ppppppuVar36;\n  int **ppiVar37;\n  uint *****pppppuVar38;\n  int *piVar39;\n  uint *******pppppppuVar40;\n  uint *******unaff_s2;\n  uint *******unaff_s3;\n  int iVar41;\n  uint *******unaff_s7;\n  int iVar42;\n  undefined *puVar43;\n  code *pcVar44;\n  undefined *puVar45;\n  uint *******unaff_s8;\n  code *pcVar46;\n  undefined4 uVar47;\n  int iStack_184;\n  int iStack_178;\n  int iStack_154;\n  byte *pbStack_150;\n  undefined4 uStack_14c;\n  int iStack_148;\n  uint *******pppppppuStack_144;\n  uint uStack_140;\n  uint uStack_13c;\n  uint uStack_138;\n  uint uStack_134;\n  uint uStack_130;\n  uint uStack_12c;\n  uint uStack_128;\n  uint ******ppppppuStack_124;\n  uint uStack_120;\n  uint uStack_11c;\n  uint uStack_118;\n  uint uStack_114;\n  uint uStack_110;\n  uint uStack_10c;\n  uint uStack_108;\n  int *piStack_104;\n  uint uStack_100;\n  uint uStack_fc;\n  uint uStack_f8;\n  uint uStack_f4;\n  uint uStack_f0;\n  uint uStack_ec;\n  uint uStack_e8;\n  int *piStack_e4;\n  int *piStack_e0;\n  uint ******ppppppuStack_dc;\n  uint *******pppppppuStack_d8;\n  uint *******pppppppuStack_d4;\n  int iStack_d0;\n  uint *******pppppppuStack_cc;\n  uint *******pppppppuStack_c8;\n  uint *******pppppppuStack_c4;\n  uint *******pppppppuStack_c0;\n  undefined4 uStack_bc;\n  undefined *puStack_a8;\n  uint *******pppppppuStack_a0;\n  undefined4 *puStack_9c;\n  uint ******ppppppuStack_98;\n  undefined4 uStack_94;\n  uint ******ppppppuStack_90;\n  uint *******pppppppuStack_8c;\n  int *piStack_88;\n  uint *******pppppppuStack_84;\n  uint *******pppppppuStack_80;\n  uint *******pppppppuStack_7c;\n  undefined *puStack_78;\n  uint *******pppppppuStack_74;\n  uint *******pppppppuStack_70;\n  uint *******pppppppuStack_6c;\n  uint *******pppppppuStack_68;\n  code *pcStack_64;\n  uint *******local_40;\n  int local_3c;\n  int local_38;\n  uint ******appppppuStack_34 [2];\n  uint *******local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0003c314;\n  local_2c = *(uint ********)PTR___stack_chk_guard_0003c314;\n  pppppppuVar24 = param_3;\n  pppppppuVar40 = (uint *******)((int)param_2 - param_1[6]);\n  if ((int)param_2 < param_1[6]) {\n    if (1 < param_1[0x14]) {\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    pppppppuVar24 = (uint *******)0x6;\n    if (((uint)param_3 & 1) != 0) {\n      pppppppuVar24 = (uint *******)0x4;\n    }\n    param_1[0xc] = param_1[0xb];\n    param_1[0xe] = param_1[0xd];\n    param_1[7] = 0;\n    param_1[6] = 0;\n    param_1[8] = 0;\n    *(undefined1 *)(param_1 + 0x13) = 0;\n    param_1[0xf] = (int)pppppppuVar24;\n    pppppppuVar40 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n      goto LAB_0001d010;\n    }\n    if (param_2 == (uint *******)0x0) goto LAB_0001d128;\nLAB_0001d018:\n    iVar25 = param_1[8];\n    unaff_s2 = (uint *******)param_1[7];\n    if ((int)pppppppuVar40 < iVar25) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);\n        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);\n        param_1[0xf] = iVar25;\n        if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        cVar15 = *(char *)((int)param_1 + 0x4b);\n        if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        param_1[7] = (int)pppppppuVar24;\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        param_1[8] = param_1[8] - (int)pppppppuVar40;\n      }\n      else {\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }\nLAB_0001d090:\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      if (cVar15 == '\0') {\nLAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);\n        param_1[1] = (int)pppppppuVar40;\n      }\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n      if (pppppppuVar22 == (uint *******)0x0) goto LAB_0001d0b4;\nLAB_0001d148:\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }\n      pppppppuVar28 = (uint *******)param_1[0x14];\n      unaff_s8 = (uint *******)param_1[6];\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      param_1[7] = 0;\n      if (pppppppuVar22 == (uint *******)0x0) {\n        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }\n      uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];\n      param_1[8] = 0;\n      if (param_1[0x10] != 0) {\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }\n      pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);\n      if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {\n        pppppppuVar24 = (uint *******)0x0;\n      }\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n      param_1[0xf] = (int)pppppppuVar24;\n      pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n      iVar25 = param_1[0xe] - (int)pppppppuVar40;\n      if (cVar15 == '\0') goto LAB_0001d098;\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n    }\n    if (cVar15 == '\0') {\n      param_1[7] = (int)pppppppuVar16;\n    }\n    else if (*(char *)(param_1 + 0x12) == '\0') {\n      pppppppuVar22 = (uint *******)param_1[0x10];\n      if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }\n    }\n    else {\n      FUN_000187d0(param_1);\n    }\nLAB_0001d0dc:\n    pppppppuVar16 = (uint *******)0x0;\n    param_1[10] = 0;\n  }\n  else {\nLAB_0001d010:\n    if (pppppppuVar40 != (uint *******)0x0) goto LAB_0001d018;\nLAB_0001d128:\n    pppppppuVar28 = (uint *******)param_1[0x14];\n    pppppppuVar16 = (uint *******)param_1[0xc];\n    pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n    param_1[6] = (int)param_2;\n    param_1[0xc] = (int)pppppppuVar16;\n    param_1[0xe] = param_1[0xe];\n    if (pppppppuVar22 != (uint *******)0x0) goto LAB_0001d148;\nLAB_0001d0b4:\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_000188b4(param_1);\n      goto LAB_0001d0dc;\n    }\n    pppppppuVar16 = (uint *******)FUN_00018b3c();\n    if (pppppppuVar16 == (uint *******)0x0) goto LAB_0001d0dc;\n  }\n  if (local_2c == *(uint ********)puVar4) {\n    return pppppppuVar16;\n  }\n  pcVar46 = FUN_0001d8a0;\n  pppppppuVar16 = local_2c;\n  puVar43 = PTR___stack_chk_fail_0003c2f4;\n  (*(code *)PTR___stack_chk_fail_0003c2f4)();\n  puVar45 = puVar43 + 0x26830;\n  puStack_9c = *(undefined4 **)(puVar43 + 0x1ea74);\n  ppppppuStack_98 = (uint ******)0x0;\n  uStack_94 = 0;\n  ppppppuStack_90 = (uint ******)0x0;\n  ppppppuVar20 = pppppppuVar16[7] + (int)pppppppuVar22 * 3;\n  puStack_78 = puVar4;\n  pppppppuStack_8c = (uint *******)*puStack_9c;\n  pppppuVar31 = ppppppuVar20[1];\n  iVar25 = *(int *)(puVar43 + 0x1e948);\n  pppppppuVar18 = pppppppuVar22;\n  puStack_a8 = puVar45;\n  pppppppuStack_a0 = pppppppuVar28;\n  piStack_88 = param_1;\n  pppppppuStack_84 = pppppppuVar40;\n  pppppppuStack_80 = unaff_s2;\n  pppppppuStack_7c = unaff_s3;\n  pppppppuStack_74 = param_2;\n  pppppppuStack_70 = param_3;\n  pppppppuStack_6c = unaff_s7;\n  pppppppuStack_68 = unaff_s8;\n  pcStack_64 = pcVar46;\n  if (0 < (int)pppppuVar31) {\n    pppppppuVar40 = &ppppppuStack_98;\n    param_1 = (int *)0x0;\n    param_2 = (uint *******)(ppppppuVar20 + 2);\n    iVar25 = iVar25 + -0x5d30;\n    param_3 = (uint *******)(*(int *)(puVar43 + 0x1e948) + -20000);\n    do {\n      pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1];\n      if ((pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)) {\n        iVar35 = (int)pppppppuVar28 * 0xc;\n        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;\n        pppppuVar38 = ppppppuVar36[2];\n        pppppppuVar18 = param_2;\n        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);\n        if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }\n      param_1 = (int *)((int)param_1 + 1);\n    } while ((int)param_1 < (int)pppppuVar31);\n    unaff_s2 = pppppppuVar22;\n    unaff_s3 = pppppppuVar24;\n    unaff_s7 = pppppppuVar40;\n    unaff_s8 = pppppppuVar16;\n    if (0 < (int)pppppuVar31) {\n      iVar5 = 0;\n      pppppppuVar22 = pppppppuVar24 + 1;\n      pppppppuVar16 = pppppppuVar24 + 2;\n      pppppppuVar40 = &ppppppuStack_90;\n      do {\n        pppppppuVar19 = pppppppuVar40;\n        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);\n        pppppppuVar28 = pppppppuVar16;\n        if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }\n        iVar5 = iVar5 + 1;\n        pppppppuVar18 = pppppppuVar40;\n        pppppppuVar16 = pppppppuVar28;\n        pppppppuVar40 = pppppppuVar19;\n        puVar45 = puStack_a8;\n      } while (iVar5 < (int)pppppuVar31);\n    }\n  }\n  (**(code **)(puVar45 + -0x7db0))(ppppppuStack_90);\n  pppppppuVar28 = (uint *******)0x0;\n  pppppppuVar22 = unaff_s2;\n  pppppppuVar24 = unaff_s3;\n  pppppppuVar40 = unaff_s7;\n  pppppppuVar16 = unaff_s8;\nLAB_0001db20:\n  if (pppppppuStack_8c == (uint *******)*puStack_9c) {\n    return pppppppuVar28;\n  }\n  pcVar46 = *(code **)(puStack_a8 + -0x7ddc);\n  uVar47 = 0x1db90;\n  pppppppuVar19 = pppppppuStack_8c;\n  (*pcVar46)();\n  piVar6 = *(int **)(pcVar46 + 0x1e784);\n  piStack_e4 = (int *)*piVar6;\n  pppppppuVar28 = pppppppuVar18;\n  piStack_e0 = param_1;\n  ppppppuStack_dc = ppppppuVar20;\n  pppppppuStack_d8 = pppppppuVar22;\n  pppppppuStack_d4 = pppppppuVar24;\n  iStack_d0 = iVar25;\n  pppppppuStack_cc = param_2;\n  pppppppuStack_c8 = param_3;\n  pppppppuStack_c4 = pppppppuVar40;\n  pppppppuStack_c0 = pppppppuVar16;\n  uStack_bc = uVar47;\n  iVar25 = (**(code **)(pcVar46 + 0x1e724))(0x2c00);\n  if (iVar25 == 0) goto LAB_0001dffc;\n  ppppppuVar20 = pppppppuVar18[2];\n  pppppppuVar18[0xb] = (uint ******)0x0;\n  puVar7 = (uint *)(iVar25 + 0xc00);\n  pppppppuVar18[0xc] = (uint ******)0x0;\n  pppppppuStack_144 = (uint *******)0x0;\n  uStack_140 = 0;\n  uStack_13c = 0;\n  uStack_138 = 0;\n  uStack_134 = 0;\n  uStack_130 = 0;\n  uStack_12c = 0;\n  uStack_128 = 0;\n  if (0 < (int)ppppppuVar20) {\n    iVar5 = *(int *)(pcVar46 + 0x1e658);\n    iStack_184 = 0;\n    iVar35 = *(int *)(pcVar46 + 0x1e658);\n    pppppppuVar24 = (uint *******)0x0;\nLAB_0001dc74:\n    ppppppuVar36 = *pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2;\n    bVar2 = *(byte *)(ppppppuVar36 + 1);\n    uVar34 = (uint)((int)ppppppuVar36[1] << 8) >> 0x16;\n    if (bVar2 == 1) {\n      pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5));\n      pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f));\n      *pppppppuVar40 = (uint ******)pppppppuVar28;\nLAB_0001e060:\n      pppppppuVar40 = pppppppuStack_144;\n      if (uVar34 == 0) goto LAB_0001e15c;\n      if ((uVar34 & 0x20) == 0) {\n        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }\n        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      else {\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      pppppppuStack_144 = (uint *******)0x0;\n      uStack_140 = 0;\n      uStack_13c = 0;\n      uStack_138 = 0;\n      uStack_134 = 0;\n      uStack_130 = 0;\n      uStack_12c = 0;\n      uStack_128 = 0;\n    }\n    else {\n      if (bVar2 == 3) {\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }\n      if (bVar2 == 5) {\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      pppppppuVar28 = (uint *******)0xffffffff;\n      if (bVar2 == 7) {\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }\nLAB_0001dcc8:\n    iStack_184 = iStack_184 + 1;\n    if ((int)ppppppuVar20 <= iStack_184) goto code_r0x0001dcdc;\n    goto LAB_0001dc74;\n  }\n  (**(code **)(pcVar46 + 0x1e790))(iVar25);\n  goto LAB_0001e824;\ncode_r0x0001dcdc:\n  if (0 < (int)pppppppuVar24) {\n    pbVar8 = (byte *)((int)pppppppuVar24 + 1);\n    uStack_14c = 0;\n    pbStack_150 = pbVar8;\n    iVar5 = (**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4);\n    iStack_148 = iVar5;\n    if ((iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)) {\n      iStack_178 = (int)pppppppuVar24 << 1;\n    }\n    else {\n      iStack_178 = (int)pppppppuVar24 * 2;\n      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);\n      if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }\n    }\nLAB_0001e674:\n    (**(code **)(pcVar46 + 0x1e790))(iVar5);\n    iVar5 = iVar25;\n    do {\n      iVar35 = iVar5 + 0xc;\n      (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n      iVar5 = iVar35;\n    } while (iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25);\n    (**(code **)(pcVar46 + 0x1e790))(iVar25);\nLAB_0001dffc:\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }\n  (**(code **)(pcVar46 + 0x1e790))(iVar25);\n  if (pppppppuVar24 != (uint *******)0x0) {\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }\nLAB_0001e824:\n  pppppppuVar28 = (uint *******)0x100;\n  ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n  pppppppuVar18[0xb] = ppppppuVar20;\n  pppppppuVar24 = (uint *******)(uint)(ppppppuVar20 != (uint ******)0x0);\nLAB_0001e000:\n  if (piStack_e4 == (int *)*piVar6) {\n    return pppppppuVar24;\n  }\n  piVar6 = piStack_e4;\n  (**(code **)(pcVar46 + 0x1e764))();\n  if (*(byte *)(pppppppuVar28 + 6) == 0x10) {\n    ppppppuVar20 = (uint ******)pppppppuVar28[1][7];\n    pppppppuVar28[3] = (uint ******)pppppppuVar28[1][3];\n    pppppppuVar28[7] = ppppppuVar20;\n    return (uint *******)0x0;\n  }\n  pppppppuVar28[3] = (uint ******)pppppppuVar28;\n  ppppppuVar20 = (uint ******)FUN_00019660();\n  pppppppuVar28[7] = ppppppuVar20;\n  if (ppppppuVar20 == (uint ******)0xffffffff) {\n    pppppppuVar24 = (uint *******)0xc;\n  }\n  else {\n    if (*(byte *)(pppppppuVar28 + 6) == 0xc) {\n      iVar25 = *piVar6 + (int)ppppppuVar20 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;\n      return (uint *******)0x0;\n    }\n    pppppppuVar24 = (uint *******)0x0;\n  }\n  return pppppppuVar24;\n}\n\n" (function_definition "uint ******* FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)\n\n{\n  byte *pbVar1;\n  byte bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  char cVar15;\n  int iVar5;\n  int *piVar6;\n  uint *puVar7;\n  byte *pbVar8;\n  undefined4 *puVar9;\n  code *pcVar10;\n  int **ppiVar11;\n  int **ppiVar12;\n  uint ******ppppppuVar13;\n  uint *puVar14;\n  uint *******pppppppuVar16;\n  undefined4 *puVar17;\n  uint *******pppppppuVar18;\n  uint *******pppppppuVar19;\n  uint ******ppppppuVar20;\n  undefined4 *puVar21;\n  uint *******pppppppuVar22;\n  int iVar23;\n  uint *******pppppppuVar24;\n  int iVar25;\n  uint uVar26;\n  undefined4 *puVar27;\n  uint *******pppppppuVar28;\n  uint uVar29;\n  uint ****ppppuVar30;\n  uint *****pppppuVar31;\n  uint ******ppppppuVar32;\n  uint *puVar33;\n  uint uVar34;\n  int iVar35;\n  uint ******ppppppuVar36;\n  int **ppiVar37;\n  uint *****pppppuVar38;\n  int *piVar39;\n  uint *******pppppppuVar40;\n  uint *******unaff_s2;\n  uint *******unaff_s3;\n  int iVar41;\n  uint *******unaff_s7;\n  int iVar42;\n  undefined *puVar43;\n  code *pcVar44;\n  undefined *puVar45;\n  uint *******unaff_s8;\n  code *pcVar46;\n  undefined4 uVar47;\n  int iStack_184;\n  int iStack_178;\n  int iStack_154;\n  byte *pbStack_150;\n  undefined4 uStack_14c;\n  int iStack_148;\n  uint *******pppppppuStack_144;\n  uint uStack_140;\n  uint uStack_13c;\n  uint uStack_138;\n  uint uStack_134;\n  uint uStack_130;\n  uint uStack_12c;\n  uint uStack_128;\n  uint ******ppppppuStack_124;\n  uint uStack_120;\n  uint uStack_11c;\n  uint uStack_118;\n  uint uStack_114;\n  uint uStack_110;\n  uint uStack_10c;\n  uint uStack_108;\n  int *piStack_104;\n  uint uStack_100;\n  uint uStack_fc;\n  uint uStack_f8;\n  uint uStack_f4;\n  uint uStack_f0;\n  uint uStack_ec;\n  uint uStack_e8;\n  int *piStack_e4;\n  int *piStack_e0;\n  uint ******ppppppuStack_dc;\n  uint *******pppppppuStack_d8;\n  uint *******pppppppuStack_d4;\n  int iStack_d0;\n  uint *******pppppppuStack_cc;\n  uint *******pppppppuStack_c8;\n  uint *******pppppppuStack_c4;\n  uint *******pppppppuStack_c0;\n  undefined4 uStack_bc;\n  undefined *puStack_a8;\n  uint *******pppppppuStack_a0;\n  undefined4 *puStack_9c;\n  uint ******ppppppuStack_98;\n  undefined4 uStack_94;\n  uint ******ppppppuStack_90;\n  uint *******pppppppuStack_8c;\n  int *piStack_88;\n  uint *******pppppppuStack_84;\n  uint *******pppppppuStack_80;\n  uint *******pppppppuStack_7c;\n  undefined *puStack_78;\n  uint *******pppppppuStack_74;\n  uint *******pppppppuStack_70;\n  uint *******pppppppuStack_6c;\n  uint *******pppppppuStack_68;\n  code *pcStack_64;\n  uint *******local_40;\n  int local_3c;\n  int local_38;\n  uint ******appppppuStack_34 [2];\n  uint *******local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0003c314;\n  local_2c = *(uint ********)PTR___stack_chk_guard_0003c314;\n  pppppppuVar24 = param_3;\n  pppppppuVar40 = (uint *******)((int)param_2 - param_1[6]);\n  if ((int)param_2 < param_1[6]) {\n    if (1 < param_1[0x14]) {\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    pppppppuVar24 = (uint *******)0x6;\n    if (((uint)param_3 & 1) != 0) {\n      pppppppuVar24 = (uint *******)0x4;\n    }\n    param_1[0xc] = param_1[0xb];\n    param_1[0xe] = param_1[0xd];\n    param_1[7] = 0;\n    param_1[6] = 0;\n    param_1[8] = 0;\n    *(undefined1 *)(param_1 + 0x13) = 0;\n    param_1[0xf] = (int)pppppppuVar24;\n    pppppppuVar40 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n      goto LAB_0001d010;\n    }\n    if (param_2 == (uint *******)0x0) goto LAB_0001d128;\nLAB_0001d018:\n    iVar25 = param_1[8];\n    unaff_s2 = (uint *******)param_1[7];\n    if ((int)pppppppuVar40 < iVar25) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);\n        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);\n        param_1[0xf] = iVar25;\n        if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        cVar15 = *(char *)((int)param_1 + 0x4b);\n        if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        param_1[7] = (int)pppppppuVar24;\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        param_1[8] = param_1[8] - (int)pppppppuVar40;\n      }\n      else {\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }\nLAB_0001d090:\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      if (cVar15 == '\0') {\nLAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);\n        param_1[1] = (int)pppppppuVar40;\n      }\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n      if (pppppppuVar22 == (uint *******)0x0) goto LAB_0001d0b4;\nLAB_0001d148:\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }\n      pppppppuVar28 = (uint *******)param_1[0x14];\n      unaff_s8 = (uint *******)param_1[6];\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      param_1[7] = 0;\n      if (pppppppuVar22 == (uint *******)0x0) {\n        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }\n      uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];\n      param_1[8] = 0;\n      if (param_1[0x10] != 0) {\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }\n      pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);\n      if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {\n        pppppppuVar24 = (uint *******)0x0;\n      }\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n      param_1[0xf] = (int)pppppppuVar24;\n      pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n      iVar25 = param_1[0xe] - (int)pppppppuVar40;\n      if (cVar15 == '\0') goto LAB_0001d098;\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n    }\n    if (cVar15 == '\0') {\n      param_1[7] = (int)pppppppuVar16;\n    }\n    else if (*(char *)(param_1 + 0x12) == '\0') {\n      pppppppuVar22 = (uint *******)param_1[0x10];\n      if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }\n    }\n    else {\n      FUN_000187d0(param_1);\n    }\nLAB_0001d0dc:\n    pppppppuVar16 = (uint *******)0x0;\n    param_1[10] = 0;\n  }\n  else {\nLAB_0001d010:\n    if (pppppppuVar40 != (uint *******)0x0) goto LAB_0001d018;\nLAB_0001d128:\n    pppppppuVar28 = (uint *******)param_1[0x14];\n    pppppppuVar16 = (uint *******)param_1[0xc];\n    pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n    param_1[6] = (int)param_2;\n    param_1[0xc] = (int)pppppppuVar16;\n    param_1[0xe] = param_1[0xe];\n    if (pppppppuVar22 != (uint *******)0x0) goto LAB_0001d148;\nLAB_0001d0b4:\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_000188b4(param_1);\n      goto LAB_0001d0dc;\n    }\n    pppppppuVar16 = (uint *******)FUN_00018b3c();\n    if (pppppppuVar16 == (uint *******)0x0) goto LAB_0001d0dc;\n  }\n  if (local_2c == *(uint ********)puVar4) {\n    return pppppppuVar16;\n  }\n  pcVar46 = FUN_0001d8a0;\n  pppppppuVar16 = local_2c;\n  puVar43 = PTR___stack_chk_fail_0003c2f4;\n  (*(code *)PTR___stack_chk_fail_0003c2f4)();\n  puVar45 = puVar43 + 0x26830;\n  puStack_9c = *(undefined4 **)(puVar43 + 0x1ea74);\n  ppppppuStack_98 = (uint ******)0x0;\n  uStack_94 = 0;\n  ppppppuStack_90 = (uint ******)0x0;\n  ppppppuVar20 = pppppppuVar16[7] + (int)pppppppuVar22 * 3;\n  puStack_78 = puVar4;\n  pppppppuStack_8c = (uint *******)*puStack_9c;\n  pppppuVar31 = ppppppuVar20[1];\n  iVar25 = *(int *)(puVar43 + 0x1e948);\n  pppppppuVar18 = pppppppuVar22;\n  puStack_a8 = puVar45;\n  pppppppuStack_a0 = pppppppuVar28;\n  piStack_88 = param_1;\n  pppppppuStack_84 = pppppppuVar40;\n  pppppppuStack_80 = unaff_s2;\n  pppppppuStack_7c = unaff_s3;\n  pppppppuStack_74 = param_2;\n  pppppppuStack_70 = param_3;\n  pppppppuStack_6c = unaff_s7;\n  pppppppuStack_68 = unaff_s8;\n  pcStack_64 = pcVar46;\n  if (0 < (int)pppppuVar31) {\n    pppppppuVar40 = &ppppppuStack_98;\n    param_1 = (int *)0x0;\n    param_2 = (uint *******)(ppppppuVar20 + 2);\n    iVar25 = iVar25 + -0x5d30;\n    param_3 = (uint *******)(*(int *)(puVar43 + 0x1e948) + -20000);\n    do {\n      pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1];\n      if ((pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)) {\n        iVar35 = (int)pppppppuVar28 * 0xc;\n        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;\n        pppppuVar38 = ppppppuVar36[2];\n        pppppppuVar18 = param_2;\n        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);\n        if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }\n      param_1 = (int *)((int)param_1 + 1);\n    } while ((int)param_1 < (int)pppppuVar31);\n    unaff_s2 = pppppppuVar22;\n    unaff_s3 = pppppppuVar24;\n    unaff_s7 = pppppppuVar40;\n    unaff_s8 = pppppppuVar16;\n    if (0 < (int)pppppuVar31) {\n      iVar5 = 0;\n      pppppppuVar22 = pppppppuVar24 + 1;\n      pppppppuVar16 = pppppppuVar24 + 2;\n      pppppppuVar40 = &ppppppuStack_90;\n      do {\n        pppppppuVar19 = pppppppuVar40;\n        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);\n        pppppppuVar28 = pppppppuVar16;\n        if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }\n        iVar5 = iVar5 + 1;\n        pppppppuVar18 = pppppppuVar40;\n        pppppppuVar16 = pppppppuVar28;\n        pppppppuVar40 = pppppppuVar19;\n        puVar45 = puStack_a8;\n      } while (iVar5 < (int)pppppuVar31);\n    }\n  }\n  (**(code **)(puVar45 + -0x7db0))(ppppppuStack_90);\n  pppppppuVar28 = (uint *******)0x0;\n  pppppppuVar22 = unaff_s2;\n  pppppppuVar24 = unaff_s3;\n  pppppppuVar40 = unaff_s7;\n  pppppppuVar16 = unaff_s8;\nLAB_0001db20:\n  if (pppppppuStack_8c == (uint *******)*puStack_9c) {\n    return pppppppuVar28;\n  }\n  pcVar46 = *(code **)(puStack_a8 + -0x7ddc);\n  uVar47 = 0x1db90;\n  pppppppuVar19 = pppppppuStack_8c;\n  (*pcVar46)();\n  piVar6 = *(int **)(pcVar46 + 0x1e784);\n  piStack_e4 = (int *)*piVar6;\n  pppppppuVar28 = pppppppuVar18;\n  piStack_e0 = param_1;\n  ppppppuStack_dc = ppppppuVar20;\n  pppppppuStack_d8 = pppppppuVar22;\n  pppppppuStack_d4 = pppppppuVar24;\n  iStack_d0 = iVar25;\n  pppppppuStack_cc = param_2;\n  pppppppuStack_c8 = param_3;\n  pppppppuStack_c4 = pppppppuVar40;\n  pppppppuStack_c0 = pppppppuVar16;\n  uStack_bc = uVar47;\n  iVar25 = (**(code **)(pcVar46 + 0x1e724))(0x2c00);\n  if (iVar25 == 0) goto LAB_0001dffc;\n  ppppppuVar20 = pppppppuVar18[2];\n  pppppppuVar18[0xb] = (uint ******)0x0;\n  puVar7 = (uint *)(iVar25 + 0xc00);\n  pppppppuVar18[0xc] = (uint ******)0x0;\n  pppppppuStack_144 = (uint *******)0x0;\n  uStack_140 = 0;\n  uStack_13c = 0;\n  uStack_138 = 0;\n  uStack_134 = 0;\n  uStack_130 = 0;\n  uStack_12c = 0;\n  uStack_128 = 0;\n  if (0 < (int)ppppppuVar20) {\n    iVar5 = *(int *)(pcVar46 + 0x1e658);\n    iStack_184 = 0;\n    iVar35 = *(int *)(pcVar46 + 0x1e658);\n    pppppppuVar24 = (uint *******)0x0;\nLAB_0001dc74:\n    ppppppuVar36 = *pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2;\n    bVar2 = *(byte *)(ppppppuVar36 + 1);\n    uVar34 = (uint)((int)ppppppuVar36[1] << 8) >> 0x16;\n    if (bVar2 == 1) {\n      pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5));\n      pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f));\n      *pppppppuVar40 = (uint ******)pppppppuVar28;\nLAB_0001e060:\n      pppppppuVar40 = pppppppuStack_144;\n      if (uVar34 == 0) goto LAB_0001e15c;\n      if ((uVar34 & 0x20) == 0) {\n        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }\n        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      else {\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      pppppppuStack_144 = (uint *******)0x0;\n      uStack_140 = 0;\n      uStack_13c = 0;\n      uStack_138 = 0;\n      uStack_134 = 0;\n      uStack_130 = 0;\n      uStack_12c = 0;\n      uStack_128 = 0;\n    }\n    else {\n      if (bVar2 == 3) {\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }\n      if (bVar2 == 5) {\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      pppppppuVar28 = (uint *******)0xffffffff;\n      if (bVar2 == 7) {\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }\nLAB_0001dcc8:\n    iStack_184 = iStack_184 + 1;\n    if ((int)ppppppuVar20 <= iStack_184) goto code_r0x0001dcdc;\n    goto LAB_0001dc74;\n  }\n  (**(code **)(pcVar46 + 0x1e790))(iVar25);\n  goto LAB_0001e824;\ncode_r0x0001dcdc:\n  if (0 < (int)pppppppuVar24) {\n    pbVar8 = (byte *)((int)pppppppuVar24 + 1);\n    uStack_14c = 0;\n    pbStack_150 = pbVar8;\n    iVar5 = (**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4);\n    iStack_148 = iVar5;\n    if ((iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)) {\n      iStack_178 = (int)pppppppuVar24 << 1;\n    }\n    else {\n      iStack_178 = (int)pppppppuVar24 * 2;\n      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);\n      if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }\n    }\nLAB_0001e674:\n    (**(code **)(pcVar46 + 0x1e790))(iVar5);\n    iVar5 = iVar25;\n    do {\n      iVar35 = iVar5 + 0xc;\n      (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n      iVar5 = iVar35;\n    } while (iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25);\n    (**(code **)(pcVar46 + 0x1e790))(iVar25);\nLAB_0001dffc:\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }\n  (**(code **)(pcVar46 + 0x1e790))(iVar25);\n  if (pppppppuVar24 != (uint *******)0x0) {\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }\nLAB_0001e824:\n  pppppppuVar28 = (uint *******)0x100;\n  ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n  pppppppuVar18[0xb] = ppppppuVar20;\n  pppppppuVar24 = (uint *******)(uint)(ppppppuVar20 != (uint ******)0x0);\nLAB_0001e000:\n  if (piStack_e4 == (int *)*piVar6) {\n    return pppppppuVar24;\n  }\n  piVar6 = piStack_e4;\n  (**(code **)(pcVar46 + 0x1e764))();\n  if (*(byte *)(pppppppuVar28 + 6) == 0x10) {\n    ppppppuVar20 = (uint ******)pppppppuVar28[1][7];\n    pppppppuVar28[3] = (uint ******)pppppppuVar28[1][3];\n    pppppppuVar28[7] = ppppppuVar20;\n    return (uint *******)0x0;\n  }\n  pppppppuVar28[3] = (uint ******)pppppppuVar28;\n  ppppppuVar20 = (uint ******)FUN_00019660();\n  pppppppuVar28[7] = ppppppuVar20;\n  if (ppppppuVar20 == (uint ******)0xffffffff) {\n    pppppppuVar24 = (uint *******)0xc;\n  }\n  else {\n    if (*(byte *)(pppppppuVar28 + 6) == 0xc) {\n      iVar25 = *piVar6 + (int)ppppppuVar20 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;\n      return (uint *******)0x0;\n    }\n    pppppppuVar24 = (uint *******)0x0;\n  }\n  return pppppppuVar24;\n}" type_identifier (pointer_declarator "******* FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)" * (pointer_declarator "****** FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)" * (pointer_declarator "***** FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)" * (pointer_declarator "**** FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)" * (pointer_declarator "*** FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)" * (pointer_declarator "** FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)" * (pointer_declarator "* FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)" * (function_declarator "FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)" identifier (parameter_list "(int *param_1,uint *******param_2,uint *******param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *******param_2" type_identifier (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 "uint *******param_3" type_identifier (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)))))))) )))))))))) (compound_statement "{\n  byte *pbVar1;\n  byte bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  char cVar15;\n  int iVar5;\n  int *piVar6;\n  uint *puVar7;\n  byte *pbVar8;\n  undefined4 *puVar9;\n  code *pcVar10;\n  int **ppiVar11;\n  int **ppiVar12;\n  uint ******ppppppuVar13;\n  uint *puVar14;\n  uint *******pppppppuVar16;\n  undefined4 *puVar17;\n  uint *******pppppppuVar18;\n  uint *******pppppppuVar19;\n  uint ******ppppppuVar20;\n  undefined4 *puVar21;\n  uint *******pppppppuVar22;\n  int iVar23;\n  uint *******pppppppuVar24;\n  int iVar25;\n  uint uVar26;\n  undefined4 *puVar27;\n  uint *******pppppppuVar28;\n  uint uVar29;\n  uint ****ppppuVar30;\n  uint *****pppppuVar31;\n  uint ******ppppppuVar32;\n  uint *puVar33;\n  uint uVar34;\n  int iVar35;\n  uint ******ppppppuVar36;\n  int **ppiVar37;\n  uint *****pppppuVar38;\n  int *piVar39;\n  uint *******pppppppuVar40;\n  uint *******unaff_s2;\n  uint *******unaff_s3;\n  int iVar41;\n  uint *******unaff_s7;\n  int iVar42;\n  undefined *puVar43;\n  code *pcVar44;\n  undefined *puVar45;\n  uint *******unaff_s8;\n  code *pcVar46;\n  undefined4 uVar47;\n  int iStack_184;\n  int iStack_178;\n  int iStack_154;\n  byte *pbStack_150;\n  undefined4 uStack_14c;\n  int iStack_148;\n  uint *******pppppppuStack_144;\n  uint uStack_140;\n  uint uStack_13c;\n  uint uStack_138;\n  uint uStack_134;\n  uint uStack_130;\n  uint uStack_12c;\n  uint uStack_128;\n  uint ******ppppppuStack_124;\n  uint uStack_120;\n  uint uStack_11c;\n  uint uStack_118;\n  uint uStack_114;\n  uint uStack_110;\n  uint uStack_10c;\n  uint uStack_108;\n  int *piStack_104;\n  uint uStack_100;\n  uint uStack_fc;\n  uint uStack_f8;\n  uint uStack_f4;\n  uint uStack_f0;\n  uint uStack_ec;\n  uint uStack_e8;\n  int *piStack_e4;\n  int *piStack_e0;\n  uint ******ppppppuStack_dc;\n  uint *******pppppppuStack_d8;\n  uint *******pppppppuStack_d4;\n  int iStack_d0;\n  uint *******pppppppuStack_cc;\n  uint *******pppppppuStack_c8;\n  uint *******pppppppuStack_c4;\n  uint *******pppppppuStack_c0;\n  undefined4 uStack_bc;\n  undefined *puStack_a8;\n  uint *******pppppppuStack_a0;\n  undefined4 *puStack_9c;\n  uint ******ppppppuStack_98;\n  undefined4 uStack_94;\n  uint ******ppppppuStack_90;\n  uint *******pppppppuStack_8c;\n  int *piStack_88;\n  uint *******pppppppuStack_84;\n  uint *******pppppppuStack_80;\n  uint *******pppppppuStack_7c;\n  undefined *puStack_78;\n  uint *******pppppppuStack_74;\n  uint *******pppppppuStack_70;\n  uint *******pppppppuStack_6c;\n  uint *******pppppppuStack_68;\n  code *pcStack_64;\n  uint *******local_40;\n  int local_3c;\n  int local_38;\n  uint ******appppppuStack_34 [2];\n  uint *******local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0003c314;\n  local_2c = *(uint ********)PTR___stack_chk_guard_0003c314;\n  pppppppuVar24 = param_3;\n  pppppppuVar40 = (uint *******)((int)param_2 - param_1[6]);\n  if ((int)param_2 < param_1[6]) {\n    if (1 < param_1[0x14]) {\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    pppppppuVar24 = (uint *******)0x6;\n    if (((uint)param_3 & 1) != 0) {\n      pppppppuVar24 = (uint *******)0x4;\n    }\n    param_1[0xc] = param_1[0xb];\n    param_1[0xe] = param_1[0xd];\n    param_1[7] = 0;\n    param_1[6] = 0;\n    param_1[8] = 0;\n    *(undefined1 *)(param_1 + 0x13) = 0;\n    param_1[0xf] = (int)pppppppuVar24;\n    pppppppuVar40 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n      goto LAB_0001d010;\n    }\n    if (param_2 == (uint *******)0x0) goto LAB_0001d128;\nLAB_0001d018:\n    iVar25 = param_1[8];\n    unaff_s2 = (uint *******)param_1[7];\n    if ((int)pppppppuVar40 < iVar25) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);\n        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);\n        param_1[0xf] = iVar25;\n        if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        cVar15 = *(char *)((int)param_1 + 0x4b);\n        if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        param_1[7] = (int)pppppppuVar24;\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        param_1[8] = param_1[8] - (int)pppppppuVar40;\n      }\n      else {\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }\nLAB_0001d090:\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      if (cVar15 == '\0') {\nLAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);\n        param_1[1] = (int)pppppppuVar40;\n      }\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n      if (pppppppuVar22 == (uint *******)0x0) goto LAB_0001d0b4;\nLAB_0001d148:\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }\n      pppppppuVar28 = (uint *******)param_1[0x14];\n      unaff_s8 = (uint *******)param_1[6];\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      param_1[7] = 0;\n      if (pppppppuVar22 == (uint *******)0x0) {\n        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }\n      uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];\n      param_1[8] = 0;\n      if (param_1[0x10] != 0) {\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }\n      pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);\n      if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {\n        pppppppuVar24 = (uint *******)0x0;\n      }\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n      param_1[0xf] = (int)pppppppuVar24;\n      pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n      iVar25 = param_1[0xe] - (int)pppppppuVar40;\n      if (cVar15 == '\0') goto LAB_0001d098;\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n    }\n    if (cVar15 == '\0') {\n      param_1[7] = (int)pppppppuVar16;\n    }\n    else if (*(char *)(param_1 + 0x12) == '\0') {\n      pppppppuVar22 = (uint *******)param_1[0x10];\n      if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }\n    }\n    else {\n      FUN_000187d0(param_1);\n    }\nLAB_0001d0dc:\n    pppppppuVar16 = (uint *******)0x0;\n    param_1[10] = 0;\n  }\n  else {\nLAB_0001d010:\n    if (pppppppuVar40 != (uint *******)0x0) goto LAB_0001d018;\nLAB_0001d128:\n    pppppppuVar28 = (uint *******)param_1[0x14];\n    pppppppuVar16 = (uint *******)param_1[0xc];\n    pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n    param_1[6] = (int)param_2;\n    param_1[0xc] = (int)pppppppuVar16;\n    param_1[0xe] = param_1[0xe];\n    if (pppppppuVar22 != (uint *******)0x0) goto LAB_0001d148;\nLAB_0001d0b4:\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_000188b4(param_1);\n      goto LAB_0001d0dc;\n    }\n    pppppppuVar16 = (uint *******)FUN_00018b3c();\n    if (pppppppuVar16 == (uint *******)0x0) goto LAB_0001d0dc;\n  }\n  if (local_2c == *(uint ********)puVar4) {\n    return pppppppuVar16;\n  }\n  pcVar46 = FUN_0001d8a0;\n  pppppppuVar16 = local_2c;\n  puVar43 = PTR___stack_chk_fail_0003c2f4;\n  (*(code *)PTR___stack_chk_fail_0003c2f4)();\n  puVar45 = puVar43 + 0x26830;\n  puStack_9c = *(undefined4 **)(puVar43 + 0x1ea74);\n  ppppppuStack_98 = (uint ******)0x0;\n  uStack_94 = 0;\n  ppppppuStack_90 = (uint ******)0x0;\n  ppppppuVar20 = pppppppuVar16[7] + (int)pppppppuVar22 * 3;\n  puStack_78 = puVar4;\n  pppppppuStack_8c = (uint *******)*puStack_9c;\n  pppppuVar31 = ppppppuVar20[1];\n  iVar25 = *(int *)(puVar43 + 0x1e948);\n  pppppppuVar18 = pppppppuVar22;\n  puStack_a8 = puVar45;\n  pppppppuStack_a0 = pppppppuVar28;\n  piStack_88 = param_1;\n  pppppppuStack_84 = pppppppuVar40;\n  pppppppuStack_80 = unaff_s2;\n  pppppppuStack_7c = unaff_s3;\n  pppppppuStack_74 = param_2;\n  pppppppuStack_70 = param_3;\n  pppppppuStack_6c = unaff_s7;\n  pppppppuStack_68 = unaff_s8;\n  pcStack_64 = pcVar46;\n  if (0 < (int)pppppuVar31) {\n    pppppppuVar40 = &ppppppuStack_98;\n    param_1 = (int *)0x0;\n    param_2 = (uint *******)(ppppppuVar20 + 2);\n    iVar25 = iVar25 + -0x5d30;\n    param_3 = (uint *******)(*(int *)(puVar43 + 0x1e948) + -20000);\n    do {\n      pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1];\n      if ((pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)) {\n        iVar35 = (int)pppppppuVar28 * 0xc;\n        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;\n        pppppuVar38 = ppppppuVar36[2];\n        pppppppuVar18 = param_2;\n        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);\n        if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }\n      param_1 = (int *)((int)param_1 + 1);\n    } while ((int)param_1 < (int)pppppuVar31);\n    unaff_s2 = pppppppuVar22;\n    unaff_s3 = pppppppuVar24;\n    unaff_s7 = pppppppuVar40;\n    unaff_s8 = pppppppuVar16;\n    if (0 < (int)pppppuVar31) {\n      iVar5 = 0;\n      pppppppuVar22 = pppppppuVar24 + 1;\n      pppppppuVar16 = pppppppuVar24 + 2;\n      pppppppuVar40 = &ppppppuStack_90;\n      do {\n        pppppppuVar19 = pppppppuVar40;\n        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);\n        pppppppuVar28 = pppppppuVar16;\n        if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }\n        iVar5 = iVar5 + 1;\n        pppppppuVar18 = pppppppuVar40;\n        pppppppuVar16 = pppppppuVar28;\n        pppppppuVar40 = pppppppuVar19;\n        puVar45 = puStack_a8;\n      } while (iVar5 < (int)pppppuVar31);\n    }\n  }\n  (**(code **)(puVar45 + -0x7db0))(ppppppuStack_90);\n  pppppppuVar28 = (uint *******)0x0;\n  pppppppuVar22 = unaff_s2;\n  pppppppuVar24 = unaff_s3;\n  pppppppuVar40 = unaff_s7;\n  pppppppuVar16 = unaff_s8;\nLAB_0001db20:\n  if (pppppppuStack_8c == (uint *******)*puStack_9c) {\n    return pppppppuVar28;\n  }\n  pcVar46 = *(code **)(puStack_a8 + -0x7ddc);\n  uVar47 = 0x1db90;\n  pppppppuVar19 = pppppppuStack_8c;\n  (*pcVar46)();\n  piVar6 = *(int **)(pcVar46 + 0x1e784);\n  piStack_e4 = (int *)*piVar6;\n  pppppppuVar28 = pppppppuVar18;\n  piStack_e0 = param_1;\n  ppppppuStack_dc = ppppppuVar20;\n  pppppppuStack_d8 = pppppppuVar22;\n  pppppppuStack_d4 = pppppppuVar24;\n  iStack_d0 = iVar25;\n  pppppppuStack_cc = param_2;\n  pppppppuStack_c8 = param_3;\n  pppppppuStack_c4 = pppppppuVar40;\n  pppppppuStack_c0 = pppppppuVar16;\n  uStack_bc = uVar47;\n  iVar25 = (**(code **)(pcVar46 + 0x1e724))(0x2c00);\n  if (iVar25 == 0) goto LAB_0001dffc;\n  ppppppuVar20 = pppppppuVar18[2];\n  pppppppuVar18[0xb] = (uint ******)0x0;\n  puVar7 = (uint *)(iVar25 + 0xc00);\n  pppppppuVar18[0xc] = (uint ******)0x0;\n  pppppppuStack_144 = (uint *******)0x0;\n  uStack_140 = 0;\n  uStack_13c = 0;\n  uStack_138 = 0;\n  uStack_134 = 0;\n  uStack_130 = 0;\n  uStack_12c = 0;\n  uStack_128 = 0;\n  if (0 < (int)ppppppuVar20) {\n    iVar5 = *(int *)(pcVar46 + 0x1e658);\n    iStack_184 = 0;\n    iVar35 = *(int *)(pcVar46 + 0x1e658);\n    pppppppuVar24 = (uint *******)0x0;\nLAB_0001dc74:\n    ppppppuVar36 = *pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2;\n    bVar2 = *(byte *)(ppppppuVar36 + 1);\n    uVar34 = (uint)((int)ppppppuVar36[1] << 8) >> 0x16;\n    if (bVar2 == 1) {\n      pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5));\n      pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f));\n      *pppppppuVar40 = (uint ******)pppppppuVar28;\nLAB_0001e060:\n      pppppppuVar40 = pppppppuStack_144;\n      if (uVar34 == 0) goto LAB_0001e15c;\n      if ((uVar34 & 0x20) == 0) {\n        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }\n        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      else {\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      pppppppuStack_144 = (uint *******)0x0;\n      uStack_140 = 0;\n      uStack_13c = 0;\n      uStack_138 = 0;\n      uStack_134 = 0;\n      uStack_130 = 0;\n      uStack_12c = 0;\n      uStack_128 = 0;\n    }\n    else {\n      if (bVar2 == 3) {\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }\n      if (bVar2 == 5) {\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      pppppppuVar28 = (uint *******)0xffffffff;\n      if (bVar2 == 7) {\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }\nLAB_0001dcc8:\n    iStack_184 = iStack_184 + 1;\n    if ((int)ppppppuVar20 <= iStack_184) goto code_r0x0001dcdc;\n    goto LAB_0001dc74;\n  }\n  (**(code **)(pcVar46 + 0x1e790))(iVar25);\n  goto LAB_0001e824;\ncode_r0x0001dcdc:\n  if (0 < (int)pppppppuVar24) {\n    pbVar8 = (byte *)((int)pppppppuVar24 + 1);\n    uStack_14c = 0;\n    pbStack_150 = pbVar8;\n    iVar5 = (**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4);\n    iStack_148 = iVar5;\n    if ((iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)) {\n      iStack_178 = (int)pppppppuVar24 << 1;\n    }\n    else {\n      iStack_178 = (int)pppppppuVar24 * 2;\n      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);\n      if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }\n    }\nLAB_0001e674:\n    (**(code **)(pcVar46 + 0x1e790))(iVar5);\n    iVar5 = iVar25;\n    do {\n      iVar35 = iVar5 + 0xc;\n      (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n      iVar5 = iVar35;\n    } while (iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25);\n    (**(code **)(pcVar46 + 0x1e790))(iVar25);\nLAB_0001dffc:\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }\n  (**(code **)(pcVar46 + 0x1e790))(iVar25);\n  if (pppppppuVar24 != (uint *******)0x0) {\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }\nLAB_0001e824:\n  pppppppuVar28 = (uint *******)0x100;\n  ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n  pppppppuVar18[0xb] = ppppppuVar20;\n  pppppppuVar24 = (uint *******)(uint)(ppppppuVar20 != (uint ******)0x0);\nLAB_0001e000:\n  if (piStack_e4 == (int *)*piVar6) {\n    return pppppppuVar24;\n  }\n  piVar6 = piStack_e4;\n  (**(code **)(pcVar46 + 0x1e764))();\n  if (*(byte *)(pppppppuVar28 + 6) == 0x10) {\n    ppppppuVar20 = (uint ******)pppppppuVar28[1][7];\n    pppppppuVar28[3] = (uint ******)pppppppuVar28[1][3];\n    pppppppuVar28[7] = ppppppuVar20;\n    return (uint *******)0x0;\n  }\n  pppppppuVar28[3] = (uint ******)pppppppuVar28;\n  ppppppuVar20 = (uint ******)FUN_00019660();\n  pppppppuVar28[7] = ppppppuVar20;\n  if (ppppppuVar20 == (uint ******)0xffffffff) {\n    pppppppuVar24 = (uint *******)0xc;\n  }\n  else {\n    if (*(byte *)(pppppppuVar28 + 6) == 0xc) {\n      iVar25 = *piVar6 + (int)ppppppuVar20 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;\n      return (uint *******)0x0;\n    }\n    pppppppuVar24 = (uint *******)0x0;\n  }\n  return pppppppuVar24;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "char cVar15;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "int **ppiVar11;" primitive_type (pointer_declarator "**ppiVar11" * (pointer_declarator "*ppiVar11" * identifier)) ;) (declaration "int **ppiVar12;" primitive_type (pointer_declarator "**ppiVar12" * (pointer_declarator "*ppiVar12" * identifier)) ;) (declaration "uint ******ppppppuVar13;" type_identifier (pointer_declarator "******ppppppuVar13" * (pointer_declarator "*****ppppppuVar13" * (pointer_declarator "****ppppppuVar13" * (pointer_declarator "***ppppppuVar13" * (pointer_declarator "**ppppppuVar13" * (pointer_declarator "*ppppppuVar13" * identifier)))))) ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint *******pppppppuVar16;" type_identifier (pointer_declarator "*******pppppppuVar16" * (pointer_declarator "******pppppppuVar16" * (pointer_declarator "*****pppppppuVar16" * (pointer_declarator "****pppppppuVar16" * (pointer_declarator "***pppppppuVar16" * (pointer_declarator "**pppppppuVar16" * (pointer_declarator "*pppppppuVar16" * identifier))))))) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "uint *******pppppppuVar18;" type_identifier (pointer_declarator "*******pppppppuVar18" * (pointer_declarator "******pppppppuVar18" * (pointer_declarator "*****pppppppuVar18" * (pointer_declarator "****pppppppuVar18" * (pointer_declarator "***pppppppuVar18" * (pointer_declarator "**pppppppuVar18" * (pointer_declarator "*pppppppuVar18" * identifier))))))) ;) (declaration "uint *******pppppppuVar19;" type_identifier (pointer_declarator "*******pppppppuVar19" * (pointer_declarator "******pppppppuVar19" * (pointer_declarator "*****pppppppuVar19" * (pointer_declarator "****pppppppuVar19" * (pointer_declarator "***pppppppuVar19" * (pointer_declarator "**pppppppuVar19" * (pointer_declarator "*pppppppuVar19" * identifier))))))) ;) (declaration "uint ******ppppppuVar20;" type_identifier (pointer_declarator "******ppppppuVar20" * (pointer_declarator "*****ppppppuVar20" * (pointer_declarator "****ppppppuVar20" * (pointer_declarator "***ppppppuVar20" * (pointer_declarator "**ppppppuVar20" * (pointer_declarator "*ppppppuVar20" * identifier)))))) ;) (declaration "undefined4 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "uint *******pppppppuVar22;" type_identifier (pointer_declarator "*******pppppppuVar22" * (pointer_declarator "******pppppppuVar22" * (pointer_declarator "*****pppppppuVar22" * (pointer_declarator "****pppppppuVar22" * (pointer_declarator "***pppppppuVar22" * (pointer_declarator "**pppppppuVar22" * (pointer_declarator "*pppppppuVar22" * identifier))))))) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "uint *******pppppppuVar24;" type_identifier (pointer_declarator "*******pppppppuVar24" * (pointer_declarator "******pppppppuVar24" * (pointer_declarator "*****pppppppuVar24" * (pointer_declarator "****pppppppuVar24" * (pointer_declarator "***pppppppuVar24" * (pointer_declarator "**pppppppuVar24" * (pointer_declarator "*pppppppuVar24" * identifier))))))) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "undefined4 *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "uint *******pppppppuVar28;" type_identifier (pointer_declarator "*******pppppppuVar28" * (pointer_declarator "******pppppppuVar28" * (pointer_declarator "*****pppppppuVar28" * (pointer_declarator "****pppppppuVar28" * (pointer_declarator "***pppppppuVar28" * (pointer_declarator "**pppppppuVar28" * (pointer_declarator "*pppppppuVar28" * identifier))))))) ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "uint ****ppppuVar30;" type_identifier (pointer_declarator "****ppppuVar30" * (pointer_declarator "***ppppuVar30" * (pointer_declarator "**ppppuVar30" * (pointer_declarator "*ppppuVar30" * identifier)))) ;) (declaration "uint *****pppppuVar31;" type_identifier (pointer_declarator "*****pppppuVar31" * (pointer_declarator "****pppppuVar31" * (pointer_declarator "***pppppuVar31" * (pointer_declarator "**pppppuVar31" * (pointer_declarator "*pppppuVar31" * identifier))))) ;) (declaration "uint ******ppppppuVar32;" type_identifier (pointer_declarator "******ppppppuVar32" * (pointer_declarator "*****ppppppuVar32" * (pointer_declarator "****ppppppuVar32" * (pointer_declarator "***ppppppuVar32" * (pointer_declarator "**ppppppuVar32" * (pointer_declarator "*ppppppuVar32" * identifier)))))) ;) (declaration "uint *puVar33;" type_identifier (pointer_declarator "*puVar33" * identifier) ;) (declaration "uint uVar34;" type_identifier identifier ;) (declaration "int iVar35;" primitive_type identifier ;) (declaration "uint ******ppppppuVar36;" type_identifier (pointer_declarator "******ppppppuVar36" * (pointer_declarator "*****ppppppuVar36" * (pointer_declarator "****ppppppuVar36" * (pointer_declarator "***ppppppuVar36" * (pointer_declarator "**ppppppuVar36" * (pointer_declarator "*ppppppuVar36" * identifier)))))) ;) (declaration "int **ppiVar37;" primitive_type (pointer_declarator "**ppiVar37" * (pointer_declarator "*ppiVar37" * identifier)) ;) (declaration "uint *****pppppuVar38;" type_identifier (pointer_declarator "*****pppppuVar38" * (pointer_declarator "****pppppuVar38" * (pointer_declarator "***pppppuVar38" * (pointer_declarator "**pppppuVar38" * (pointer_declarator "*pppppuVar38" * identifier))))) ;) (declaration "int *piVar39;" primitive_type (pointer_declarator "*piVar39" * identifier) ;) (declaration "uint *******pppppppuVar40;" type_identifier (pointer_declarator "*******pppppppuVar40" * (pointer_declarator "******pppppppuVar40" * (pointer_declarator "*****pppppppuVar40" * (pointer_declarator "****pppppppuVar40" * (pointer_declarator "***pppppppuVar40" * (pointer_declarator "**pppppppuVar40" * (pointer_declarator "*pppppppuVar40" * identifier))))))) ;) (declaration "uint *******unaff_s2;" type_identifier (pointer_declarator "*******unaff_s2" * (pointer_declarator "******unaff_s2" * (pointer_declarator "*****unaff_s2" * (pointer_declarator "****unaff_s2" * (pointer_declarator "***unaff_s2" * (pointer_declarator "**unaff_s2" * (pointer_declarator "*unaff_s2" * identifier))))))) ;) (declaration "uint *******unaff_s3;" type_identifier (pointer_declarator "*******unaff_s3" * (pointer_declarator "******unaff_s3" * (pointer_declarator "*****unaff_s3" * (pointer_declarator "****unaff_s3" * (pointer_declarator "***unaff_s3" * (pointer_declarator "**unaff_s3" * (pointer_declarator "*unaff_s3" * identifier))))))) ;) (declaration "int iVar41;" primitive_type identifier ;) (declaration "uint *******unaff_s7;" type_identifier (pointer_declarator "*******unaff_s7" * (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 "int iVar42;" primitive_type identifier ;) (declaration "undefined *puVar43;" type_identifier (pointer_declarator "*puVar43" * identifier) ;) (declaration "code *pcVar44;" type_identifier (pointer_declarator "*pcVar44" * identifier) ;) (declaration "undefined *puVar45;" type_identifier (pointer_declarator "*puVar45" * identifier) ;) (declaration "uint *******unaff_s8;" type_identifier (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 "code *pcVar46;" type_identifier (pointer_declarator "*pcVar46" * identifier) ;) (declaration "undefined4 uVar47;" type_identifier identifier ;) (declaration "int iStack_184;" primitive_type identifier ;) (declaration "int iStack_178;" primitive_type identifier ;) (declaration "int iStack_154;" primitive_type identifier ;) (declaration "byte *pbStack_150;" type_identifier (pointer_declarator "*pbStack_150" * identifier) ;) (declaration "undefined4 uStack_14c;" type_identifier identifier ;) (declaration "int iStack_148;" primitive_type identifier ;) (declaration "uint *******pppppppuStack_144;" type_identifier (pointer_declarator "*******pppppppuStack_144" * (pointer_declarator "******pppppppuStack_144" * (pointer_declarator "*****pppppppuStack_144" * (pointer_declarator "****pppppppuStack_144" * (pointer_declarator "***pppppppuStack_144" * (pointer_declarator "**pppppppuStack_144" * (pointer_declarator "*pppppppuStack_144" * identifier))))))) ;) (declaration "uint uStack_140;" type_identifier identifier ;) (declaration "uint uStack_13c;" type_identifier identifier ;) (declaration "uint uStack_138;" type_identifier identifier ;) (declaration "uint uStack_134;" type_identifier identifier ;) (declaration "uint uStack_130;" type_identifier identifier ;) (declaration "uint uStack_12c;" type_identifier identifier ;) (declaration "uint uStack_128;" type_identifier identifier ;) (declaration "uint ******ppppppuStack_124;" type_identifier (pointer_declarator "******ppppppuStack_124" * (pointer_declarator "*****ppppppuStack_124" * (pointer_declarator "****ppppppuStack_124" * (pointer_declarator "***ppppppuStack_124" * (pointer_declarator "**ppppppuStack_124" * (pointer_declarator "*ppppppuStack_124" * identifier)))))) ;) (declaration "uint uStack_120;" type_identifier identifier ;) (declaration "uint uStack_11c;" type_identifier identifier ;) (declaration "uint uStack_118;" type_identifier identifier ;) (declaration "uint uStack_114;" type_identifier identifier ;) (declaration "uint uStack_110;" type_identifier identifier ;) (declaration "uint uStack_10c;" type_identifier identifier ;) (declaration "uint uStack_108;" type_identifier identifier ;) (declaration "int *piStack_104;" primitive_type (pointer_declarator "*piStack_104" * identifier) ;) (declaration "uint uStack_100;" type_identifier identifier ;) (declaration "uint uStack_fc;" type_identifier identifier ;) (declaration "uint uStack_f8;" type_identifier identifier ;) (declaration "uint uStack_f4;" type_identifier identifier ;) (declaration "uint uStack_f0;" type_identifier identifier ;) (declaration "uint uStack_ec;" type_identifier identifier ;) (declaration "uint uStack_e8;" type_identifier identifier ;) (declaration "int *piStack_e4;" primitive_type (pointer_declarator "*piStack_e4" * identifier) ;) (declaration "int *piStack_e0;" primitive_type (pointer_declarator "*piStack_e0" * identifier) ;) (declaration "uint ******ppppppuStack_dc;" type_identifier (pointer_declarator "******ppppppuStack_dc" * (pointer_declarator "*****ppppppuStack_dc" * (pointer_declarator "****ppppppuStack_dc" * (pointer_declarator "***ppppppuStack_dc" * (pointer_declarator "**ppppppuStack_dc" * (pointer_declarator "*ppppppuStack_dc" * identifier)))))) ;) (declaration "uint *******pppppppuStack_d8;" type_identifier (pointer_declarator "*******pppppppuStack_d8" * (pointer_declarator "******pppppppuStack_d8" * (pointer_declarator "*****pppppppuStack_d8" * (pointer_declarator "****pppppppuStack_d8" * (pointer_declarator "***pppppppuStack_d8" * (pointer_declarator "**pppppppuStack_d8" * (pointer_declarator "*pppppppuStack_d8" * identifier))))))) ;) (declaration "uint *******pppppppuStack_d4;" type_identifier (pointer_declarator "*******pppppppuStack_d4" * (pointer_declarator "******pppppppuStack_d4" * (pointer_declarator "*****pppppppuStack_d4" * (pointer_declarator "****pppppppuStack_d4" * (pointer_declarator "***pppppppuStack_d4" * (pointer_declarator "**pppppppuStack_d4" * (pointer_declarator "*pppppppuStack_d4" * identifier))))))) ;) (declaration "int iStack_d0;" primitive_type identifier ;) (declaration "uint *******pppppppuStack_cc;" type_identifier (pointer_declarator "*******pppppppuStack_cc" * (pointer_declarator "******pppppppuStack_cc" * (pointer_declarator "*****pppppppuStack_cc" * (pointer_declarator "****pppppppuStack_cc" * (pointer_declarator "***pppppppuStack_cc" * (pointer_declarator "**pppppppuStack_cc" * (pointer_declarator "*pppppppuStack_cc" * identifier))))))) ;) (declaration "uint *******pppppppuStack_c8;" type_identifier (pointer_declarator "*******pppppppuStack_c8" * (pointer_declarator "******pppppppuStack_c8" * (pointer_declarator "*****pppppppuStack_c8" * (pointer_declarator "****pppppppuStack_c8" * (pointer_declarator "***pppppppuStack_c8" * (pointer_declarator "**pppppppuStack_c8" * (pointer_declarator "*pppppppuStack_c8" * identifier))))))) ;) (declaration "uint *******pppppppuStack_c4;" type_identifier (pointer_declarator "*******pppppppuStack_c4" * (pointer_declarator "******pppppppuStack_c4" * (pointer_declarator "*****pppppppuStack_c4" * (pointer_declarator "****pppppppuStack_c4" * (pointer_declarator "***pppppppuStack_c4" * (pointer_declarator "**pppppppuStack_c4" * (pointer_declarator "*pppppppuStack_c4" * identifier))))))) ;) (declaration "uint *******pppppppuStack_c0;" type_identifier (pointer_declarator "*******pppppppuStack_c0" * (pointer_declarator "******pppppppuStack_c0" * (pointer_declarator "*****pppppppuStack_c0" * (pointer_declarator "****pppppppuStack_c0" * (pointer_declarator "***pppppppuStack_c0" * (pointer_declarator "**pppppppuStack_c0" * (pointer_declarator "*pppppppuStack_c0" * identifier))))))) ;) (declaration "undefined4 uStack_bc;" type_identifier identifier ;) (declaration "undefined *puStack_a8;" type_identifier (pointer_declarator "*puStack_a8" * identifier) ;) (declaration "uint *******pppppppuStack_a0;" type_identifier (pointer_declarator "*******pppppppuStack_a0" * (pointer_declarator "******pppppppuStack_a0" * (pointer_declarator "*****pppppppuStack_a0" * (pointer_declarator "****pppppppuStack_a0" * (pointer_declarator "***pppppppuStack_a0" * (pointer_declarator "**pppppppuStack_a0" * (pointer_declarator "*pppppppuStack_a0" * identifier))))))) ;) (declaration "undefined4 *puStack_9c;" type_identifier (pointer_declarator "*puStack_9c" * identifier) ;) (declaration "uint ******ppppppuStack_98;" type_identifier (pointer_declarator "******ppppppuStack_98" * (pointer_declarator "*****ppppppuStack_98" * (pointer_declarator "****ppppppuStack_98" * (pointer_declarator "***ppppppuStack_98" * (pointer_declarator "**ppppppuStack_98" * (pointer_declarator "*ppppppuStack_98" * identifier)))))) ;) (declaration "undefined4 uStack_94;" type_identifier identifier ;) (declaration "uint ******ppppppuStack_90;" type_identifier (pointer_declarator "******ppppppuStack_90" * (pointer_declarator "*****ppppppuStack_90" * (pointer_declarator "****ppppppuStack_90" * (pointer_declarator "***ppppppuStack_90" * (pointer_declarator "**ppppppuStack_90" * (pointer_declarator "*ppppppuStack_90" * identifier)))))) ;) (declaration "uint *******pppppppuStack_8c;" type_identifier (pointer_declarator "*******pppppppuStack_8c" * (pointer_declarator "******pppppppuStack_8c" * (pointer_declarator "*****pppppppuStack_8c" * (pointer_declarator "****pppppppuStack_8c" * (pointer_declarator "***pppppppuStack_8c" * (pointer_declarator "**pppppppuStack_8c" * (pointer_declarator "*pppppppuStack_8c" * identifier))))))) ;) (declaration "int *piStack_88;" primitive_type (pointer_declarator "*piStack_88" * identifier) ;) (declaration "uint *******pppppppuStack_84;" type_identifier (pointer_declarator "*******pppppppuStack_84" * (pointer_declarator "******pppppppuStack_84" * (pointer_declarator "*****pppppppuStack_84" * (pointer_declarator "****pppppppuStack_84" * (pointer_declarator "***pppppppuStack_84" * (pointer_declarator "**pppppppuStack_84" * (pointer_declarator "*pppppppuStack_84" * identifier))))))) ;) (declaration "uint *******pppppppuStack_80;" type_identifier (pointer_declarator "*******pppppppuStack_80" * (pointer_declarator "******pppppppuStack_80" * (pointer_declarator "*****pppppppuStack_80" * (pointer_declarator "****pppppppuStack_80" * (pointer_declarator "***pppppppuStack_80" * (pointer_declarator "**pppppppuStack_80" * (pointer_declarator "*pppppppuStack_80" * identifier))))))) ;) (declaration "uint *******pppppppuStack_7c;" type_identifier (pointer_declarator "*******pppppppuStack_7c" * (pointer_declarator "******pppppppuStack_7c" * (pointer_declarator "*****pppppppuStack_7c" * (pointer_declarator "****pppppppuStack_7c" * (pointer_declarator "***pppppppuStack_7c" * (pointer_declarator "**pppppppuStack_7c" * (pointer_declarator "*pppppppuStack_7c" * identifier))))))) ;) (declaration "undefined *puStack_78;" type_identifier (pointer_declarator "*puStack_78" * identifier) ;) (declaration "uint *******pppppppuStack_74;" type_identifier (pointer_declarator "*******pppppppuStack_74" * (pointer_declarator "******pppppppuStack_74" * (pointer_declarator "*****pppppppuStack_74" * (pointer_declarator "****pppppppuStack_74" * (pointer_declarator "***pppppppuStack_74" * (pointer_declarator "**pppppppuStack_74" * (pointer_declarator "*pppppppuStack_74" * identifier))))))) ;) (declaration "uint *******pppppppuStack_70;" type_identifier (pointer_declarator "*******pppppppuStack_70" * (pointer_declarator "******pppppppuStack_70" * (pointer_declarator "*****pppppppuStack_70" * (pointer_declarator "****pppppppuStack_70" * (pointer_declarator "***pppppppuStack_70" * (pointer_declarator "**pppppppuStack_70" * (pointer_declarator "*pppppppuStack_70" * identifier))))))) ;) (declaration "uint *******pppppppuStack_6c;" type_identifier (pointer_declarator "*******pppppppuStack_6c" * (pointer_declarator "******pppppppuStack_6c" * (pointer_declarator "*****pppppppuStack_6c" * (pointer_declarator "****pppppppuStack_6c" * (pointer_declarator "***pppppppuStack_6c" * (pointer_declarator "**pppppppuStack_6c" * (pointer_declarator "*pppppppuStack_6c" * identifier))))))) ;) (declaration "uint *******pppppppuStack_68;" type_identifier (pointer_declarator "*******pppppppuStack_68" * (pointer_declarator "******pppppppuStack_68" * (pointer_declarator "*****pppppppuStack_68" * (pointer_declarator "****pppppppuStack_68" * (pointer_declarator "***pppppppuStack_68" * (pointer_declarator "**pppppppuStack_68" * (pointer_declarator "*pppppppuStack_68" * identifier))))))) ;) (declaration "code *pcStack_64;" type_identifier (pointer_declarator "*pcStack_64" * identifier) ;) (declaration "uint *******local_40;" type_identifier (pointer_declarator "*******local_40" * (pointer_declarator "******local_40" * (pointer_declarator "*****local_40" * (pointer_declarator "****local_40" * (pointer_declarator "***local_40" * (pointer_declarator "**local_40" * (pointer_declarator "*local_40" * identifier))))))) ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "uint ******appppppuStack_34 [2];" type_identifier (pointer_declarator "******appppppuStack_34 [2]" * (pointer_declarator "*****appppppuStack_34 [2]" * (pointer_declarator "****appppppuStack_34 [2]" * (pointer_declarator "***appppppuStack_34 [2]" * (pointer_declarator "**appppppuStack_34 [2]" * (pointer_declarator "*appppppuStack_34 [2]" * (array_declarator "appppppuStack_34 [2]" identifier [ number_literal ]))))))) ;) (declaration "uint *******local_2c;" type_identifier (pointer_declarator "*******local_2c" * (pointer_declarator "******local_2c" * (pointer_declarator "*****local_2c" * (pointer_declarator "****local_2c" * (pointer_declarator "***local_2c" * (pointer_declarator "**local_2c" * (pointer_declarator "*local_2c" * identifier))))))) ;) (expression_statement "puVar4 = PTR___stack_chk_guard_0003c314;" (assignment_expression "puVar4 = PTR___stack_chk_guard_0003c314" identifier = identifier) ;) (expression_statement "local_2c = *(uint ********)PTR___stack_chk_guard_0003c314;" (assignment_expression "local_2c = *(uint ********)PTR___stack_chk_guard_0003c314" identifier = (pointer_expression "*(uint ********)PTR___stack_chk_guard_0003c314" * (cast_expression "(uint ********)PTR___stack_chk_guard_0003c314" ( (type_descriptor "uint ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) identifier))) ;) (expression_statement "pppppppuVar24 = param_3;" (assignment_expression "pppppppuVar24 = param_3" identifier = identifier) ;) (expression_statement "pppppppuVar40 = (uint *******)((int)param_2 - param_1[6]);" (assignment_expression "pppppppuVar40 = (uint *******)((int)param_2 - param_1[6])" identifier = (cast_expression "(uint *******)((int)param_2 - param_1[6])" ( (type_descriptor "uint *******" type_identifier (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_2 - param_1[6])" ( (binary_expression "(int)param_2 - param_1[6]" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) - (subscript_expression "param_1[6]" identifier [ number_literal ])) )))) ;) (if_statement "if ((int)param_2 < param_1[6]) {\n    if (1 < param_1[0x14]) {\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    pppppppuVar24 = (uint *******)0x6;\n    if (((uint)param_3 & 1) != 0) {\n      pppppppuVar24 = (uint *******)0x4;\n    }\n    param_1[0xc] = param_1[0xb];\n    param_1[0xe] = param_1[0xd];\n    param_1[7] = 0;\n    param_1[6] = 0;\n    param_1[8] = 0;\n    *(undefined1 *)(param_1 + 0x13) = 0;\n    param_1[0xf] = (int)pppppppuVar24;\n    pppppppuVar40 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n      goto LAB_0001d010;\n    }\n    if (param_2 == (uint *******)0x0) goto LAB_0001d128;\nLAB_0001d018:\n    iVar25 = param_1[8];\n    unaff_s2 = (uint *******)param_1[7];\n    if ((int)pppppppuVar40 < iVar25) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);\n        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);\n        param_1[0xf] = iVar25;\n        if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        cVar15 = *(char *)((int)param_1 + 0x4b);\n        if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        param_1[7] = (int)pppppppuVar24;\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        param_1[8] = param_1[8] - (int)pppppppuVar40;\n      }\n      else {\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }\nLAB_0001d090:\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      if (cVar15 == '\0') {\nLAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);\n        param_1[1] = (int)pppppppuVar40;\n      }\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n      if (pppppppuVar22 == (uint *******)0x0) goto LAB_0001d0b4;\nLAB_0001d148:\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }\n      pppppppuVar28 = (uint *******)param_1[0x14];\n      unaff_s8 = (uint *******)param_1[6];\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      param_1[7] = 0;\n      if (pppppppuVar22 == (uint *******)0x0) {\n        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }\n      uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];\n      param_1[8] = 0;\n      if (param_1[0x10] != 0) {\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }\n      pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);\n      if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {\n        pppppppuVar24 = (uint *******)0x0;\n      }\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n      param_1[0xf] = (int)pppppppuVar24;\n      pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n      iVar25 = param_1[0xe] - (int)pppppppuVar40;\n      if (cVar15 == '\0') goto LAB_0001d098;\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n    }\n    if (cVar15 == '\0') {\n      param_1[7] = (int)pppppppuVar16;\n    }\n    else if (*(char *)(param_1 + 0x12) == '\0') {\n      pppppppuVar22 = (uint *******)param_1[0x10];\n      if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }\n    }\n    else {\n      FUN_000187d0(param_1);\n    }\nLAB_0001d0dc:\n    pppppppuVar16 = (uint *******)0x0;\n    param_1[10] = 0;\n  }\n  else {\nLAB_0001d010:\n    if (pppppppuVar40 != (uint *******)0x0) goto LAB_0001d018;\nLAB_0001d128:\n    pppppppuVar28 = (uint *******)param_1[0x14];\n    pppppppuVar16 = (uint *******)param_1[0xc];\n    pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n    param_1[6] = (int)param_2;\n    param_1[0xc] = (int)pppppppuVar16;\n    param_1[0xe] = param_1[0xe];\n    if (pppppppuVar22 != (uint *******)0x0) goto LAB_0001d148;\nLAB_0001d0b4:\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_000188b4(param_1);\n      goto LAB_0001d0dc;\n    }\n    pppppppuVar16 = (uint *******)FUN_00018b3c();\n    if (pppppppuVar16 == (uint *******)0x0) goto LAB_0001d0dc;\n  }" if (parenthesized_expression "((int)param_2 < param_1[6])" ( (binary_expression "(int)param_2 < param_1[6]" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < (subscript_expression "param_1[6]" identifier [ number_literal ])) )) (compound_statement "{\n    if (1 < param_1[0x14]) {\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    pppppppuVar24 = (uint *******)0x6;\n    if (((uint)param_3 & 1) != 0) {\n      pppppppuVar24 = (uint *******)0x4;\n    }\n    param_1[0xc] = param_1[0xb];\n    param_1[0xe] = param_1[0xd];\n    param_1[7] = 0;\n    param_1[6] = 0;\n    param_1[8] = 0;\n    *(undefined1 *)(param_1 + 0x13) = 0;\n    param_1[0xf] = (int)pppppppuVar24;\n    pppppppuVar40 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n      goto LAB_0001d010;\n    }\n    if (param_2 == (uint *******)0x0) goto LAB_0001d128;\nLAB_0001d018:\n    iVar25 = param_1[8];\n    unaff_s2 = (uint *******)param_1[7];\n    if ((int)pppppppuVar40 < iVar25) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);\n        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);\n        param_1[0xf] = iVar25;\n        if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        cVar15 = *(char *)((int)param_1 + 0x4b);\n        if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        param_1[7] = (int)pppppppuVar24;\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        param_1[8] = param_1[8] - (int)pppppppuVar40;\n      }\n      else {\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }\nLAB_0001d090:\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      if (cVar15 == '\0') {\nLAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);\n        param_1[1] = (int)pppppppuVar40;\n      }\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n      if (pppppppuVar22 == (uint *******)0x0) goto LAB_0001d0b4;\nLAB_0001d148:\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }\n      pppppppuVar28 = (uint *******)param_1[0x14];\n      unaff_s8 = (uint *******)param_1[6];\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      param_1[7] = 0;\n      if (pppppppuVar22 == (uint *******)0x0) {\n        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }\n      uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];\n      param_1[8] = 0;\n      if (param_1[0x10] != 0) {\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }\n      pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);\n      if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {\n        pppppppuVar24 = (uint *******)0x0;\n      }\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n      param_1[0xf] = (int)pppppppuVar24;\n      pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n      iVar25 = param_1[0xe] - (int)pppppppuVar40;\n      if (cVar15 == '\0') goto LAB_0001d098;\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n    }\n    if (cVar15 == '\0') {\n      param_1[7] = (int)pppppppuVar16;\n    }\n    else if (*(char *)(param_1 + 0x12) == '\0') {\n      pppppppuVar22 = (uint *******)param_1[0x10];\n      if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }\n    }\n    else {\n      FUN_000187d0(param_1);\n    }\nLAB_0001d0dc:\n    pppppppuVar16 = (uint *******)0x0;\n    param_1[10] = 0;\n  }" { (if_statement "if (1 < param_1[0x14]) {\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }" if (parenthesized_expression "(1 < param_1[0x14])" ( (binary_expression "1 < param_1[0x14]" number_literal < (subscript_expression "param_1[0x14]" identifier [ number_literal ])) )) (compound_statement "{\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }" { (expression_statement "param_1[4] = 0;" (assignment_expression "param_1[4] = 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "pppppppuVar24 = (uint *******)0x6;" (assignment_expression "pppppppuVar24 = (uint *******)0x6" identifier = (cast_expression "(uint *******)0x6" ( (type_descriptor "uint *******" type_identifier (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 (((uint)param_3 & 1) != 0) {\n      pppppppuVar24 = (uint *******)0x4;\n    }" if (parenthesized_expression "(((uint)param_3 & 1) != 0)" ( (binary_expression "((uint)param_3 & 1) != 0" (parenthesized_expression "((uint)param_3 & 1)" ( (binary_expression "(uint)param_3 & 1" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      pppppppuVar24 = (uint *******)0x4;\n    }" { (expression_statement "pppppppuVar24 = (uint *******)0x4;" (assignment_expression "pppppppuVar24 = (uint *******)0x4" identifier = (cast_expression "(uint *******)0x4" ( (type_descriptor "uint *******" type_identifier (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 "param_1[0xc] = param_1[0xb];" (assignment_expression "param_1[0xc] = param_1[0xb]" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (subscript_expression "param_1[0xb]" identifier [ number_literal ])) ;) (expression_statement "param_1[0xe] = param_1[0xd];" (assignment_expression "param_1[0xe] = param_1[0xd]" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = (subscript_expression "param_1[0xd]" identifier [ number_literal ])) ;) (expression_statement "param_1[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[6] = 0;" (assignment_expression "param_1[6] = 0" (subscript_expression "param_1[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[8] = 0;" (assignment_expression "param_1[8] = 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x13) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x13) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x13)" * (cast_expression "(undefined1 *)(param_1 + 0x13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x13)" ( (binary_expression "param_1 + 0x13" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0xf] = (int)pppppppuVar24;" (assignment_expression "param_1[0xf] = (int)pppppppuVar24" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pppppppuVar40 = param_2;" (assignment_expression "pppppppuVar40 = param_2" identifier = identifier) ;) (if_statement "if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n      goto LAB_0001d010;\n    }" if (parenthesized_expression "(*(char *)((int)param_1 + 0x4b) == '\0')" ( (binary_expression "*(char *)((int)param_1 + 0x4b) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x4b)" * (cast_expression "(char *)((int)param_1 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x4b)" ( (binary_expression "(int)param_1 + 0x4b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      param_1[1] = *param_1;\n      goto LAB_0001d010;\n    }" { (expression_statement "param_1[1] = *param_1;" (assignment_expression "param_1[1] = *param_1" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (pointer_expression "*param_1" * identifier)) ;) (goto_statement "goto LAB_0001d010;" goto statement_identifier ;) })) (if_statement "if (param_2 == (uint *******)0x0) goto LAB_0001d128;" if (parenthesized_expression "(param_2 == (uint *******)0x0)" ( (binary_expression "param_2 == (uint *******)0x0" identifier == (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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_0001d128;" goto statement_identifier ;)) (labeled_statement "LAB_0001d018:\n    iVar25 = param_1[8];" statement_identifier : (expression_statement "iVar25 = param_1[8];" (assignment_expression "iVar25 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;)) (expression_statement "unaff_s2 = (uint *******)param_1[7];" (assignment_expression "unaff_s2 = (uint *******)param_1[7]" identifier = (cast_expression "(uint *******)param_1[7]" ( (type_descriptor "uint *******" type_identifier (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[7]" identifier [ number_literal ]))) ;) (if_statement "if ((int)pppppppuVar40 < iVar25) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);\n        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);\n        param_1[0xf] = iVar25;\n        if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        cVar15 = *(char *)((int)param_1 + 0x4b);\n        if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        param_1[7] = (int)pppppppuVar24;\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        param_1[8] = param_1[8] - (int)pppppppuVar40;\n      }\n      else {\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }\nLAB_0001d090:\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      if (cVar15 == '\0') {\nLAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);\n        param_1[1] = (int)pppppppuVar40;\n      }\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n      if (pppppppuVar22 == (uint *******)0x0) goto LAB_0001d0b4;\nLAB_0001d148:\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }\n      pppppppuVar28 = (uint *******)param_1[0x14];\n      unaff_s8 = (uint *******)param_1[6];\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      param_1[7] = 0;\n      if (pppppppuVar22 == (uint *******)0x0) {\n        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }\n      uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];\n      param_1[8] = 0;\n      if (param_1[0x10] != 0) {\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }\n      pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);\n      if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {\n        pppppppuVar24 = (uint *******)0x0;\n      }\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n      param_1[0xf] = (int)pppppppuVar24;\n      pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n      iVar25 = param_1[0xe] - (int)pppppppuVar40;\n      if (cVar15 == '\0') goto LAB_0001d098;\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n    }" if (parenthesized_expression "((int)pppppppuVar40 < iVar25)" ( (binary_expression "(int)pppppppuVar40 < iVar25" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);\n        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);\n        param_1[0xf] = iVar25;\n        if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        cVar15 = *(char *)((int)param_1 + 0x4b);\n        if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        param_1[7] = (int)pppppppuVar24;\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        param_1[8] = param_1[8] - (int)pppppppuVar40;\n      }\n      else {\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }\nLAB_0001d090:\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      if (cVar15 == '\0') {\nLAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);\n        param_1[1] = (int)pppppppuVar40;\n      }\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n      if (pppppppuVar22 == (uint *******)0x0) goto LAB_0001d0b4;\nLAB_0001d148:\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n    }" { (if_statement "if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);\n        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);\n        param_1[0xf] = iVar25;\n        if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        cVar15 = *(char *)((int)param_1 + 0x4b);\n        if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        param_1[7] = (int)pppppppuVar24;\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        param_1[8] = param_1[8] - (int)pppppppuVar40;\n      }\n      else {\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }" if (parenthesized_expression "(*(char *)(param_1 + 0x13) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x13) == '\0'" (pointer_expression "*(char *)(param_1 + 0x13)" * (cast_expression "(char *)(param_1 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x13)" ( (binary_expression "param_1 + 0x13" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);\n        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);\n        param_1[0xf] = iVar25;\n        if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        cVar15 = *(char *)((int)param_1 + 0x4b);\n        if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        param_1[7] = (int)pppppppuVar24;\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        param_1[8] = param_1[8] - (int)pppppppuVar40;\n      }" { (expression_statement "iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);" (assignment_expression "iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3)" identifier = (call_expression "FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3)" identifier (argument_list "(param_1,(byte *)((int)pppppppuVar40 + -1),param_3)" ( identifier , (cast_expression "(byte *)((int)pppppppuVar40 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppuVar40 + -1)" ( (binary_expression "(int)pppppppuVar40 + -1" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , identifier )))) ;) (expression_statement "pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);" (assignment_expression "pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40)" identifier = (cast_expression "(uint *******)((int)unaff_s2 - (int)pppppppuVar40)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)unaff_s2 - (int)pppppppuVar40)" ( (binary_expression "(int)unaff_s2 - (int)pppppppuVar40" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "param_1[0xf] = iVar25;" (assignment_expression "param_1[0xf] = iVar25" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }" if (parenthesized_expression "(1 < param_1[0x14])" ( (binary_expression "1 < param_1[0x14]" number_literal < (subscript_expression "param_1[0x14]" identifier [ number_literal ])) )) (compound_statement "{\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }" { (expression_statement "(*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);" (call_expression "(*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4)" (parenthesized_expression "(*(code *)PTR_memmove_0003c324)" ( (pointer_expression "*(code *)PTR_memmove_0003c324" * (cast_expression "(code *)PTR_memmove_0003c324" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4)" ( (subscript_expression "param_1[2]" identifier [ number_literal ]) , (binary_expression "param_1[2] + (int)pppppppuVar40 * 4" (subscript_expression "param_1[2]" identifier [ number_literal ]) + (binary_expression "(int)pppppppuVar40 * 4" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) , (binary_expression "(int)pppppppuVar24 * 4" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) ;) (expression_statement "pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);" (assignment_expression "pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40)" identifier = (cast_expression "(uint *******)(param_1[7] - (int)pppppppuVar40)" ( (type_descriptor "uint *******" type_identifier (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[7] - (int)pppppppuVar40)" ( (binary_expression "param_1[7] - (int)pppppppuVar40" (subscript_expression "param_1[7]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "cVar15 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar15 = *(char *)((int)param_1 + 0x4b)" identifier = (pointer_expression "*(char *)((int)param_1 + 0x4b)" * (cast_expression "(char *)((int)param_1 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x4b)" ( (binary_expression "(int)param_1 + 0x4b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }" if (parenthesized_expression "(cVar15 != '\0')" ( (binary_expression "cVar15 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }" { (expression_statement "(*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));" (call_expression "(*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40))" (parenthesized_expression "(*(code *)PTR_memmove_0003c324)" ( (pointer_expression "*(code *)PTR_memmove_0003c324" * (cast_expression "(code *)PTR_memmove_0003c324" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40))" ( (subscript_expression "param_1[1]" identifier [ number_literal ]) , (cast_expression "(byte *)(param_1[1] + (int)pppppppuVar40)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + (int)pppppppuVar40)" ( (binary_expression "param_1[1] + (int)pppppppuVar40" (subscript_expression "param_1[1]" identifier [ number_literal ]) + (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) ;) (expression_statement "cVar15 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar15 = *(char *)((int)param_1 + 0x4b)" identifier = (pointer_expression "*(char *)((int)param_1 + 0x4b)" * (cast_expression "(char *)((int)param_1 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x4b)" ( (binary_expression "(int)param_1 + 0x4b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);" (assignment_expression "pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40)" identifier = (cast_expression "(uint *******)(param_1[7] - (int)pppppppuVar40)" ( (type_descriptor "uint *******" type_identifier (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[7] - (int)pppppppuVar40)" ( (binary_expression "param_1[7] - (int)pppppppuVar40" (subscript_expression "param_1[7]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "pppppppuVar28 = (uint *******)param_1[0x14];" (assignment_expression "pppppppuVar28 = (uint *******)param_1[0x14]" identifier = (cast_expression "(uint *******)param_1[0x14]" ( (type_descriptor "uint *******" type_identifier (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[0x14]" identifier [ number_literal ]))) ;) (expression_statement "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);" (assignment_expression "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40)" identifier = (cast_expression "(uint *******)(param_1[0xc] - (int)pppppppuVar40)" ( (type_descriptor "uint *******" type_identifier (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[0xc] - (int)pppppppuVar40)" ( (binary_expression "param_1[0xc] - (int)pppppppuVar40" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "param_1[7] = (int)pppppppuVar24;" (assignment_expression "param_1[7] = (int)pppppppuVar24" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar25 = param_1[0xe] - (int)pppppppuVar40;" (assignment_expression "iVar25 = param_1[0xe] - (int)pppppppuVar40" identifier = (binary_expression "param_1[0xe] - (int)pppppppuVar40" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_1[8] = param_1[8] - (int)pppppppuVar40;" (assignment_expression "param_1[8] = param_1[8] - (int)pppppppuVar40" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (binary_expression "param_1[8] - (int)pppppppuVar40" (subscript_expression "param_1[8]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }" else (compound_statement "{\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }" { (expression_statement "unaff_s7 = (uint *******)param_1[3];" (assignment_expression "unaff_s7 = (uint *******)param_1[3]" identifier = (cast_expression "(uint *******)param_1[3]" ( (type_descriptor "uint *******" type_identifier (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[3]" identifier [ number_literal ]))) ;) (expression_statement "pbVar8 = (byte *)0x0;" (assignment_expression "pbVar8 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pppppppuVar24 = unaff_s2;" (assignment_expression "pppppppuVar24 = unaff_s2" identifier = identifier) ;) (do_statement "do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);" do (compound_statement "{\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        }" { (expression_statement "unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);" (assignment_expression "unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2)" identifier = (cast_expression "(uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)(pbVar8 + (int)pppppppuVar24) / 2)" ( (binary_expression "(int)(pbVar8 + (int)pppppppuVar24) / 2" (cast_expression "(int)(pbVar8 + (int)pppppppuVar24)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar8 + (int)pppppppuVar24)" ( (binary_expression "pbVar8 + (int)pppppppuVar24" identifier + (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / number_literal) )))) ;) (expression_statement "ppppppuVar20 = unaff_s7[(int)unaff_s3];" (assignment_expression "ppppppuVar20 = unaff_s7[(int)unaff_s3]" identifier = (subscript_expression "unaff_s7[(int)unaff_s3]" identifier [ (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) (expression_statement "pppppppuVar16 = unaff_s3;" (assignment_expression "pppppppuVar16 = unaff_s3" identifier = identifier) ;) (if_statement "if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;" if (parenthesized_expression "(((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20))" ( (binary_expression "((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)" (parenthesized_expression "((int)ppppppuVar20 <= (int)pppppppuVar40)" ( (binary_expression "(int)ppppppuVar20 <= (int)pppppppuVar40" (cast_expression "(int)ppppppuVar20" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)" ( (comma_expression "pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20" (assignment_expression "pbVar8 = (byte *)((int)unaff_s3 + 1)" identifier = (cast_expression "(byte *)((int)unaff_s3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s3 + 1)" ( (binary_expression "(int)unaff_s3 + 1" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20" (assignment_expression "pppppppuVar16 = pppppppuVar24" identifier = identifier) , (binary_expression "(int)pppppppuVar40 <= (int)ppppppuVar20" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)ppppppuVar20" ( (type_descriptor "int" primitive_type) ) identifier)))) ))) )) (goto_statement "goto LAB_0001d460;" goto statement_identifier ;)) (expression_statement "pppppppuVar24 = pppppppuVar16;" (assignment_expression "pppppppuVar24 = pppppppuVar16" identifier = identifier) ;) }) while (parenthesized_expression "((int)pbVar8 < (int)pppppppuVar16)" ( (binary_expression "(int)pbVar8 < (int)pppppppuVar16" (cast_expression "(int)pbVar8" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppppuVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (if_statement "if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }" if (parenthesized_expression "((int)ppppppuVar20 < (int)pppppppuVar40)" ( (binary_expression "(int)ppppppuVar20 < (int)pppppppuVar40" (cast_expression "(int)ppppppuVar20" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }" { (expression_statement "pppppppuVar24 = unaff_s3;" (assignment_expression "pppppppuVar24 = unaff_s3" identifier = identifier) ;) (expression_statement "unaff_s3 = (uint *******)((int)unaff_s3 + 1);" (assignment_expression "unaff_s3 = (uint *******)((int)unaff_s3 + 1)" identifier = (cast_expression "(uint *******)((int)unaff_s3 + 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)unaff_s3 + 1)" ( (binary_expression "(int)unaff_s3 + 1" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) (else_clause "else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }" else (compound_statement "{\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }" { (labeled_statement "LAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);" statement_identifier : (expression_statement "pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);" (assignment_expression "pppppppuVar24 = (uint *******)((int)unaff_s3 + -1)" identifier = (cast_expression "(uint *******)((int)unaff_s3 + -1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)unaff_s3 + -1)" ( (binary_expression "(int)unaff_s3 + -1" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) }))) (expression_statement "iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);" (assignment_expression "iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3)" identifier = (call_expression "FUN_0001cb50(param_1,pppppppuVar24,param_3)" identifier (argument_list "(param_1,pppppppuVar24,param_3)" ( identifier , identifier , identifier )))) ;) (expression_statement "param_1[0xf] = iVar25;" (assignment_expression "param_1[0xf] = iVar25" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }" if (parenthesized_expression "((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40))" ( (binary_expression "(((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)" (parenthesized_expression "(((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3))" ( (binary_expression "((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)" (parenthesized_expression "((int)pppppppuVar40 < (int)unaff_s2)" ( (binary_expression "(int)pppppppuVar40 < (int)unaff_s2" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)" ( (comma_expression "param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3" (assignment_expression "param_3 = (uint *******)((int)pppppppuVar40 * 4)" identifier = (cast_expression "(uint *******)((int)pppppppuVar40 * 4)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar40 * 4)" ( (binary_expression "(int)pppppppuVar40 * 4" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) , (binary_expression "pppppppuVar40 == unaff_s3" identifier == identifier)) ))) )) && (parenthesized_expression "((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)" ( (binary_expression "(uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40" (cast_expression "(uint *******)unaff_s7[(int)pppppppuVar40]" ( (type_descriptor "uint *******" type_identifier (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[(int)pppppppuVar40]" identifier [ (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) ])) == identifier) ))) )) (compound_statement "{\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }" { (expression_statement "(*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);" (call_expression "(*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4)" (parenthesized_expression "(*(code *)PTR_memmove_0003c324)" ( (pointer_expression "*(code *)PTR_memmove_0003c324" * (cast_expression "(code *)PTR_memmove_0003c324" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4)" ( (subscript_expression "param_1[2]" identifier [ number_literal ]) , (cast_expression "(byte *)(param_1[2] + (int)param_3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + (int)param_3)" ( (binary_expression "param_1[2] + (int)param_3" (subscript_expression "param_1[2]" identifier [ number_literal ]) + (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) , (binary_expression "((int)unaff_s2 - (int)pppppppuVar40) * 4" (parenthesized_expression "((int)unaff_s2 - (int)pppppppuVar40)" ( (binary_expression "(int)unaff_s2 - (int)pppppppuVar40" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal) ))) ;) (expression_statement "pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);" (assignment_expression "pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40)" identifier = (cast_expression "(uint *******)(param_1[7] - (int)pppppppuVar40)" ( (type_descriptor "uint *******" type_identifier (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[7] - (int)pppppppuVar40)" ( (binary_expression "param_1[7] - (int)pppppppuVar40" (subscript_expression "param_1[7]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "(*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));" (call_expression "(*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40))" (parenthesized_expression "(*(code *)PTR_memmove_0003c324)" ( (pointer_expression "*(code *)PTR_memmove_0003c324" * (cast_expression "(code *)PTR_memmove_0003c324" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40))" ( (subscript_expression "param_1[1]" identifier [ number_literal ]) , (cast_expression "(byte *)(param_1[1] + (int)pppppppuVar40)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + (int)pppppppuVar40)" ( (binary_expression "param_1[1] + (int)pppppppuVar40" (subscript_expression "param_1[1]" identifier [ number_literal ]) + (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) ;) (expression_statement "iVar25 = param_1[7];" (assignment_expression "iVar25 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (expression_statement "param_1[7] = iVar25 - (int)pppppppuVar40;" (assignment_expression "param_1[7] = iVar25 - (int)pppppppuVar40" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (binary_expression "iVar25 - (int)pppppppuVar40" identifier - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_1[8] = param_1[8] - (int)pppppppuVar40;" (assignment_expression "param_1[8] = param_1[8] - (int)pppppppuVar40" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (binary_expression "param_1[8] - (int)pppppppuVar40" (subscript_expression "param_1[8]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }" if (parenthesized_expression "(0 < iVar25 - (int)pppppppuVar40)" ( (binary_expression "0 < iVar25 - (int)pppppppuVar40" number_literal < (binary_expression "iVar25 - (int)pppppppuVar40" identifier - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }" { (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (expression_statement "pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);" (assignment_expression "pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4)" identifier = (cast_expression "(uint *******)((int)pppppppuVar40 * -4)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar40 * -4)" ( (binary_expression "(int)pppppppuVar40 * -4" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "pbVar8 = (byte *)(param_1[3] + (int)param_3);" (assignment_expression "pbVar8 = (byte *)(param_1[3] + (int)param_3)" identifier = (cast_expression "(byte *)(param_1[3] + (int)param_3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[3] + (int)param_3)" ( (binary_expression "param_1[3] + (int)param_3" (subscript_expression "param_1[3]" identifier [ number_literal ]) + (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (do_statement "do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);" do (compound_statement "{\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            }" { (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;" (assignment_expression "*(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40" (pointer_expression "*(int *)(pbVar8 + (int)pppppppuVar24)" * (cast_expression "(int *)(pbVar8 + (int)pppppppuVar24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar8 + (int)pppppppuVar24)" ( (binary_expression "pbVar8 + (int)pppppppuVar24" identifier + (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = (binary_expression "*(int *)pbVar8 - (int)pppppppuVar40" (pointer_expression "*(int *)pbVar8" * (cast_expression "(int *)pbVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar8 = pbVar8 + 4;" (assignment_expression "pbVar8 = pbVar8 + 4" identifier = (binary_expression "pbVar8 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar25 < param_1[7])" ( (binary_expression "iVar25 < param_1[7]" identifier < (subscript_expression "param_1[7]" identifier [ number_literal ])) )) ;) })) (expression_statement "pppppppuVar28 = (uint *******)param_1[0x14];" (assignment_expression "pppppppuVar28 = (uint *******)param_1[0x14]" identifier = (cast_expression "(uint *******)param_1[0x14]" ( (type_descriptor "uint *******" type_identifier (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[0x14]" identifier [ number_literal ]))) ;) (expression_statement "cVar15 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar15 = *(char *)((int)param_1 + 0x4b)" identifier = (pointer_expression "*(char *)((int)param_1 + 0x4b)" * (cast_expression "(char *)((int)param_1 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x4b)" ( (binary_expression "(int)param_1 + 0x4b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);" (assignment_expression "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40)" identifier = (cast_expression "(uint *******)(param_1[0xc] - (int)pppppppuVar40)" ( (type_descriptor "uint *******" type_identifier (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[0xc] - (int)pppppppuVar40)" ( (binary_expression "param_1[0xc] - (int)pppppppuVar40" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar25 = param_1[0xe] - (int)pppppppuVar40;" (assignment_expression "iVar25 = param_1[0xe] - (int)pppppppuVar40" identifier = (binary_expression "param_1[0xe] - (int)pppppppuVar40" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }" else (compound_statement "{\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }" { (expression_statement "*(undefined1 *)(param_1 + 0x13) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x13) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x13)" * (cast_expression "(undefined1 *)(param_1 + 0x13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x13)" ( (binary_expression "param_1 + 0x13" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);" (assignment_expression "pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2)" identifier = (cast_expression "(uint *******)(param_1[0xb] - (int)param_2)" ( (type_descriptor "uint *******" type_identifier (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[0xb] - (int)param_2)" ( (binary_expression "param_1[0xb] - (int)param_2" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar25 = param_1[0xd] - (int)param_2;" (assignment_expression "iVar25 = param_1[0xd] - (int)param_2" identifier = (binary_expression "param_1[0xd] - (int)param_2" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);" (assignment_expression "param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40)" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (cast_expression "(int)((int)pppppppuVar16 + (int)pppppppuVar40)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppppuVar16 + (int)pppppppuVar40)" ( (binary_expression "(int)pppppppuVar16 + (int)pppppppuVar40" (cast_expression "(int)pppppppuVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);" (assignment_expression "param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40)" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = (cast_expression "(int)(iVar25 + (int)pppppppuVar40)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar25 + (int)pppppppuVar40)" ( (binary_expression "iVar25 + (int)pppppppuVar40" identifier + (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }" if (parenthesized_expression "((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)]))" ( (binary_expression "(0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])" (parenthesized_expression "(0 < (int)unaff_s3)" ( (binary_expression "0 < (int)unaff_s3" number_literal < (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])" ( (binary_expression "pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)]" identifier == (cast_expression "(uint *******)unaff_s7[(int)((int)unaff_s3 + -1)]" ( (type_descriptor "uint *******" type_identifier (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[(int)((int)unaff_s3 + -1)]" identifier [ (cast_expression "(int)((int)unaff_s3 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)unaff_s3 + -1)" ( (binary_expression "(int)unaff_s3 + -1" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ]))) ))) )) (compound_statement "{\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }" { (expression_statement "pppppppuVar24 = unaff_s7 + (int)unaff_s3;" (assignment_expression "pppppppuVar24 = unaff_s7 + (int)unaff_s3" identifier = (binary_expression "unaff_s7 + (int)unaff_s3" identifier + (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);" do (compound_statement "{\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            }" { (expression_statement "unaff_s3 = (uint *******)((int)unaff_s3 + -1);" (assignment_expression "unaff_s3 = (uint *******)((int)unaff_s3 + -1)" identifier = (cast_expression "(uint *******)((int)unaff_s3 + -1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)unaff_s3 + -1)" ( (binary_expression "(int)unaff_s3 + -1" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (unaff_s3 == (uint *******)0x0) break;" if (parenthesized_expression "(unaff_s3 == (uint *******)0x0)" ( (binary_expression "unaff_s3 == (uint *******)0x0" identifier == (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pppppppuVar22 = pppppppuVar24 + -2;" (assignment_expression "pppppppuVar22 = pppppppuVar24 + -2" identifier = (binary_expression "pppppppuVar24 + -2" identifier + number_literal)) ;) (expression_statement "pppppppuVar24 = pppppppuVar24 + -1;" (assignment_expression "pppppppuVar24 = pppppppuVar24 + -1" identifier = (binary_expression "pppppppuVar24 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "((uint *******)*pppppppuVar22 == pppppppuVar40)" ( (binary_expression "(uint *******)*pppppppuVar22 == pppppppuVar40" (cast_expression "(uint *******)*pppppppuVar22" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppuVar22" * identifier)) == identifier) )) ;) })) (expression_statement "iVar5 = (int)unaff_s3 * 4;" (assignment_expression "iVar5 = (int)unaff_s3 * 4" identifier = (binary_expression "(int)unaff_s3 * 4" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }" if (parenthesized_expression "((int)unaff_s3 < (int)unaff_s2)" ( (binary_expression "(int)unaff_s3 < (int)unaff_s2" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }" { (expression_statement "piVar6 = (int *)(param_1[2] + iVar5);" (assignment_expression "piVar6 = (int *)(param_1[2] + iVar5)" identifier = (cast_expression "(int *)(param_1[2] + iVar5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + iVar5)" ( (binary_expression "param_1[2] + iVar5" (subscript_expression "param_1[2]" identifier [ number_literal ]) + identifier) )))) ;) (expression_statement "iVar35 = *piVar6;" (assignment_expression "iVar35 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (while_statement "while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }" while (parenthesized_expression "(iVar35 == -1)" ( (binary_expression "iVar35 == -1" identifier == number_literal) )) (compound_statement "{\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }" { (expression_statement "unaff_s3 = (uint *******)((int)unaff_s3 + 1);" (assignment_expression "unaff_s3 = (uint *******)((int)unaff_s3 + 1)" identifier = (cast_expression "(uint *******)((int)unaff_s3 + 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)unaff_s3 + 1)" ( (binary_expression "(int)unaff_s3 + 1" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" identifier = (binary_expression "piVar6 + 1" identifier + number_literal)) ;) (if_statement "if (unaff_s3 == unaff_s2) goto LAB_0001d444;" if (parenthesized_expression "(unaff_s3 == unaff_s2)" ( (binary_expression "unaff_s3 == unaff_s2" identifier == identifier) )) (goto_statement "goto LAB_0001d444;" goto statement_identifier ;)) (expression_statement "iVar5 = (int)unaff_s3 * 4;" (assignment_expression "iVar5 = (int)unaff_s3 * 4" identifier = (binary_expression "(int)unaff_s3 * 4" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "iVar35 = *piVar6;" (assignment_expression "iVar35 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) })) (labeled_statement "LAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);" statement_identifier : (expression_statement "unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);" (assignment_expression "unaff_s7 = (uint *******)((int)unaff_s7 + iVar5)" identifier = (cast_expression "(uint *******)((int)unaff_s7 + iVar5)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)unaff_s7 + iVar5)" ( (binary_expression "(int)unaff_s7 + iVar5" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;)) (expression_statement "pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);" (assignment_expression "pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40)" identifier = (cast_expression "(uint *******)((int)*unaff_s7 - (int)pppppppuVar40)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)*unaff_s7 - (int)pppppppuVar40)" ( (binary_expression "(int)*unaff_s7 - (int)pppppppuVar40" (cast_expression "(int)*unaff_s7" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*unaff_s7" * identifier)) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "param_1[7] = (int)pppppppuVar24;" (assignment_expression "param_1[7] = (int)pppppppuVar24" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }" if (parenthesized_expression "(pppppppuVar24 != (uint *******)0x0)" ( (binary_expression "pppppppuVar24 != (uint *******)0x0" identifier != (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }" { (if_statement "if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }" if (parenthesized_expression "(0 < (int)pppppppuVar24)" ( (binary_expression "0 < (int)pppppppuVar24" number_literal < (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }" { (expression_statement "puVar9 = (undefined4 *)param_1[2];" (assignment_expression "puVar9 = (undefined4 *)param_1[2]" identifier = (cast_expression "(undefined4 *)param_1[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (do_statement "do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);" do (compound_statement "{\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                }" { (expression_statement "*puVar9 = 0xffffffff;" (assignment_expression "*puVar9 = 0xffffffff" (pointer_expression "*puVar9" * identifier) = number_literal) ;) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar25 < param_1[7])" ( (binary_expression "iVar25 < param_1[7]" identifier < (subscript_expression "param_1[7]" identifier [ number_literal ])) )) ;) })) (expression_statement "(*(code *)PTR_memset_0003c290)(param_1[1],0xff);" (call_expression "(*(code *)PTR_memset_0003c290)(param_1[1],0xff)" (parenthesized_expression "(*(code *)PTR_memset_0003c290)" ( (pointer_expression "*(code *)PTR_memset_0003c290" * (cast_expression "(code *)PTR_memset_0003c290" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[1],0xff)" ( (subscript_expression "param_1[1]" identifier [ number_literal ]) , number_literal ))) ;) (expression_statement "pppppppuVar24 = (uint *******)param_1[7];" (assignment_expression "pppppppuVar24 = (uint *******)param_1[7]" identifier = (cast_expression "(uint *******)param_1[7]" ( (type_descriptor "uint *******" type_identifier (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[7]" identifier [ number_literal ]))) ;) (expression_statement "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);" (assignment_expression "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40)" identifier = (cast_expression "(uint *******)(param_1[0xc] - (int)pppppppuVar40)" ( (type_descriptor "uint *******" type_identifier (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[0xc] - (int)pppppppuVar40)" ( (binary_expression "param_1[0xc] - (int)pppppppuVar40" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar25 = param_1[0xe] - (int)pppppppuVar40;" (assignment_expression "iVar25 = param_1[0xe] - (int)pppppppuVar40" identifier = (binary_expression "param_1[0xe] - (int)pppppppuVar40" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) }) (else_clause "else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }" else (compound_statement "{\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }" { (if_statement "if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;" if (parenthesized_expression "(unaff_s3 != unaff_s2)" ( (binary_expression "unaff_s3 != unaff_s2" identifier != identifier) )) (goto_statement "goto LAB_0001d4ac;" goto statement_identifier ;)) (labeled_statement "LAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;" statement_identifier : (expression_statement "pppppppuVar24 = (uint *******)0x0;" (assignment_expression "pppppppuVar24 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "param_1[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) = number_literal) ;) }))) (expression_statement "pppppppuVar28 = (uint *******)param_1[0x14];" (assignment_expression "pppppppuVar28 = (uint *******)param_1[0x14]" identifier = (cast_expression "(uint *******)param_1[0x14]" ( (type_descriptor "uint *******" type_identifier (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[0x14]" identifier [ number_literal ]))) ;) (expression_statement "cVar15 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar15 = *(char *)((int)param_1 + 0x4b)" identifier = (pointer_expression "*(char *)((int)param_1 + 0x4b)" * (cast_expression "(char *)((int)param_1 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x4b)" ( (binary_expression "(int)param_1 + 0x4b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "param_1[8] = (int)pppppppuVar24;" (assignment_expression "param_1[8] = (int)pppppppuVar24" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) }))) (labeled_statement "LAB_0001d090:\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);" statement_identifier : (expression_statement "pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);" (assignment_expression "pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2)" identifier = (cast_expression "(uint *******)(uint)((int)pppppppuVar28 < 2)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)((int)pppppppuVar28 < 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pppppppuVar28 < 2)" ( (binary_expression "(int)pppppppuVar28 < 2" (cast_expression "(int)pppppppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))))) ;)) (if_statement "if (cVar15 == '\0') {\nLAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);\n        param_1[1] = (int)pppppppuVar40;\n      }" if (parenthesized_expression "(cVar15 == '\0')" ( (binary_expression "cVar15 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);\n        param_1[1] = (int)pppppppuVar40;\n      }" { (labeled_statement "LAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);" statement_identifier : (expression_statement "pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);" (assignment_expression "pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40)" identifier = (cast_expression "(uint *******)(param_1[1] + (int)pppppppuVar40)" ( (type_descriptor "uint *******" type_identifier (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[1] + (int)pppppppuVar40)" ( (binary_expression "param_1[1] + (int)pppppppuVar40" (subscript_expression "param_1[1]" identifier [ number_literal ]) + (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "param_1[1] = (int)pppppppuVar40;" (assignment_expression "param_1[1] = (int)pppppppuVar40" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (expression_statement "param_1[6] = (int)param_2;" (assignment_expression "param_1[6] = (int)param_2" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[0xc] = (int)pppppppuVar16;" (assignment_expression "param_1[0xc] = (int)pppppppuVar16" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[0xe] = iVar25;" (assignment_expression "param_1[0xe] = iVar25" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (pppppppuVar22 == (uint *******)0x0) goto LAB_0001d0b4;" if (parenthesized_expression "(pppppppuVar22 == (uint *******)0x0)" ( (binary_expression "pppppppuVar22 == (uint *******)0x0" identifier == (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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_0001d0b4;" goto statement_identifier ;)) (labeled_statement "LAB_0001d148:\n      cVar15 = *(char *)((int)param_1 + 0x4b);" statement_identifier : (expression_statement "cVar15 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar15 = *(char *)((int)param_1 + 0x4b)" identifier = (pointer_expression "*(char *)((int)param_1 + 0x4b)" * (cast_expression "(char *)((int)param_1 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x4b)" ( (binary_expression "(int)param_1 + 0x4b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) }) (else_clause "else {\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }\n      pppppppuVar28 = (uint *******)param_1[0x14];\n      unaff_s8 = (uint *******)param_1[6];\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      param_1[7] = 0;\n      if (pppppppuVar22 == (uint *******)0x0) {\n        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }\n      uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];\n      param_1[8] = 0;\n      if (param_1[0x10] != 0) {\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }\n      pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);\n      if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {\n        pppppppuVar24 = (uint *******)0x0;\n      }\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n      param_1[0xf] = (int)pppppppuVar24;\n      pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n      iVar25 = param_1[0xe] - (int)pppppppuVar40;\n      if (cVar15 == '\0') goto LAB_0001d098;\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n    }" else (compound_statement "{\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }\n      pppppppuVar28 = (uint *******)param_1[0x14];\n      unaff_s8 = (uint *******)param_1[6];\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      param_1[7] = 0;\n      if (pppppppuVar22 == (uint *******)0x0) {\n        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }\n      uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];\n      param_1[8] = 0;\n      if (param_1[0x10] != 0) {\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }\n      pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);\n      if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {\n        pppppppuVar24 = (uint *******)0x0;\n      }\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n      param_1[0xf] = (int)pppppppuVar24;\n      pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n      iVar25 = param_1[0xe] - (int)pppppppuVar40;\n      if (cVar15 == '\0') goto LAB_0001d098;\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n    }" { (if_statement "if (*(char *)(param_1 + 0x13) != '\0') {\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }" if (parenthesized_expression "(*(char *)(param_1 + 0x13) != '\0')" ( (binary_expression "*(char *)(param_1 + 0x13) != '\0'" (pointer_expression "*(char *)(param_1 + 0x13)" * (cast_expression "(char *)(param_1 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x13)" ( (binary_expression "param_1 + 0x13" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0x13) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x13) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x13)" * (cast_expression "(undefined1 *)(param_1 + 0x13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x13)" ( (binary_expression "param_1 + 0x13" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);" (assignment_expression "param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40)" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (cast_expression "(int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((param_1[0xb] - (int)param_2) + (int)pppppppuVar40)" ( (binary_expression "(param_1[0xb] - (int)param_2) + (int)pppppppuVar40" (parenthesized_expression "(param_1[0xb] - (int)param_2)" ( (binary_expression "param_1[0xb] - (int)param_2" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) + (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);" (assignment_expression "param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40)" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = (cast_expression "(int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((param_1[0xd] - (int)param_2) + (int)pppppppuVar40)" ( (binary_expression "(param_1[0xd] - (int)param_2) + (int)pppppppuVar40" (parenthesized_expression "(param_1[0xd] - (int)param_2)" ( (binary_expression "param_1[0xd] - (int)param_2" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) + (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "pppppppuVar28 = (uint *******)param_1[0x14];" (assignment_expression "pppppppuVar28 = (uint *******)param_1[0x14]" identifier = (cast_expression "(uint *******)param_1[0x14]" ( (type_descriptor "uint *******" type_identifier (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[0x14]" identifier [ number_literal ]))) ;) (expression_statement "unaff_s8 = (uint *******)param_1[6];" (assignment_expression "unaff_s8 = (uint *******)param_1[6]" identifier = (cast_expression "(uint *******)param_1[6]" ( (type_descriptor "uint *******" type_identifier (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[6]" identifier [ number_literal ]))) ;) (expression_statement "pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);" (assignment_expression "pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2)" identifier = (cast_expression "(uint *******)(uint)((int)pppppppuVar28 < 2)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)((int)pppppppuVar28 < 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pppppppuVar28 < 2)" ( (binary_expression "(int)pppppppuVar28 < 2" (cast_expression "(int)pppppppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))))) ;) (expression_statement "param_1[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (pppppppuVar22 == (uint *******)0x0) {\n        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }" if (parenthesized_expression "(pppppppuVar22 == (uint *******)0x0)" ( (binary_expression "pppppppuVar22 == (uint *******)0x0" identifier == (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }" { (if_statement "if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }" if (parenthesized_expression "(*(char *)((int)param_1 + 0x49) == '\0')" ( (binary_expression "*(char *)((int)param_1 + 0x49) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x49)" * (cast_expression "(char *)((int)param_1 + 0x49)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x49)" ( (binary_expression "(int)param_1 + 0x49" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }" { (labeled_statement "LAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);" statement_identifier : (expression_statement "pbVar8 = (byte *)((int)unaff_s8 + iVar25);" (assignment_expression "pbVar8 = (byte *)((int)unaff_s8 + iVar25)" identifier = (cast_expression "(byte *)((int)unaff_s8 + iVar25)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s8 + iVar25)" ( (binary_expression "(int)unaff_s8 + iVar25" (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;)) (if_statement "if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }" if (parenthesized_expression "((int)pbVar8 < (int)param_2)" ( (binary_expression "(int)pbVar8 < (int)param_2" (cast_expression "(int)pbVar8" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }" { (expression_statement "unaff_s7 = (uint *******)&local_40;" (assignment_expression "unaff_s7 = (uint *******)&local_40" identifier = (cast_expression "(uint *******)&local_40" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_40" & identifier))) ;) (do_statement "do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);" do (compound_statement "{\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            }" { (expression_statement "local_3c = param_1[4];" (assignment_expression "local_3c = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "local_38 = param_1[5];" (assignment_expression "local_38 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);" (assignment_expression "pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8)" identifier = (cast_expression "(uint *******)(param_1[0xb] - (int)pbVar8)" ( (type_descriptor "uint *******" type_identifier (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[0xb] - (int)pbVar8)" ( (binary_expression "param_1[0xb] - (int)pbVar8" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) - (cast_expression "(int)pbVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppuVar24 = pppppppuVar16;" (assignment_expression "pppppppuVar24 = pppppppuVar16" identifier = identifier) ;) (expression_statement "iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);" (assignment_expression "iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4)" identifier = (call_expression "rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4)" identifier (argument_list "(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4)" ( identifier , (binary_expression "pbVar8 + *param_1" identifier + (pointer_expression "*param_1" * identifier)) , identifier , (binary_expression "param_1 + 4" identifier + number_literal) )))) ;) (expression_statement "unaff_s3 = local_40;" (assignment_expression "unaff_s3 = local_40" identifier = identifier) ;) (if_statement "if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }" if (parenthesized_expression "(0xfffffffc < iVar25 - 1U)" ( (binary_expression "0xfffffffc < iVar25 - 1U" number_literal < (binary_expression "iVar25 - 1U" identifier - number_literal)) )) (compound_statement "{\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }" { (if_statement "if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }" if (parenthesized_expression "((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0))" ( (binary_expression "(iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)" (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) || (parenthesized_expression "(pppppppuVar16 == (uint *******)0x0)" ( (binary_expression "pppppppuVar16 == (uint *******)0x0" identifier == (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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                  unaff_s3 = (uint *******)0x0;\n                }" { (expression_statement "unaff_s3 = (uint *******)0x0;" (assignment_expression "unaff_s3 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }" else (compound_statement "{\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }" { (expression_statement "unaff_s3 = (uint *******)(uint)pbVar8[*param_1];" (assignment_expression "unaff_s3 = (uint *******)(uint)pbVar8[*param_1]" identifier = (cast_expression "(uint *******)(uint)pbVar8[*param_1]" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (cast_expression "(uint)pbVar8[*param_1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar8[*param_1]" identifier [ (pointer_expression "*param_1" * identifier) ])))) ;) }))) (expression_statement "iVar25 = 1;" (assignment_expression "iVar25 = 1" identifier = number_literal) ;) (expression_statement "param_1[4] = local_3c;" (assignment_expression "param_1[4] = local_3c" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = local_38;" (assignment_expression "param_1[5] = local_38" (subscript_expression "param_1[5]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "pbVar8 = pbVar8 + iVar25;" (assignment_expression "pbVar8 = pbVar8 + iVar25" identifier = (binary_expression "pbVar8 + iVar25" identifier + identifier)) ;) }) while (parenthesized_expression "((int)pbVar8 < (int)param_2)" ( (binary_expression "(int)pbVar8 < (int)param_2" (cast_expression "(int)pbVar8" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);" (assignment_expression "unaff_s8 = (uint *******)(pbVar8 + -(int)param_2)" identifier = (cast_expression "(uint *******)(pbVar8 + -(int)param_2)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pbVar8 + -(int)param_2)" ( (binary_expression "pbVar8 + -(int)param_2" identifier + (unary_expression "-(int)param_2" - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (expression_statement "param_1[7] = (int)unaff_s8;" (assignment_expression "param_1[7] = (int)unaff_s8" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;" if (parenthesized_expression "(unaff_s3 != (uint *******)0xffffffff)" ( (binary_expression "unaff_s3 != (uint *******)0xffffffff" identifier != (cast_expression "(uint *******)0xffffffff" ( (type_descriptor "uint *******" type_identifier (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_0001d2a4;" goto statement_identifier ;)) }) (else_clause "else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }" else (compound_statement "{\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }" { (expression_statement "unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);" (assignment_expression "unaff_s8 = (uint *******)(pbVar8 + -(int)param_2)" identifier = (cast_expression "(uint *******)(pbVar8 + -(int)param_2)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pbVar8 + -(int)param_2)" ( (binary_expression "pbVar8 + -(int)param_2" identifier + (unary_expression "-(int)param_2" - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (expression_statement "param_1[7] = (int)unaff_s8;" (assignment_expression "param_1[7] = (int)unaff_s8" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) (expression_statement "pppppppuVar24 = param_3;" (assignment_expression "pppppppuVar24 = param_3" identifier = identifier) ;) (expression_statement "iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));" (assignment_expression "iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1))" identifier = (call_expression "FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1))" identifier (argument_list "(param_1,(byte *)((int)unaff_s2 + -1))" ( identifier , (cast_expression "(byte *)((int)unaff_s2 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s2 + -1)" ( (binary_expression "(int)unaff_s2 + -1" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )))) ;) (expression_statement "param_1[0xf] = iVar25;" (assignment_expression "param_1[0xf] = iVar25" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }" else (compound_statement "{\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }" { (expression_statement "pppppppuVar16 = (uint *******)*param_1;" (assignment_expression "pppppppuVar16 = (uint *******)*param_1" identifier = (cast_expression "(uint *******)*param_1" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);" (assignment_expression "unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8)" identifier = (cast_expression "(uint *******)((int)pppppppuVar16 + (int)unaff_s8)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar16 + (int)unaff_s8)" ( (binary_expression "(int)pppppppuVar16 + (int)unaff_s8" (cast_expression "(int)pppppppuVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));" (assignment_expression "pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28))" identifier = (cast_expression "(uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28))" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28))" ( (binary_expression "(int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28)" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)pppppppuVar40 - (int)pppppppuVar28)" ( (binary_expression "(int)pppppppuVar40 - (int)pppppppuVar28" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pppppppuVar28" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));" (assignment_expression "unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1))" identifier = (cast_expression "(uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1))" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)unaff_s7 + (int)((int)pppppppuVar40 + -1))" ( (binary_expression "(int)unaff_s7 + (int)((int)pppppppuVar40 + -1)" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)((int)pppppppuVar40 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppppuVar40 + -1)" ( (binary_expression "(int)pppppppuVar40 + -1" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (if_statement "if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }" if (parenthesized_expression "(pppppppuVar24 <= pppppppuVar16)" ( (binary_expression "pppppppuVar24 <= pppppppuVar16" identifier <= identifier) )) (compound_statement "{\n            pppppppuVar24 = pppppppuVar16;\n          }" { (expression_statement "pppppppuVar24 = pppppppuVar16;" (assignment_expression "pppppppuVar24 = pppppppuVar16" identifier = identifier) ;) })) (if_statement "if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;" if (parenthesized_expression "(unaff_s3 < pppppppuVar24)" ( (binary_expression "unaff_s3 < pppppppuVar24" identifier < identifier) )) (goto_statement "goto LAB_0001d228;" goto statement_identifier ;)) (expression_statement "bVar2 = *(byte *)unaff_s3;" (assignment_expression "bVar2 = *(byte *)unaff_s3" identifier = (pointer_expression "*(byte *)unaff_s3" * (cast_expression "(byte *)unaff_s3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (while_statement "while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }" while (parenthesized_expression "((bVar2 & 0xc0) == 0x80)" ( (binary_expression "(bVar2 & 0xc0) == 0x80" (parenthesized_expression "(bVar2 & 0xc0)" ( (binary_expression "bVar2 & 0xc0" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }" { (expression_statement "unaff_s3 = (uint *******)((int)unaff_s3 + -1);" (assignment_expression "unaff_s3 = (uint *******)((int)unaff_s3 + -1)" identifier = (cast_expression "(uint *******)((int)unaff_s3 + -1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)unaff_s3 + -1)" ( (binary_expression "(int)unaff_s3 + -1" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;" if (parenthesized_expression "(unaff_s3 < pppppppuVar24)" ( (binary_expression "unaff_s3 < pppppppuVar24" identifier < identifier) )) (goto_statement "goto LAB_0001d228;" goto statement_identifier ;)) (expression_statement "bVar2 = *(byte *)unaff_s3;" (assignment_expression "bVar2 = *(byte *)unaff_s3" identifier = (pointer_expression "*(byte *)unaff_s3" * (cast_expression "(byte *)unaff_s3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) })) (expression_statement "iVar25 = param_1[0x10];" (assignment_expression "iVar25 = param_1[0x10]" identifier = (subscript_expression "param_1[0x10]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));" (assignment_expression "pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3))" identifier = (cast_expression "(uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3))" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3))" ( (binary_expression "(int)unaff_s7 + (param_1[0xc] - (int)unaff_s3)" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(param_1[0xc] - (int)unaff_s3)" ( (binary_expression "param_1[0xc] - (int)unaff_s3" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) - (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "pppppppuVar16 = unaff_s3;" (assignment_expression "pppppppuVar16 = unaff_s3" identifier = identifier) ;) (if_statement "if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }" { (expression_statement "pppppppuVar22 = (uint *******)0x6;" (assignment_expression "pppppppuVar22 = (uint *******)0x6" identifier = (cast_expression "(uint *******)0x6" ( (type_descriptor "uint *******" type_identifier (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 ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }" if (parenthesized_expression "((int)pppppppuVar24 < 7)" ( (binary_expression "(int)pppppppuVar24 < 7" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n              pppppppuVar22 = pppppppuVar24;\n            }" { (expression_statement "pppppppuVar22 = pppppppuVar24;" (assignment_expression "pppppppuVar22 = pppppppuVar24" identifier = identifier) ;) })) (expression_statement "pppppppuVar16 = appppppuStack_34;" (assignment_expression "pppppppuVar16 = appppppuStack_34" identifier = identifier) ;) (if_statement "if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }" if (parenthesized_expression "(0 < (int)pppppppuVar24)" ( (binary_expression "0 < (int)pppppppuVar24" number_literal < (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }" { (expression_statement "pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);" (assignment_expression "pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22)" identifier = (cast_expression "(byte *)((int)unaff_s3 + (int)pppppppuVar22)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s3 + (int)pppppppuVar22)" ( (binary_expression "(int)unaff_s3 + (int)pppppppuVar22" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppuVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);" (assignment_expression "pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22)" identifier = (cast_expression "(uint *******)((int)pppppppuVar16 + (int)pppppppuVar22)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar16 + (int)pppppppuVar22)" ( (binary_expression "(int)pppppppuVar16 + (int)pppppppuVar22" (cast_expression "(int)pppppppuVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppuVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (do_statement "do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);" do (compound_statement "{\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              }" { (expression_statement "pbVar1 = pbVar8 + -1;" (assignment_expression "pbVar1 = pbVar8 + -1" identifier = (binary_expression "pbVar8 + -1" identifier + number_literal)) ;) (expression_statement "pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);" (assignment_expression "pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar22 + -1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar22 + -1)" ( (binary_expression "(int)pppppppuVar22 + -1" (cast_expression "(int)pppppppuVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pbVar8 = pbVar8 + -1;" (assignment_expression "pbVar8 = pbVar8 + -1" identifier = (binary_expression "pbVar8 + -1" identifier + number_literal)) ;) (expression_statement "*(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);" (assignment_expression "*(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1)" (pointer_expression "*(byte *)pppppppuVar22" * (cast_expression "(byte *)pppppppuVar22" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(byte *)(iVar25 + (uint)*pbVar1)" * (cast_expression "(byte *)(iVar25 + (uint)*pbVar1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + (uint)*pbVar1)" ( (binary_expression "iVar25 + (uint)*pbVar1" identifier + (binary_expression "(uint)*pbVar1" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ))))) ;) }) while (parenthesized_expression "(pppppppuVar16 != pppppppuVar22)" ( (binary_expression "pppppppuVar16 != pppppppuVar22" identifier != identifier) )) ;) })) })) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);" (assignment_expression "uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16)" identifier = (call_expression "rpl_mbrtowc(&local_40,pppppppuVar16)" identifier (argument_list "(&local_40,pppppppuVar16)" ( (pointer_expression "&local_40" & identifier) , identifier )))) ;) (expression_statement "uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;" (assignment_expression "uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3" identifier = (binary_expression "(int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3" (cast_expression "(int)((int)unaff_s7 + (int)pppppppuVar40)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)unaff_s7 + (int)pppppppuVar40)" ( (binary_expression "(int)unaff_s7 + (int)pppppppuVar40" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) ))) - (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }" if (parenthesized_expression "((uVar34 < uVar26) || (0xfffffffd < uVar34))" ( (binary_expression "(uVar34 < uVar26) || (0xfffffffd < uVar34)" (parenthesized_expression "(uVar34 < uVar26)" ( (binary_expression "uVar34 < uVar26" identifier < identifier) )) || (parenthesized_expression "(0xfffffffd < uVar34)" ( (binary_expression "0xfffffffd < uVar34" number_literal < identifier) ))) )) (compound_statement "{\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }" { (expression_statement "unaff_s8 = (uint *******)param_1[6];" (assignment_expression "unaff_s8 = (uint *******)param_1[6]" identifier = (cast_expression "(uint *******)param_1[6]" ( (type_descriptor "uint *******" type_identifier (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[6]" identifier [ number_literal ]))) ;) (expression_statement "iVar25 = param_1[8];" (assignment_expression "iVar25 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0001d228;" goto statement_identifier ;) })) (expression_statement "unaff_s8 = (uint *******)(uVar34 - uVar26);" (assignment_expression "unaff_s8 = (uint *******)(uVar34 - uVar26)" identifier = (cast_expression "(uint *******)(uVar34 - uVar26)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(uVar34 - uVar26)" ( (binary_expression "uVar34 - uVar26" identifier - identifier) )))) ;) (expression_statement "param_1[4] = 0;" (assignment_expression "param_1[4] = 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[7] = (int)unaff_s8;" (assignment_expression "param_1[7] = (int)unaff_s8" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "unaff_s3 = local_40;" (assignment_expression "unaff_s3 = local_40" identifier = identifier) ;) (if_statement "if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }" if (parenthesized_expression "(local_40 == (uint *******)0xffffffff)" ( (binary_expression "local_40 == (uint *******)0xffffffff" identifier == (cast_expression "(uint *******)0xffffffff" ( (type_descriptor "uint *******" type_identifier (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            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }" { (expression_statement "unaff_s8 = (uint *******)param_1[6];" (assignment_expression "unaff_s8 = (uint *******)param_1[6]" identifier = (cast_expression "(uint *******)param_1[6]" ( (type_descriptor "uint *******" type_identifier (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[6]" identifier [ number_literal ]))) ;) (expression_statement "iVar25 = param_1[8];" (assignment_expression "iVar25 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0001d228;" goto statement_identifier ;) })) (labeled_statement "LAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }" statement_identifier : (if_statement "if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }" if (parenthesized_expression "((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f))))" ( (binary_expression "(*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))" (parenthesized_expression "(*(char *)((int)param_1 + 0x4e) == '\0')" ( (binary_expression "*(char *)((int)param_1 + 0x4e) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x4e)" * (cast_expression "(char *)((int)param_1 + 0x4e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x4e)" ( (binary_expression "(int)param_1 + 0x4e" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))" ( (parenthesized_expression "(iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f))" ( (comma_expression "iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)" (assignment_expression "iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3)" identifier = (call_expression "(*(code *)PTR_iswalnum_0003c288)(unaff_s3)" (parenthesized_expression "(*(code *)PTR_iswalnum_0003c288)" ( (pointer_expression "*(code *)PTR_iswalnum_0003c288" * (cast_expression "(code *)PTR_iswalnum_0003c288" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s3)" ( identifier )))) , (binary_expression "iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)" (binary_expression "iVar25 == 0" identifier == number_literal) && (parenthesized_expression "(unaff_s3 != (uint *******)0x5f)" ( (binary_expression "unaff_s3 != (uint *******)0x5f" identifier != (cast_expression "(uint *******)0x5f" ( (type_descriptor "uint *******" type_identifier (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            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }" { (expression_statement "iVar25 = 2;" (assignment_expression "iVar25 = 2" identifier = number_literal) ;) (if_statement "if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }" if (parenthesized_expression "(unaff_s3 == (uint *******)0xa)" ( (binary_expression "unaff_s3 == (uint *******)0xa" identifier == (cast_expression "(uint *******)0xa" ( (type_descriptor "uint *******" type_identifier (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              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }" { (if_statement "if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }" if (parenthesized_expression "(*(char *)((int)param_1 + 0x4d) == '\0')" ( (binary_expression "*(char *)((int)param_1 + 0x4d) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x4d)" * (cast_expression "(char *)((int)param_1 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x4d)" ( (binary_expression "(int)param_1 + 0x4d" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                iVar25 = 0;\n              }" { (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n              iVar25 = 0;\n            }" else (compound_statement "{\n              iVar25 = 0;\n            }" { (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n            iVar25 = 1;\n          }" else (compound_statement "{\n            iVar25 = 1;\n          }" { (expression_statement "iVar25 = 1;" (assignment_expression "iVar25 = 1" identifier = number_literal) ;) })))) (expression_statement "param_1[0xf] = iVar25;" (assignment_expression "param_1[0xf] = iVar25" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "pppppppuVar16 = pppppppuVar24;" (assignment_expression "pppppppuVar16 = pppppppuVar24" identifier = identifier) ;) (if_statement "if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }" if (parenthesized_expression "(unaff_s8 == (uint *******)0x0)" ( (binary_expression "unaff_s8 == (uint *******)0x0" identifier == (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }" { (labeled_statement "LAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);" statement_identifier : (expression_statement "cVar15 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar15 = *(char *)((int)param_1 + 0x4b)" identifier = (pointer_expression "*(char *)((int)param_1 + 0x4b)" * (cast_expression "(char *)((int)param_1 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x4b)" ( (binary_expression "(int)param_1 + 0x4b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (expression_statement "pppppppuVar24 = pppppppuVar16;" (assignment_expression "pppppppuVar24 = pppppppuVar16" identifier = identifier) ;) }) (else_clause "else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }" else (compound_statement "{\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }" { (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (expression_statement "pppppppuVar16 = unaff_s8;" (assignment_expression "pppppppuVar16 = unaff_s8" identifier = identifier) ;) (if_statement "if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }" if (parenthesized_expression "(0 < (int)unaff_s8)" ( (binary_expression "0 < (int)unaff_s8" number_literal < (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }" { (expression_statement "puVar9 = (undefined4 *)param_1[2];" (assignment_expression "puVar9 = (undefined4 *)param_1[2]" identifier = (cast_expression "(undefined4 *)param_1[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (do_statement "do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);" do (compound_statement "{\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            }" { (expression_statement "*puVar9 = 0xffffffff;" (assignment_expression "*puVar9 = 0xffffffff" (pointer_expression "*puVar9" * identifier) = number_literal) ;) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar16 = (uint *******)param_1[7];" (assignment_expression "pppppppuVar16 = (uint *******)param_1[7]" identifier = (cast_expression "(uint *******)param_1[7]" ( (type_descriptor "uint *******" type_identifier (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[7]" identifier [ number_literal ]))) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar25 < (int)pppppppuVar16)" ( (binary_expression "iVar25 < (int)pppppppuVar16" identifier < (cast_expression "(int)pppppppuVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (if_statement "if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }" if (parenthesized_expression "(*(char *)((int)param_1 + 0x4b) != '\0')" ( (binary_expression "*(char *)((int)param_1 + 0x4b) != '\0'" (pointer_expression "*(char *)((int)param_1 + 0x4b)" * (cast_expression "(char *)((int)param_1 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x4b)" ( (binary_expression "(int)param_1 + 0x4b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }" { (expression_statement "(*(code *)PTR_memset_0003c290)(param_1[1],0xff);" (call_expression "(*(code *)PTR_memset_0003c290)(param_1[1],0xff)" (parenthesized_expression "(*(code *)PTR_memset_0003c290)" ( (pointer_expression "*(code *)PTR_memset_0003c290" * (cast_expression "(code *)PTR_memset_0003c290" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[1],0xff)" ( (subscript_expression "param_1[1]" identifier [ number_literal ]) , number_literal ))) ;) (expression_statement "unaff_s8 = (uint *******)param_1[7];" (assignment_expression "unaff_s8 = (uint *******)param_1[7]" identifier = (cast_expression "(uint *******)param_1[7]" ( (type_descriptor "uint *******" type_identifier (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[7]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0001d2cc;" goto statement_identifier ;) })) (expression_statement "unaff_s8 = (uint *******)param_1[7];" (assignment_expression "unaff_s8 = (uint *******)param_1[7]" identifier = (cast_expression "(uint *******)param_1[7]" ( (type_descriptor "uint *******" type_identifier (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[7]" identifier [ number_literal ]))) ;) (expression_statement "cVar15 = '\0';" (assignment_expression "cVar15 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (expression_statement "pppppppuVar28 = (uint *******)param_1[0x14];" (assignment_expression "pppppppuVar28 = (uint *******)param_1[0x14]" identifier = (cast_expression "(uint *******)param_1[0x14]" ( (type_descriptor "uint *******" type_identifier (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[0x14]" identifier [ number_literal ]))) ;) (expression_statement "param_1[8] = (int)unaff_s8;" (assignment_expression "param_1[8] = (int)unaff_s8" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);" (assignment_expression "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40)" identifier = (cast_expression "(uint *******)(param_1[0xc] - (int)pppppppuVar40)" ( (type_descriptor "uint *******" type_identifier (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[0xc] - (int)pppppppuVar40)" ( (binary_expression "param_1[0xc] - (int)pppppppuVar40" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar25 = param_1[0xe] - (int)pppppppuVar40;" (assignment_expression "iVar25 = param_1[0xe] - (int)pppppppuVar40" identifier = (binary_expression "param_1[0xe] - (int)pppppppuVar40" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (goto_statement "goto LAB_0001d090;" goto statement_identifier ;) })) (expression_statement "uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];" (assignment_expression "uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1]" identifier = (subscript_expression "(uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1]" (call_expression "(uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)" ( (binary_expression "(byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8" (cast_expression "(byte *)(*param_1 + (int)pppppppuVar40)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + (int)pppppppuVar40)" ( (binary_expression "*param_1 + (int)pppppppuVar40" (pointer_expression "*param_1" * identifier) + (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) ))) + (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier)) ))) [ number_literal ])) ;) (expression_statement "param_1[8] = 0;" (assignment_expression "param_1[8] = 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_1[0x10] != 0) {\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }" if (parenthesized_expression "(param_1[0x10] != 0)" ( (binary_expression "param_1[0x10] != 0" (subscript_expression "param_1[0x10]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }" { (expression_statement "uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);" (assignment_expression "uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34)" identifier = (binary_expression "(uint)*(byte *)(param_1[0x10] + uVar34)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(param_1[0x10] + uVar34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x10] + uVar34)" ( (binary_expression "param_1[0x10] + uVar34" (subscript_expression "param_1[0x10]" identifier [ number_literal ]) + identifier) ))))) ;) })) (expression_statement "pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);" (assignment_expression "pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1)" identifier = (cast_expression "(uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1)" ( (binary_expression "*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1" (binary_expression "*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f)" (pointer_expression "*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4)" * (cast_expression "(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x11] + ((int)uVar34 >> 5) * 4)" ( (binary_expression "param_1[0x11] + ((int)uVar34 >> 5) * 4" (subscript_expression "param_1[0x11]" identifier [ number_literal ]) + (binary_expression "((int)uVar34 >> 5) * 4" (parenthesized_expression "((int)uVar34 >> 5)" ( (binary_expression "(int)uVar34 >> 5" (cast_expression "(int)uVar34" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) * number_literal)) )))) >> (parenthesized_expression "(uVar34 & 0x1f)" ( (binary_expression "uVar34 & 0x1f" identifier & number_literal) ))) & number_literal) )))) ;) (if_statement "if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {\n        pppppppuVar24 = (uint *******)0x0;\n      }" if (parenthesized_expression "(((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0'))" ( (binary_expression "((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')" (parenthesized_expression "((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10))" ( (binary_expression "(pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)" (parenthesized_expression "(pppppppuVar24 == (uint *******)0x0)" ( (binary_expression "pppppppuVar24 == (uint *******)0x0" identifier == (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) && (parenthesized_expression "(uVar34 == 10)" ( (binary_expression "uVar34 == 10" identifier == number_literal) ))) )) && (parenthesized_expression "(pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')" ( (comma_expression "pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0'" (assignment_expression "pppppppuVar24 = (uint *******)0x2" identifier = (cast_expression "(uint *******)0x2" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) , (binary_expression "*(char *)((int)param_1 + 0x4d) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x4d)" * (cast_expression "(char *)((int)param_1 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x4d)" ( (binary_expression "(int)param_1 + 0x4d" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n        pppppppuVar24 = (uint *******)0x0;\n      }" { (expression_statement "pppppppuVar24 = (uint *******)0x0;" (assignment_expression "pppppppuVar24 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "cVar15 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar15 = *(char *)((int)param_1 + 0x4b)" identifier = (pointer_expression "*(char *)((int)param_1 + 0x4b)" * (cast_expression "(char *)((int)param_1 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x4b)" ( (binary_expression "(int)param_1 + 0x4b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "param_1[0xf] = (int)pppppppuVar24;" (assignment_expression "param_1[0xf] = (int)pppppppuVar24" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);" (assignment_expression "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40)" identifier = (cast_expression "(uint *******)(param_1[0xc] - (int)pppppppuVar40)" ( (type_descriptor "uint *******" type_identifier (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[0xc] - (int)pppppppuVar40)" ( (binary_expression "param_1[0xc] - (int)pppppppuVar40" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar25 = param_1[0xe] - (int)pppppppuVar40;" (assignment_expression "iVar25 = param_1[0xe] - (int)pppppppuVar40" identifier = (binary_expression "param_1[0xe] - (int)pppppppuVar40" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) - (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (cVar15 == '\0') goto LAB_0001d098;" if (parenthesized_expression "(cVar15 == '\0')" ( (binary_expression "cVar15 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001d098;" goto statement_identifier ;)) (expression_statement "param_1[6] = (int)param_2;" (assignment_expression "param_1[6] = (int)param_2" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[0xc] = (int)pppppppuVar16;" (assignment_expression "param_1[0xc] = (int)pppppppuVar16" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[0xe] = iVar25;" (assignment_expression "param_1[0xe] = iVar25" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if (cVar15 == '\0') {\n      param_1[7] = (int)pppppppuVar16;\n    }\n    else if (*(char *)(param_1 + 0x12) == '\0') {\n      pppppppuVar22 = (uint *******)param_1[0x10];\n      if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }\n    }\n    else {\n      FUN_000187d0(param_1);\n    }" if (parenthesized_expression "(cVar15 == '\0')" ( (binary_expression "cVar15 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      param_1[7] = (int)pppppppuVar16;\n    }" { (expression_statement "param_1[7] = (int)pppppppuVar16;" (assignment_expression "param_1[7] = (int)pppppppuVar16" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else if (*(char *)(param_1 + 0x12) == '\0') {\n      pppppppuVar22 = (uint *******)param_1[0x10];\n      if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }\n    }\n    else {\n      FUN_000187d0(param_1);\n    }" else (if_statement "if (*(char *)(param_1 + 0x12) == '\0') {\n      pppppppuVar22 = (uint *******)param_1[0x10];\n      if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }\n    }\n    else {\n      FUN_000187d0(param_1);\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0x12) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x12) == '\0'" (pointer_expression "*(char *)(param_1 + 0x12)" * (cast_expression "(char *)(param_1 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x12)" ( (binary_expression "param_1 + 0x12" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pppppppuVar22 = (uint *******)param_1[0x10];\n      if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }\n    }" { (expression_statement "pppppppuVar22 = (uint *******)param_1[0x10];" (assignment_expression "pppppppuVar22 = (uint *******)param_1[0x10]" identifier = (cast_expression "(uint *******)param_1[0x10]" ( (type_descriptor "uint *******" type_identifier (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[0x10]" identifier [ number_literal ]))) ;) (if_statement "if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }" if (parenthesized_expression "(pppppppuVar22 != (uint *******)0x0)" ( (binary_expression "pppppppuVar22 != (uint *******)0x0" identifier != (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }" { (expression_statement "pppppppuVar24 = (uint *******)param_1[9];" (assignment_expression "pppppppuVar24 = (uint *******)param_1[9]" identifier = (cast_expression "(uint *******)param_1[9]" ( (type_descriptor "uint *******" type_identifier (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[9]" identifier [ number_literal ]))) ;) (expression_statement "pppppppuVar18 = (uint *******)param_1[7];" (assignment_expression "pppppppuVar18 = (uint *******)param_1[7]" identifier = (cast_expression "(uint *******)param_1[7]" ( (type_descriptor "uint *******" type_identifier (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[7]" identifier [ number_literal ]))) ;) (if_statement "if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }" if (parenthesized_expression "((int)pppppppuVar24 <= (int)pppppppuVar16)" ( (binary_expression "(int)pppppppuVar24 <= (int)pppppppuVar16" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pppppppuVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          pppppppuVar16 = pppppppuVar24;\n        }" { (expression_statement "pppppppuVar16 = pppppppuVar24;" (assignment_expression "pppppppuVar16 = pppppppuVar24" identifier = identifier) ;) })) (if_statement "if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }" if (parenthesized_expression "((int)pppppppuVar18 < (int)pppppppuVar16)" ( (binary_expression "(int)pppppppuVar18 < (int)pppppppuVar16" (cast_expression "(int)pppppppuVar18" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppppuVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }" { (while_statement "while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }" { (expression_statement "pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);" (assignment_expression "pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18)" identifier = (cast_expression "(uint *******)(param_1[1] + (int)pppppppuVar18)" ( (type_descriptor "uint *******" type_identifier (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[1] + (int)pppppppuVar18)" ( (binary_expression "param_1[1] + (int)pppppppuVar18" (subscript_expression "param_1[1]" identifier [ number_literal ]) + (cast_expression "(int)pppppppuVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);" (assignment_expression "param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2)" identifier = (cast_expression "(uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2)" ( (binary_expression "(byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2" (cast_expression "(byte *)(*param_1 + (int)pppppppuVar18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + (int)pppppppuVar18)" ( (binary_expression "*param_1 + (int)pppppppuVar18" (pointer_expression "*param_1" * identifier) + (cast_expression "(int)pppppppuVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ))) + (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);" (assignment_expression "pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar18 + 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar18 + 1)" ( (binary_expression "(int)pppppppuVar18 + 1" (cast_expression "(int)pppppppuVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);" (assignment_expression "pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2)" identifier = (cast_expression "(uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar22 + (uint)*(byte *)param_2)" ( (binary_expression "(int)pppppppuVar22 + (uint)*(byte *)param_2" (cast_expression "(int)pppppppuVar22" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)*(byte *)param_2" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )))) ;) (expression_statement "*(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;" (assignment_expression "*(byte *)pppppppuVar24 = *(byte *)pppppppuVar22" (pointer_expression "*(byte *)pppppppuVar24" * (cast_expression "(byte *)pppppppuVar24" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(byte *)pppppppuVar22" * (cast_expression "(byte *)pppppppuVar22" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (pppppppuVar16 == pppppppuVar18) break;" if (parenthesized_expression "(pppppppuVar16 == pppppppuVar18)" ( (binary_expression "pppppppuVar16 == pppppppuVar18" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "param_2 = (uint *******)param_1[6];" (assignment_expression "param_2 = (uint *******)param_1[6]" identifier = (cast_expression "(uint *******)param_1[6]" ( (type_descriptor "uint *******" type_identifier (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[6]" identifier [ number_literal ]))) ;) (expression_statement "pppppppuVar22 = (uint *******)param_1[0x10];" (assignment_expression "pppppppuVar22 = (uint *******)param_1[0x10]" identifier = (cast_expression "(uint *******)param_1[0x10]" ( (type_descriptor "uint *******" type_identifier (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[0x10]" identifier [ number_literal ]))) ;) })) (expression_statement "param_1[7] = (int)pppppppuVar16;" (assignment_expression "param_1[7] = (int)pppppppuVar16" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[8] = (int)pppppppuVar16;" (assignment_expression "param_1[8] = (int)pppppppuVar16" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }" else (compound_statement "{\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }" { (expression_statement "param_1[7] = (int)pppppppuVar18;" (assignment_expression "param_1[7] = (int)pppppppuVar18" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[8] = (int)pppppppuVar18;" (assignment_expression "param_1[8] = (int)pppppppuVar18" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) })) }) (else_clause "else {\n      FUN_000187d0(param_1);\n    }" else (compound_statement "{\n      FUN_000187d0(param_1);\n    }" { (expression_statement "FUN_000187d0(param_1);" (call_expression "FUN_000187d0(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) }))))) (labeled_statement "LAB_0001d0dc:\n    pppppppuVar16 = (uint *******)0x0;" statement_identifier : (expression_statement "pppppppuVar16 = (uint *******)0x0;" (assignment_expression "pppppppuVar16 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\nLAB_0001d010:\n    if (pppppppuVar40 != (uint *******)0x0) goto LAB_0001d018;\nLAB_0001d128:\n    pppppppuVar28 = (uint *******)param_1[0x14];\n    pppppppuVar16 = (uint *******)param_1[0xc];\n    pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n    param_1[6] = (int)param_2;\n    param_1[0xc] = (int)pppppppuVar16;\n    param_1[0xe] = param_1[0xe];\n    if (pppppppuVar22 != (uint *******)0x0) goto LAB_0001d148;\nLAB_0001d0b4:\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_000188b4(param_1);\n      goto LAB_0001d0dc;\n    }\n    pppppppuVar16 = (uint *******)FUN_00018b3c();\n    if (pppppppuVar16 == (uint *******)0x0) goto LAB_0001d0dc;\n  }" else (compound_statement "{\nLAB_0001d010:\n    if (pppppppuVar40 != (uint *******)0x0) goto LAB_0001d018;\nLAB_0001d128:\n    pppppppuVar28 = (uint *******)param_1[0x14];\n    pppppppuVar16 = (uint *******)param_1[0xc];\n    pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n    param_1[6] = (int)param_2;\n    param_1[0xc] = (int)pppppppuVar16;\n    param_1[0xe] = param_1[0xe];\n    if (pppppppuVar22 != (uint *******)0x0) goto LAB_0001d148;\nLAB_0001d0b4:\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_000188b4(param_1);\n      goto LAB_0001d0dc;\n    }\n    pppppppuVar16 = (uint *******)FUN_00018b3c();\n    if (pppppppuVar16 == (uint *******)0x0) goto LAB_0001d0dc;\n  }" { (labeled_statement "LAB_0001d010:\n    if (pppppppuVar40 != (uint *******)0x0) goto LAB_0001d018;" statement_identifier : (if_statement "if (pppppppuVar40 != (uint *******)0x0) goto LAB_0001d018;" if (parenthesized_expression "(pppppppuVar40 != (uint *******)0x0)" ( (binary_expression "pppppppuVar40 != (uint *******)0x0" identifier != (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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_0001d018;" goto statement_identifier ;))) (labeled_statement "LAB_0001d128:\n    pppppppuVar28 = (uint *******)param_1[0x14];" statement_identifier : (expression_statement "pppppppuVar28 = (uint *******)param_1[0x14];" (assignment_expression "pppppppuVar28 = (uint *******)param_1[0x14]" identifier = (cast_expression "(uint *******)param_1[0x14]" ( (type_descriptor "uint *******" type_identifier (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[0x14]" identifier [ number_literal ]))) ;)) (expression_statement "pppppppuVar16 = (uint *******)param_1[0xc];" (assignment_expression "pppppppuVar16 = (uint *******)param_1[0xc]" identifier = (cast_expression "(uint *******)param_1[0xc]" ( (type_descriptor "uint *******" type_identifier (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[0xc]" identifier [ number_literal ]))) ;) (expression_statement "pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);" (assignment_expression "pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2)" identifier = (cast_expression "(uint *******)(uint)((int)pppppppuVar28 < 2)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)((int)pppppppuVar28 < 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pppppppuVar28 < 2)" ( (binary_expression "(int)pppppppuVar28 < 2" (cast_expression "(int)pppppppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))))) ;) (expression_statement "param_1[6] = (int)param_2;" (assignment_expression "param_1[6] = (int)param_2" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[0xc] = (int)pppppppuVar16;" (assignment_expression "param_1[0xc] = (int)pppppppuVar16" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (cast_expression "(int)pppppppuVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[0xe] = param_1[0xe];" (assignment_expression "param_1[0xe] = param_1[0xe]" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = (subscript_expression "param_1[0xe]" identifier [ number_literal ])) ;) (if_statement "if (pppppppuVar22 != (uint *******)0x0) goto LAB_0001d148;" if (parenthesized_expression "(pppppppuVar22 != (uint *******)0x0)" ( (binary_expression "pppppppuVar22 != (uint *******)0x0" identifier != (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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_0001d148;" goto statement_identifier ;)) (labeled_statement "LAB_0001d0b4:\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_000188b4(param_1);\n      goto LAB_0001d0dc;\n    }" statement_identifier : (if_statement "if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_000188b4(param_1);\n      goto LAB_0001d0dc;\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0x12) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x12) == '\0'" (pointer_expression "*(char *)(param_1 + 0x12)" * (cast_expression "(char *)(param_1 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x12)" ( (binary_expression "param_1 + 0x12" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_000188b4(param_1);\n      goto LAB_0001d0dc;\n    }" { (expression_statement "FUN_000188b4(param_1);" (call_expression "FUN_000188b4(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (goto_statement "goto LAB_0001d0dc;" goto statement_identifier ;) }))) (expression_statement "pppppppuVar16 = (uint *******)FUN_00018b3c();" (assignment_expression "pppppppuVar16 = (uint *******)FUN_00018b3c()" identifier = (cast_expression "(uint *******)FUN_00018b3c()" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00018b3c()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (pppppppuVar16 == (uint *******)0x0) goto LAB_0001d0dc;" if (parenthesized_expression "(pppppppuVar16 == (uint *******)0x0)" ( (binary_expression "pppppppuVar16 == (uint *******)0x0" identifier == (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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_0001d0dc;" goto statement_identifier ;)) }))) (if_statement "if (local_2c == *(uint ********)puVar4) {\n    return pppppppuVar16;\n  }" if (parenthesized_expression "(local_2c == *(uint ********)puVar4)" ( (binary_expression "local_2c == *(uint ********)puVar4" identifier == (pointer_expression "*(uint ********)puVar4" * (cast_expression "(uint ********)puVar4" ( (type_descriptor "uint ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) identifier))) )) (compound_statement "{\n    return pppppppuVar16;\n  }" { (return_statement "return pppppppuVar16;" return identifier ;) })) (expression_statement "pcVar46 = FUN_0001d8a0;" (assignment_expression "pcVar46 = FUN_0001d8a0" identifier = identifier) ;) (expression_statement "pppppppuVar16 = local_2c;" (assignment_expression "pppppppuVar16 = local_2c" identifier = identifier) ;) (expression_statement "puVar43 = PTR___stack_chk_fail_0003c2f4;" (assignment_expression "puVar43 = 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 "puVar45 = puVar43 + 0x26830;" (assignment_expression "puVar45 = puVar43 + 0x26830" identifier = (binary_expression "puVar43 + 0x26830" identifier + number_literal)) ;) (expression_statement "puStack_9c = *(undefined4 **)(puVar43 + 0x1ea74);" (assignment_expression "puStack_9c = *(undefined4 **)(puVar43 + 0x1ea74)" identifier = (pointer_expression "*(undefined4 **)(puVar43 + 0x1ea74)" * (cast_expression "(undefined4 **)(puVar43 + 0x1ea74)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar43 + 0x1ea74)" ( (binary_expression "puVar43 + 0x1ea74" identifier + number_literal) ))))) ;) (expression_statement "ppppppuStack_98 = (uint ******)0x0;" (assignment_expression "ppppppuStack_98 = (uint ******)0x0" identifier = (cast_expression "(uint ******)0x0" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "uStack_94 = 0;" (assignment_expression "uStack_94 = 0" identifier = number_literal) ;) (expression_statement "ppppppuStack_90 = (uint ******)0x0;" (assignment_expression "ppppppuStack_90 = (uint ******)0x0" identifier = (cast_expression "(uint ******)0x0" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "ppppppuVar20 = pppppppuVar16[7] + (int)pppppppuVar22 * 3;" (assignment_expression "ppppppuVar20 = pppppppuVar16[7] + (int)pppppppuVar22 * 3" identifier = (binary_expression "pppppppuVar16[7] + (int)pppppppuVar22 * 3" (subscript_expression "pppppppuVar16[7]" identifier [ number_literal ]) + (binary_expression "(int)pppppppuVar22 * 3" (cast_expression "(int)pppppppuVar22" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "puStack_78 = puVar4;" (assignment_expression "puStack_78 = puVar4" identifier = identifier) ;) (expression_statement "pppppppuStack_8c = (uint *******)*puStack_9c;" (assignment_expression "pppppppuStack_8c = (uint *******)*puStack_9c" identifier = (cast_expression "(uint *******)*puStack_9c" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*puStack_9c" * identifier))) ;) (expression_statement "pppppuVar31 = ppppppuVar20[1];" (assignment_expression "pppppuVar31 = ppppppuVar20[1]" identifier = (subscript_expression "ppppppuVar20[1]" identifier [ number_literal ])) ;) (expression_statement "iVar25 = *(int *)(puVar43 + 0x1e948);" (assignment_expression "iVar25 = *(int *)(puVar43 + 0x1e948)" identifier = (pointer_expression "*(int *)(puVar43 + 0x1e948)" * (cast_expression "(int *)(puVar43 + 0x1e948)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar43 + 0x1e948)" ( (binary_expression "puVar43 + 0x1e948" identifier + number_literal) ))))) ;) (expression_statement "pppppppuVar18 = pppppppuVar22;" (assignment_expression "pppppppuVar18 = pppppppuVar22" identifier = identifier) ;) (expression_statement "puStack_a8 = puVar45;" (assignment_expression "puStack_a8 = puVar45" identifier = identifier) ;) (expression_statement "pppppppuStack_a0 = pppppppuVar28;" (assignment_expression "pppppppuStack_a0 = pppppppuVar28" identifier = identifier) ;) (expression_statement "piStack_88 = param_1;" (assignment_expression "piStack_88 = param_1" identifier = identifier) ;) (expression_statement "pppppppuStack_84 = pppppppuVar40;" (assignment_expression "pppppppuStack_84 = pppppppuVar40" identifier = identifier) ;) (expression_statement "pppppppuStack_80 = unaff_s2;" (assignment_expression "pppppppuStack_80 = unaff_s2" identifier = identifier) ;) (expression_statement "pppppppuStack_7c = unaff_s3;" (assignment_expression "pppppppuStack_7c = unaff_s3" identifier = identifier) ;) (expression_statement "pppppppuStack_74 = param_2;" (assignment_expression "pppppppuStack_74 = param_2" identifier = identifier) ;) (expression_statement "pppppppuStack_70 = param_3;" (assignment_expression "pppppppuStack_70 = param_3" identifier = identifier) ;) (expression_statement "pppppppuStack_6c = unaff_s7;" (assignment_expression "pppppppuStack_6c = unaff_s7" identifier = identifier) ;) (expression_statement "pppppppuStack_68 = unaff_s8;" (assignment_expression "pppppppuStack_68 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_64 = pcVar46;" (assignment_expression "pcStack_64 = pcVar46" identifier = identifier) ;) (if_statement "if (0 < (int)pppppuVar31) {\n    pppppppuVar40 = &ppppppuStack_98;\n    param_1 = (int *)0x0;\n    param_2 = (uint *******)(ppppppuVar20 + 2);\n    iVar25 = iVar25 + -0x5d30;\n    param_3 = (uint *******)(*(int *)(puVar43 + 0x1e948) + -20000);\n    do {\n      pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1];\n      if ((pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)) {\n        iVar35 = (int)pppppppuVar28 * 0xc;\n        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;\n        pppppuVar38 = ppppppuVar36[2];\n        pppppppuVar18 = param_2;\n        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);\n        if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }\n      param_1 = (int *)((int)param_1 + 1);\n    } while ((int)param_1 < (int)pppppuVar31);\n    unaff_s2 = pppppppuVar22;\n    unaff_s3 = pppppppuVar24;\n    unaff_s7 = pppppppuVar40;\n    unaff_s8 = pppppppuVar16;\n    if (0 < (int)pppppuVar31) {\n      iVar5 = 0;\n      pppppppuVar22 = pppppppuVar24 + 1;\n      pppppppuVar16 = pppppppuVar24 + 2;\n      pppppppuVar40 = &ppppppuStack_90;\n      do {\n        pppppppuVar19 = pppppppuVar40;\n        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);\n        pppppppuVar28 = pppppppuVar16;\n        if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }\n        iVar5 = iVar5 + 1;\n        pppppppuVar18 = pppppppuVar40;\n        pppppppuVar16 = pppppppuVar28;\n        pppppppuVar40 = pppppppuVar19;\n        puVar45 = puStack_a8;\n      } while (iVar5 < (int)pppppuVar31);\n    }\n  }" if (parenthesized_expression "(0 < (int)pppppuVar31)" ( (binary_expression "0 < (int)pppppuVar31" number_literal < (cast_expression "(int)pppppuVar31" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    pppppppuVar40 = &ppppppuStack_98;\n    param_1 = (int *)0x0;\n    param_2 = (uint *******)(ppppppuVar20 + 2);\n    iVar25 = iVar25 + -0x5d30;\n    param_3 = (uint *******)(*(int *)(puVar43 + 0x1e948) + -20000);\n    do {\n      pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1];\n      if ((pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)) {\n        iVar35 = (int)pppppppuVar28 * 0xc;\n        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;\n        pppppuVar38 = ppppppuVar36[2];\n        pppppppuVar18 = param_2;\n        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);\n        if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }\n      param_1 = (int *)((int)param_1 + 1);\n    } while ((int)param_1 < (int)pppppuVar31);\n    unaff_s2 = pppppppuVar22;\n    unaff_s3 = pppppppuVar24;\n    unaff_s7 = pppppppuVar40;\n    unaff_s8 = pppppppuVar16;\n    if (0 < (int)pppppuVar31) {\n      iVar5 = 0;\n      pppppppuVar22 = pppppppuVar24 + 1;\n      pppppppuVar16 = pppppppuVar24 + 2;\n      pppppppuVar40 = &ppppppuStack_90;\n      do {\n        pppppppuVar19 = pppppppuVar40;\n        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);\n        pppppppuVar28 = pppppppuVar16;\n        if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }\n        iVar5 = iVar5 + 1;\n        pppppppuVar18 = pppppppuVar40;\n        pppppppuVar16 = pppppppuVar28;\n        pppppppuVar40 = pppppppuVar19;\n        puVar45 = puStack_a8;\n      } while (iVar5 < (int)pppppuVar31);\n    }\n  }" { (expression_statement "pppppppuVar40 = &ppppppuStack_98;" (assignment_expression "pppppppuVar40 = &ppppppuStack_98" identifier = (pointer_expression "&ppppppuStack_98" & identifier)) ;) (expression_statement "param_1 = (int *)0x0;" (assignment_expression "param_1 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_2 = (uint *******)(ppppppuVar20 + 2);" (assignment_expression "param_2 = (uint *******)(ppppppuVar20 + 2)" identifier = (cast_expression "(uint *******)(ppppppuVar20 + 2)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(ppppppuVar20 + 2)" ( (binary_expression "ppppppuVar20 + 2" identifier + number_literal) )))) ;) (expression_statement "iVar25 = iVar25 + -0x5d30;" (assignment_expression "iVar25 = iVar25 + -0x5d30" identifier = (binary_expression "iVar25 + -0x5d30" identifier + number_literal)) ;) (expression_statement "param_3 = (uint *******)(*(int *)(puVar43 + 0x1e948) + -20000);" (assignment_expression "param_3 = (uint *******)(*(int *)(puVar43 + 0x1e948) + -20000)" identifier = (cast_expression "(uint *******)(*(int *)(puVar43 + 0x1e948) + -20000)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(puVar43 + 0x1e948) + -20000)" ( (binary_expression "*(int *)(puVar43 + 0x1e948) + -20000" (pointer_expression "*(int *)(puVar43 + 0x1e948)" * (cast_expression "(int *)(puVar43 + 0x1e948)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar43 + 0x1e948)" ( (binary_expression "puVar43 + 0x1e948" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n      pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1];\n      if ((pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)) {\n        iVar35 = (int)pppppppuVar28 * 0xc;\n        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;\n        pppppuVar38 = ppppppuVar36[2];\n        pppppppuVar18 = param_2;\n        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);\n        if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }\n      param_1 = (int *)((int)param_1 + 1);\n    } while ((int)param_1 < (int)pppppuVar31);" do (compound_statement "{\n      pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1];\n      if ((pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)) {\n        iVar35 = (int)pppppppuVar28 * 0xc;\n        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;\n        pppppuVar38 = ppppppuVar36[2];\n        pppppppuVar18 = param_2;\n        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);\n        if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }\n      param_1 = (int *)((int)param_1 + 1);\n    }" { (expression_statement "pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1];" (assignment_expression "pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1]" identifier = (cast_expression "(uint *******)ppppppuVar20[2][(int)param_1]" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "ppppppuVar20[2][(int)param_1]" (subscript_expression "ppppppuVar20[2]" identifier [ number_literal ]) [ (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (if_statement "if ((pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)) {\n        iVar35 = (int)pppppppuVar28 * 0xc;\n        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;\n        pppppuVar38 = ppppppuVar36[2];\n        pppppppuVar18 = param_2;\n        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);\n        if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }" if (parenthesized_expression "((pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0))" ( (binary_expression "(pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)" (parenthesized_expression "(pppppppuVar22 != pppppppuVar28)" ( (binary_expression "pppppppuVar22 != pppppppuVar28" identifier != identifier) )) && (parenthesized_expression "(((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)" ( (binary_expression "((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0" (parenthesized_expression "((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000)" ( (binary_expression "(uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000" (subscript_expression "(uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1]" (call_expression "(uint)(*pppppppuVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pppppppuVar16)" ( (pointer_expression "*pppppppuVar16" * identifier) ))) [ (binary_expression "(int)pppppppuVar28 * 2 + 1" (binary_expression "(int)pppppppuVar28 * 2" (cast_expression "(int)pppppppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        iVar35 = (int)pppppppuVar28 * 0xc;\n        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;\n        pppppuVar38 = ppppppuVar36[2];\n        pppppppuVar18 = param_2;\n        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);\n        if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }" { (expression_statement "iVar35 = (int)pppppppuVar28 * 0xc;" (assignment_expression "iVar35 = (int)pppppppuVar28 * 0xc" identifier = (binary_expression "(int)pppppppuVar28 * 0xc" (cast_expression "(int)pppppppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;" (assignment_expression "ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3" identifier = (binary_expression "pppppppuVar16[5] + (int)pppppppuVar28 * 3" (subscript_expression "pppppppuVar16[5]" identifier [ number_literal ]) + (binary_expression "(int)pppppppuVar28 * 3" (cast_expression "(int)pppppppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "pppppuVar38 = ppppppuVar36[2];" (assignment_expression "pppppuVar38 = ppppppuVar36[2]" identifier = (subscript_expression "ppppppuVar36[2]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar18 = param_2;" (assignment_expression "pppppppuVar18 = param_2" identifier = identifier) ;) (expression_statement "iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);" (assignment_expression "iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38)" identifier = (call_expression "FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38)" identifier (argument_list "(pppppuVar31,param_2,*pppppuVar38)" ( identifier , identifier , (pointer_expression "*pppppuVar38" * identifier) )))) ;) (if_statement "if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }" if (parenthesized_expression "((int)ppppppuVar36[1] < 2)" ( (binary_expression "(int)ppppppuVar36[1] < 2" (cast_expression "(int)ppppppuVar36[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppuVar36[1]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }" { (expression_statement "puVar45 = puStack_a8;" (assignment_expression "puVar45 = puStack_a8" identifier = identifier) ;) (if_statement "if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }" { (expression_statement "pppppppuVar18 = pppppppuVar24 + 2;" (assignment_expression "pppppppuVar18 = pppppppuVar24 + 2" identifier = (binary_expression "pppppppuVar24 + 2" identifier + number_literal)) ;) (expression_statement "iVar5 = FUN_0001a2d0(pppppppuVar24[1]);" (assignment_expression "iVar5 = FUN_0001a2d0(pppppppuVar24[1])" identifier = (call_expression "FUN_0001a2d0(pppppppuVar24[1])" identifier (argument_list "(pppppppuVar24[1])" ( (subscript_expression "pppppppuVar24[1]" identifier [ number_literal ]) )))) ;) (expression_statement "puVar45 = puStack_a8;" (assignment_expression "puVar45 = puStack_a8" identifier = identifier) ;) (if_statement "if (iVar5 != 0) goto LAB_0001d960;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001d960;" goto statement_identifier ;)) })) }) (else_clause "else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }" else (if_statement "if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }" if (parenthesized_expression "((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0))" ( (binary_expression "(iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)" ( (comma_expression "iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0" (assignment_expression "iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2)" identifier = (call_expression "FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2)" identifier (argument_list "(pppppppuVar24[1],pppppppuVar24 + 2)" ( (subscript_expression "pppppppuVar24[1]" identifier [ number_literal ]) , (binary_expression "pppppppuVar24 + 2" identifier + number_literal) )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) (compound_statement "{\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }" { (labeled_statement "LAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];" statement_identifier : (expression_statement "ppppppuVar36 = pppppppuVar16[7];" (assignment_expression "ppppppuVar36 = pppppppuVar16[7]" identifier = (subscript_expression "pppppppuVar16[7]" identifier [ number_literal ])) ;)) (labeled_statement "LAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;" statement_identifier : (expression_statement "pppppppuVar18 = pppppppuStack_a0;" (assignment_expression "pppppppuVar18 = pppppppuStack_a0" identifier = identifier) ;)) (expression_statement "pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;" (assignment_expression "pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)" identifier = (cast_expression "(uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)" identifier (argument_list "(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)" ( identifier , identifier , (binary_expression "(int)ppppppuVar36 + iVar35" (cast_expression "(int)ppppppuVar36" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (if_statement "if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }" if (parenthesized_expression "(pppppppuVar28 != (uint *******)0x0)" ( (binary_expression "pppppppuVar28 != (uint *******)0x0" identifier != (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }" { (expression_statement "pppppppuStack_a0 = pppppppuVar28;" (assignment_expression "pppppppuStack_a0 = pppppppuVar28" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);" (call_expression "(**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90)" (parenthesized_expression "(**(code **)(puStack_a8 + -0x7db0))" ( (pointer_expression "**(code **)(puStack_a8 + -0x7db0)" * (pointer_expression "*(code **)(puStack_a8 + -0x7db0)" * (cast_expression "(code **)(puStack_a8 + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x7db0)" ( (binary_expression "puStack_a8 + -0x7db0" identifier + number_literal) ))))) )) (argument_list "(ppppppuStack_90)" ( identifier ))) ;) (expression_statement "pppppppuVar28 = pppppppuStack_a0;" (assignment_expression "pppppppuVar28 = pppppppuStack_a0" identifier = identifier) ;) (goto_statement "goto LAB_0001db20;" goto statement_identifier ;) })) (expression_statement "pppppuVar31 = ppppppuVar20[1];" (assignment_expression "pppppuVar31 = ppppppuVar20[1]" identifier = (subscript_expression "ppppppuVar20[1]" identifier [ number_literal ])) ;) (expression_statement "puVar45 = puStack_a8;" (assignment_expression "puVar45 = puStack_a8" identifier = identifier) ;) }) (else_clause "else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }" else (compound_statement "{\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }" { (expression_statement "pppppppuVar18 = param_2;" (assignment_expression "pppppppuVar18 = param_2" identifier = identifier) ;) (expression_statement "puVar45 = puStack_a8;" (assignment_expression "puVar45 = puStack_a8" identifier = identifier) ;) (if_statement "if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }" if (parenthesized_expression "((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0))" ( (binary_expression "(0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)" (parenthesized_expression "(0 < (int)pppppuVar38[1])" ( (binary_expression "0 < (int)pppppuVar38[1]" number_literal < (cast_expression "(int)pppppuVar38[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppuVar38[1]" identifier [ number_literal ]))) )) && (parenthesized_expression "(iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)" ( (comma_expression "iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0" (assignment_expression "iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1])" identifier = (call_expression "FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1])" identifier (argument_list "(pppppuVar31,param_2,pppppuVar38[1])" ( identifier , identifier , (subscript_expression "pppppuVar38[1]" identifier [ number_literal ]) )))) , (comma_expression "puVar45 = puStack_a8,\n             iVar5 == 0" (assignment_expression "puVar45 = puStack_a8" identifier = identifier) , (binary_expression "iVar5 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }" { (expression_statement "pppppppuVar18 = pppppppuVar24 + 2;" (assignment_expression "pppppppuVar18 = pppppppuVar24 + 2" identifier = (binary_expression "pppppppuVar24 + 2" identifier + number_literal)) ;) (expression_statement "iVar5 = FUN_0001a2d0(pppppppuVar24[1]);" (assignment_expression "iVar5 = FUN_0001a2d0(pppppppuVar24[1])" identifier = (call_expression "FUN_0001a2d0(pppppppuVar24[1])" identifier (argument_list "(pppppppuVar24[1])" ( (subscript_expression "pppppppuVar24[1]" identifier [ number_literal ]) )))) ;) (expression_statement "puVar45 = puStack_a8;" (assignment_expression "puVar45 = puStack_a8" identifier = identifier) ;) (if_statement "if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }" { (expression_statement "ppppppuVar36 = pppppppuVar16[7];" (assignment_expression "ppppppuVar36 = pppppppuVar16[7]" identifier = (subscript_expression "pppppppuVar16[7]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0001d964;" goto statement_identifier ;) })) })) }))))) })) (expression_statement "param_1 = (int *)((int)param_1 + 1);" (assignment_expression "param_1 = (int *)((int)param_1 + 1)" identifier = (cast_expression "(int *)((int)param_1 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 1)" ( (binary_expression "(int)param_1 + 1" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int)param_1 < (int)pppppuVar31)" ( (binary_expression "(int)param_1 < (int)pppppuVar31" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppuVar31" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "unaff_s2 = pppppppuVar22;" (assignment_expression "unaff_s2 = pppppppuVar22" identifier = identifier) ;) (expression_statement "unaff_s3 = pppppppuVar24;" (assignment_expression "unaff_s3 = pppppppuVar24" identifier = identifier) ;) (expression_statement "unaff_s7 = pppppppuVar40;" (assignment_expression "unaff_s7 = pppppppuVar40" identifier = identifier) ;) (expression_statement "unaff_s8 = pppppppuVar16;" (assignment_expression "unaff_s8 = pppppppuVar16" identifier = identifier) ;) (if_statement "if (0 < (int)pppppuVar31) {\n      iVar5 = 0;\n      pppppppuVar22 = pppppppuVar24 + 1;\n      pppppppuVar16 = pppppppuVar24 + 2;\n      pppppppuVar40 = &ppppppuStack_90;\n      do {\n        pppppppuVar19 = pppppppuVar40;\n        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);\n        pppppppuVar28 = pppppppuVar16;\n        if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }\n        iVar5 = iVar5 + 1;\n        pppppppuVar18 = pppppppuVar40;\n        pppppppuVar16 = pppppppuVar28;\n        pppppppuVar40 = pppppppuVar19;\n        puVar45 = puStack_a8;\n      } while (iVar5 < (int)pppppuVar31);\n    }" if (parenthesized_expression "(0 < (int)pppppuVar31)" ( (binary_expression "0 < (int)pppppuVar31" number_literal < (cast_expression "(int)pppppuVar31" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      iVar5 = 0;\n      pppppppuVar22 = pppppppuVar24 + 1;\n      pppppppuVar16 = pppppppuVar24 + 2;\n      pppppppuVar40 = &ppppppuStack_90;\n      do {\n        pppppppuVar19 = pppppppuVar40;\n        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);\n        pppppppuVar28 = pppppppuVar16;\n        if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }\n        iVar5 = iVar5 + 1;\n        pppppppuVar18 = pppppppuVar40;\n        pppppppuVar16 = pppppppuVar28;\n        pppppppuVar40 = pppppppuVar19;\n        puVar45 = puStack_a8;\n      } while (iVar5 < (int)pppppuVar31);\n    }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "pppppppuVar22 = pppppppuVar24 + 1;" (assignment_expression "pppppppuVar22 = pppppppuVar24 + 1" identifier = (binary_expression "pppppppuVar24 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar16 = pppppppuVar24 + 2;" (assignment_expression "pppppppuVar16 = pppppppuVar24 + 2" identifier = (binary_expression "pppppppuVar24 + 2" identifier + number_literal)) ;) (expression_statement "pppppppuVar40 = &ppppppuStack_90;" (assignment_expression "pppppppuVar40 = &ppppppuStack_90" identifier = (pointer_expression "&ppppppuStack_90" & identifier)) ;) (do_statement "do {\n        pppppppuVar19 = pppppppuVar40;\n        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);\n        pppppppuVar28 = pppppppuVar16;\n        if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }\n        iVar5 = iVar5 + 1;\n        pppppppuVar18 = pppppppuVar40;\n        pppppppuVar16 = pppppppuVar28;\n        pppppppuVar40 = pppppppuVar19;\n        puVar45 = puStack_a8;\n      } while (iVar5 < (int)pppppuVar31);" do (compound_statement "{\n        pppppppuVar19 = pppppppuVar40;\n        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);\n        pppppppuVar28 = pppppppuVar16;\n        if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }\n        iVar5 = iVar5 + 1;\n        pppppppuVar18 = pppppppuVar40;\n        pppppppuVar16 = pppppppuVar28;\n        pppppppuVar40 = pppppppuVar19;\n        puVar45 = puStack_a8;\n      }" { (expression_statement "pppppppuVar19 = pppppppuVar40;" (assignment_expression "pppppppuVar19 = pppppppuVar40" identifier = identifier) ;) (expression_statement "iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);" (assignment_expression "iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5])" identifier = (call_expression "FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5])" identifier (argument_list "(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5])" ( identifier , identifier , (subscript_expression "ppppppuVar20[2][iVar5]" (subscript_expression "ppppppuVar20[2]" identifier [ number_literal ]) [ identifier ]) )))) ;) (expression_statement "pppppppuVar28 = pppppppuVar16;" (assignment_expression "pppppppuVar28 = pppppppuVar16" identifier = identifier) ;) (if_statement "if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }" if (parenthesized_expression "(iVar35 == 0)" ( (binary_expression "iVar35 == 0" identifier == number_literal) )) (compound_statement "{\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }" { (expression_statement "ppppppuVar36 = pppppppuVar24[1];" (assignment_expression "ppppppuVar36 = pppppppuVar24[1]" identifier = (subscript_expression "pppppppuVar24[1]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar18 = pppppppuVar16;" (assignment_expression "pppppppuVar18 = pppppppuVar16" identifier = identifier) ;) (expression_statement "iVar35 = FUN_0001a2d0(ppppppuVar36);" (assignment_expression "iVar35 = FUN_0001a2d0(ppppppuVar36)" identifier = (call_expression "FUN_0001a2d0(ppppppuVar36)" identifier (argument_list "(ppppppuVar36)" ( identifier )))) ;) (expression_statement "pppppppuVar40 = pppppppuVar16;" (assignment_expression "pppppppuVar40 = pppppppuVar16" identifier = identifier) ;) (expression_statement "pppppppuVar28 = pppppppuVar18;" (assignment_expression "pppppppuVar28 = pppppppuVar18" identifier = identifier) ;) (if_statement "if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }" if (parenthesized_expression "((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36))" ( (binary_expression "(-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)" (parenthesized_expression "(-1 < iVar35 + -1)" ( (binary_expression "-1 < iVar35 + -1" number_literal < (binary_expression "iVar35 + -1" identifier + number_literal)) )) && (parenthesized_expression "(iVar35 + -1 < (int)ppppppuVar36)" ( (binary_expression "iVar35 + -1 < (int)ppppppuVar36" (binary_expression "iVar35 + -1" identifier + number_literal) < (cast_expression "(int)ppppppuVar36" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }" { (expression_statement "pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);" (assignment_expression "pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1)" (subscript_expression "pppppppuVar24[1]" identifier [ number_literal ]) = (cast_expression "(uint ******)((int)ppppppuVar36 - 1)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)ppppppuVar36 - 1)" ( (binary_expression "(int)ppppppuVar36 - 1" (cast_expression "(int)ppppppuVar36" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) )))) ;) (expression_statement "FUN_0001a534(pppppppuVar22);" (call_expression "FUN_0001a534(pppppppuVar22)" identifier (argument_list "(pppppppuVar22)" ( identifier ))) ;) (expression_statement "pppppuVar31 = ppppppuVar20[1];" (assignment_expression "pppppuVar31 = ppppppuVar20[1]" identifier = (subscript_expression "ppppppuVar20[1]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar40 = pppppppuVar18;" (assignment_expression "pppppppuVar40 = pppppppuVar18" identifier = identifier) ;) })) })) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar18 = pppppppuVar40;" (assignment_expression "pppppppuVar18 = pppppppuVar40" identifier = identifier) ;) (expression_statement "pppppppuVar16 = pppppppuVar28;" (assignment_expression "pppppppuVar16 = pppppppuVar28" identifier = identifier) ;) (expression_statement "pppppppuVar40 = pppppppuVar19;" (assignment_expression "pppppppuVar40 = pppppppuVar19" identifier = identifier) ;) (expression_statement "puVar45 = puStack_a8;" (assignment_expression "puVar45 = puStack_a8" identifier = identifier) ;) }) while (parenthesized_expression "(iVar5 < (int)pppppuVar31)" ( (binary_expression "iVar5 < (int)pppppuVar31" identifier < (cast_expression "(int)pppppuVar31" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) })) (expression_statement "(**(code **)(puVar45 + -0x7db0))(ppppppuStack_90);" (call_expression "(**(code **)(puVar45 + -0x7db0))(ppppppuStack_90)" (parenthesized_expression "(**(code **)(puVar45 + -0x7db0))" ( (pointer_expression "**(code **)(puVar45 + -0x7db0)" * (pointer_expression "*(code **)(puVar45 + -0x7db0)" * (cast_expression "(code **)(puVar45 + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar45 + -0x7db0)" ( (binary_expression "puVar45 + -0x7db0" identifier + number_literal) ))))) )) (argument_list "(ppppppuStack_90)" ( identifier ))) ;) (expression_statement "pppppppuVar28 = (uint *******)0x0;" (assignment_expression "pppppppuVar28 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "pppppppuVar22 = unaff_s2;" (assignment_expression "pppppppuVar22 = unaff_s2" identifier = identifier) ;) (expression_statement "pppppppuVar24 = unaff_s3;" (assignment_expression "pppppppuVar24 = unaff_s3" identifier = identifier) ;) (expression_statement "pppppppuVar40 = unaff_s7;" (assignment_expression "pppppppuVar40 = unaff_s7" identifier = identifier) ;) (expression_statement "pppppppuVar16 = unaff_s8;" (assignment_expression "pppppppuVar16 = unaff_s8" identifier = identifier) ;) (labeled_statement "LAB_0001db20:\n  if (pppppppuStack_8c == (uint *******)*puStack_9c) {\n    return pppppppuVar28;\n  }" statement_identifier : (if_statement "if (pppppppuStack_8c == (uint *******)*puStack_9c) {\n    return pppppppuVar28;\n  }" if (parenthesized_expression "(pppppppuStack_8c == (uint *******)*puStack_9c)" ( (binary_expression "pppppppuStack_8c == (uint *******)*puStack_9c" identifier == (cast_expression "(uint *******)*puStack_9c" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*puStack_9c" * identifier))) )) (compound_statement "{\n    return pppppppuVar28;\n  }" { (return_statement "return pppppppuVar28;" return identifier ;) }))) (expression_statement "pcVar46 = *(code **)(puStack_a8 + -0x7ddc);" (assignment_expression "pcVar46 = *(code **)(puStack_a8 + -0x7ddc)" identifier = (pointer_expression "*(code **)(puStack_a8 + -0x7ddc)" * (cast_expression "(code **)(puStack_a8 + -0x7ddc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x7ddc)" ( (binary_expression "puStack_a8 + -0x7ddc" identifier + number_literal) ))))) ;) (expression_statement "uVar47 = 0x1db90;" (assignment_expression "uVar47 = 0x1db90" identifier = number_literal) ;) (expression_statement "pppppppuVar19 = pppppppuStack_8c;" (assignment_expression "pppppppuVar19 = pppppppuStack_8c" identifier = identifier) ;) (expression_statement "(*pcVar46)();" (call_expression "(*pcVar46)()" (parenthesized_expression "(*pcVar46)" ( (pointer_expression "*pcVar46" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar6 = *(int **)(pcVar46 + 0x1e784);" (assignment_expression "piVar6 = *(int **)(pcVar46 + 0x1e784)" identifier = (pointer_expression "*(int **)(pcVar46 + 0x1e784)" * (cast_expression "(int **)(pcVar46 + 0x1e784)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e784)" ( (binary_expression "pcVar46 + 0x1e784" identifier + number_literal) ))))) ;) (expression_statement "piStack_e4 = (int *)*piVar6;" (assignment_expression "piStack_e4 = (int *)*piVar6" identifier = (cast_expression "(int *)*piVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) ;) (expression_statement "pppppppuVar28 = pppppppuVar18;" (assignment_expression "pppppppuVar28 = pppppppuVar18" identifier = identifier) ;) (expression_statement "piStack_e0 = param_1;" (assignment_expression "piStack_e0 = param_1" identifier = identifier) ;) (expression_statement "ppppppuStack_dc = ppppppuVar20;" (assignment_expression "ppppppuStack_dc = ppppppuVar20" identifier = identifier) ;) (expression_statement "pppppppuStack_d8 = pppppppuVar22;" (assignment_expression "pppppppuStack_d8 = pppppppuVar22" identifier = identifier) ;) (expression_statement "pppppppuStack_d4 = pppppppuVar24;" (assignment_expression "pppppppuStack_d4 = pppppppuVar24" identifier = identifier) ;) (expression_statement "iStack_d0 = iVar25;" (assignment_expression "iStack_d0 = iVar25" identifier = identifier) ;) (expression_statement "pppppppuStack_cc = param_2;" (assignment_expression "pppppppuStack_cc = param_2" identifier = identifier) ;) (expression_statement "pppppppuStack_c8 = param_3;" (assignment_expression "pppppppuStack_c8 = param_3" identifier = identifier) ;) (expression_statement "pppppppuStack_c4 = pppppppuVar40;" (assignment_expression "pppppppuStack_c4 = pppppppuVar40" identifier = identifier) ;) (expression_statement "pppppppuStack_c0 = pppppppuVar16;" (assignment_expression "pppppppuStack_c0 = pppppppuVar16" identifier = identifier) ;) (expression_statement "uStack_bc = uVar47;" (assignment_expression "uStack_bc = uVar47" identifier = identifier) ;) (expression_statement "iVar25 = (**(code **)(pcVar46 + 0x1e724))(0x2c00);" (assignment_expression "iVar25 = (**(code **)(pcVar46 + 0x1e724))(0x2c00)" identifier = (call_expression "(**(code **)(pcVar46 + 0x1e724))(0x2c00)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e724))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e724)" * (pointer_expression "*(code **)(pcVar46 + 0x1e724)" * (cast_expression "(code **)(pcVar46 + 0x1e724)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e724)" ( (binary_expression "pcVar46 + 0x1e724" identifier + number_literal) ))))) )) (argument_list "(0x2c00)" ( number_literal )))) ;) (if_statement "if (iVar25 == 0) goto LAB_0001dffc;" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001dffc;" goto statement_identifier ;)) (expression_statement "ppppppuVar20 = pppppppuVar18[2];" (assignment_expression "ppppppuVar20 = pppppppuVar18[2]" identifier = (subscript_expression "pppppppuVar18[2]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar18[0xb] = (uint ******)0x0;" (assignment_expression "pppppppuVar18[0xb] = (uint ******)0x0" (subscript_expression "pppppppuVar18[0xb]" identifier [ number_literal ]) = (cast_expression "(uint ******)0x0" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "puVar7 = (uint *)(iVar25 + 0xc00);" (assignment_expression "puVar7 = (uint *)(iVar25 + 0xc00)" identifier = (cast_expression "(uint *)(iVar25 + 0xc00)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0xc00)" ( (binary_expression "iVar25 + 0xc00" identifier + number_literal) )))) ;) (expression_statement "pppppppuVar18[0xc] = (uint ******)0x0;" (assignment_expression "pppppppuVar18[0xc] = (uint ******)0x0" (subscript_expression "pppppppuVar18[0xc]" identifier [ number_literal ]) = (cast_expression "(uint ******)0x0" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppuStack_144 = (uint *******)0x0;" (assignment_expression "pppppppuStack_144 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "uStack_140 = 0;" (assignment_expression "uStack_140 = 0" identifier = number_literal) ;) (expression_statement "uStack_13c = 0;" (assignment_expression "uStack_13c = 0" identifier = number_literal) ;) (expression_statement "uStack_138 = 0;" (assignment_expression "uStack_138 = 0" identifier = number_literal) ;) (expression_statement "uStack_134 = 0;" (assignment_expression "uStack_134 = 0" identifier = number_literal) ;) (expression_statement "uStack_130 = 0;" (assignment_expression "uStack_130 = 0" identifier = number_literal) ;) (expression_statement "uStack_12c = 0;" (assignment_expression "uStack_12c = 0" identifier = number_literal) ;) (expression_statement "uStack_128 = 0;" (assignment_expression "uStack_128 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)ppppppuVar20) {\n    iVar5 = *(int *)(pcVar46 + 0x1e658);\n    iStack_184 = 0;\n    iVar35 = *(int *)(pcVar46 + 0x1e658);\n    pppppppuVar24 = (uint *******)0x0;\nLAB_0001dc74:\n    ppppppuVar36 = *pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2;\n    bVar2 = *(byte *)(ppppppuVar36 + 1);\n    uVar34 = (uint)((int)ppppppuVar36[1] << 8) >> 0x16;\n    if (bVar2 == 1) {\n      pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5));\n      pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f));\n      *pppppppuVar40 = (uint ******)pppppppuVar28;\nLAB_0001e060:\n      pppppppuVar40 = pppppppuStack_144;\n      if (uVar34 == 0) goto LAB_0001e15c;\n      if ((uVar34 & 0x20) == 0) {\n        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }\n        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      else {\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      pppppppuStack_144 = (uint *******)0x0;\n      uStack_140 = 0;\n      uStack_13c = 0;\n      uStack_138 = 0;\n      uStack_134 = 0;\n      uStack_130 = 0;\n      uStack_12c = 0;\n      uStack_128 = 0;\n    }\n    else {\n      if (bVar2 == 3) {\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }\n      if (bVar2 == 5) {\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      pppppppuVar28 = (uint *******)0xffffffff;\n      if (bVar2 == 7) {\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }\nLAB_0001dcc8:\n    iStack_184 = iStack_184 + 1;\n    if ((int)ppppppuVar20 <= iStack_184) goto code_r0x0001dcdc;\n    goto LAB_0001dc74;\n  }" if (parenthesized_expression "(0 < (int)ppppppuVar20)" ( (binary_expression "0 < (int)ppppppuVar20" number_literal < (cast_expression "(int)ppppppuVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    iVar5 = *(int *)(pcVar46 + 0x1e658);\n    iStack_184 = 0;\n    iVar35 = *(int *)(pcVar46 + 0x1e658);\n    pppppppuVar24 = (uint *******)0x0;\nLAB_0001dc74:\n    ppppppuVar36 = *pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2;\n    bVar2 = *(byte *)(ppppppuVar36 + 1);\n    uVar34 = (uint)((int)ppppppuVar36[1] << 8) >> 0x16;\n    if (bVar2 == 1) {\n      pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5));\n      pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f));\n      *pppppppuVar40 = (uint ******)pppppppuVar28;\nLAB_0001e060:\n      pppppppuVar40 = pppppppuStack_144;\n      if (uVar34 == 0) goto LAB_0001e15c;\n      if ((uVar34 & 0x20) == 0) {\n        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }\n        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      else {\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      pppppppuStack_144 = (uint *******)0x0;\n      uStack_140 = 0;\n      uStack_13c = 0;\n      uStack_138 = 0;\n      uStack_134 = 0;\n      uStack_130 = 0;\n      uStack_12c = 0;\n      uStack_128 = 0;\n    }\n    else {\n      if (bVar2 == 3) {\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }\n      if (bVar2 == 5) {\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      pppppppuVar28 = (uint *******)0xffffffff;\n      if (bVar2 == 7) {\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }\nLAB_0001dcc8:\n    iStack_184 = iStack_184 + 1;\n    if ((int)ppppppuVar20 <= iStack_184) goto code_r0x0001dcdc;\n    goto LAB_0001dc74;\n  }" { (expression_statement "iVar5 = *(int *)(pcVar46 + 0x1e658);" (assignment_expression "iVar5 = *(int *)(pcVar46 + 0x1e658)" identifier = (pointer_expression "*(int *)(pcVar46 + 0x1e658)" * (cast_expression "(int *)(pcVar46 + 0x1e658)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar46 + 0x1e658)" ( (binary_expression "pcVar46 + 0x1e658" identifier + number_literal) ))))) ;) (expression_statement "iStack_184 = 0;" (assignment_expression "iStack_184 = 0" identifier = number_literal) ;) (expression_statement "iVar35 = *(int *)(pcVar46 + 0x1e658);" (assignment_expression "iVar35 = *(int *)(pcVar46 + 0x1e658)" identifier = (pointer_expression "*(int *)(pcVar46 + 0x1e658)" * (cast_expression "(int *)(pcVar46 + 0x1e658)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar46 + 0x1e658)" ( (binary_expression "pcVar46 + 0x1e658" identifier + number_literal) ))))) ;) (expression_statement "pppppppuVar24 = (uint *******)0x0;" (assignment_expression "pppppppuVar24 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (labeled_statement "LAB_0001dc74:\n    ppppppuVar36 = *pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2;" statement_identifier : (expression_statement "ppppppuVar36 = *pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2;" (assignment_expression "ppppppuVar36 = *pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2" identifier = (binary_expression "*pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2" (pointer_expression "*pppppppuVar19" * identifier) + (binary_expression "(int)pppppppuVar18[3][iStack_184] * 2" (cast_expression "(int)pppppppuVar18[3][iStack_184]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppuVar18[3][iStack_184]" (subscript_expression "pppppppuVar18[3]" identifier [ number_literal ]) [ identifier ])) * number_literal))) ;)) (expression_statement "bVar2 = *(byte *)(ppppppuVar36 + 1);" (assignment_expression "bVar2 = *(byte *)(ppppppuVar36 + 1)" identifier = (pointer_expression "*(byte *)(ppppppuVar36 + 1)" * (cast_expression "(byte *)(ppppppuVar36 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppuVar36 + 1)" ( (binary_expression "ppppppuVar36 + 1" identifier + number_literal) ))))) ;) (expression_statement "uVar34 = (uint)((int)ppppppuVar36[1] << 8) >> 0x16;" (assignment_expression "uVar34 = (uint)((int)ppppppuVar36[1] << 8) >> 0x16" identifier = (binary_expression "(uint)((int)ppppppuVar36[1] << 8) >> 0x16" (call_expression "(uint)((int)ppppppuVar36[1] << 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppppppuVar36[1] << 8)" ( (binary_expression "(int)ppppppuVar36[1] << 8" (cast_expression "(int)ppppppuVar36[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppuVar36[1]" identifier [ number_literal ])) << number_literal) ))) >> number_literal)) ;) (if_statement "if (bVar2 == 1) {\n      pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5));\n      pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f));\n      *pppppppuVar40 = (uint ******)pppppppuVar28;\nLAB_0001e060:\n      pppppppuVar40 = pppppppuStack_144;\n      if (uVar34 == 0) goto LAB_0001e15c;\n      if ((uVar34 & 0x20) == 0) {\n        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }\n        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      else {\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      pppppppuStack_144 = (uint *******)0x0;\n      uStack_140 = 0;\n      uStack_13c = 0;\n      uStack_138 = 0;\n      uStack_134 = 0;\n      uStack_130 = 0;\n      uStack_12c = 0;\n      uStack_128 = 0;\n    }\n    else {\n      if (bVar2 == 3) {\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }\n      if (bVar2 == 5) {\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      pppppppuVar28 = (uint *******)0xffffffff;\n      if (bVar2 == 7) {\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }" if (parenthesized_expression "(bVar2 == 1)" ( (binary_expression "bVar2 == 1" identifier == number_literal) )) (compound_statement "{\n      pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5));\n      pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f));\n      *pppppppuVar40 = (uint ******)pppppppuVar28;\nLAB_0001e060:\n      pppppppuVar40 = pppppppuStack_144;\n      if (uVar34 == 0) goto LAB_0001e15c;\n      if ((uVar34 & 0x20) == 0) {\n        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }\n        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      else {\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      pppppppuStack_144 = (uint *******)0x0;\n      uStack_140 = 0;\n      uStack_13c = 0;\n      uStack_138 = 0;\n      uStack_134 = 0;\n      uStack_130 = 0;\n      uStack_12c = 0;\n      uStack_128 = 0;\n    }" { (expression_statement "pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5));" (assignment_expression "pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))" identifier = (cast_expression "(uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))" ( (binary_expression "&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5)" (pointer_expression "&pppppppuStack_144" & identifier) + (parenthesized_expression "((int)(uint)*(byte *)ppppppuVar36 >> 5)" ( (binary_expression "(int)(uint)*(byte *)ppppppuVar36 >> 5" (binary_expression "(int)(uint)*(byte *)ppppppuVar36" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)ppppppuVar36" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal) ))) )))) ;) (expression_statement "pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f));" (assignment_expression "pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f))" identifier = (cast_expression "(uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f))" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f))" ( (binary_expression "(uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f)" (binary_expression "(uint)*pppppppuVar40" (parenthesized_expression "(uint)" ( identifier )) * identifier) | (binary_expression "1 << (*(byte *)ppppppuVar36 & 0x1f)" number_literal << (parenthesized_expression "(*(byte *)ppppppuVar36 & 0x1f)" ( (binary_expression "*(byte *)ppppppuVar36 & 0x1f" (pointer_expression "*(byte *)ppppppuVar36" * (cast_expression "(byte *)ppppppuVar36" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) )))) )))) ;) (expression_statement "*pppppppuVar40 = (uint ******)pppppppuVar28;" (assignment_expression "*pppppppuVar40 = (uint ******)pppppppuVar28" (pointer_expression "*pppppppuVar40" * identifier) = (cast_expression "(uint ******)pppppppuVar28" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (labeled_statement "LAB_0001e060:\n      pppppppuVar40 = pppppppuStack_144;" statement_identifier : (expression_statement "pppppppuVar40 = pppppppuStack_144;" (assignment_expression "pppppppuVar40 = pppppppuStack_144" identifier = identifier) ;)) (if_statement "if (uVar34 == 0) goto LAB_0001e15c;" if (parenthesized_expression "(uVar34 == 0)" ( (binary_expression "uVar34 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001e15c;" goto statement_identifier ;)) (if_statement "if ((uVar34 & 0x20) == 0) {\n        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }\n        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      else {\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }" if (parenthesized_expression "((uVar34 & 0x20) == 0)" ( (binary_expression "(uVar34 & 0x20) == 0" (parenthesized_expression "(uVar34 & 0x20)" ( (binary_expression "uVar34 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }\n        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        pppppppuStack_144 = (uint *******)0x0;\n      }" { (if_statement "if ((uVar34 & 0x80) != 0) goto LAB_0001e428;" if (parenthesized_expression "((uVar34 & 0x80) != 0)" ( (binary_expression "(uVar34 & 0x80) != 0" (parenthesized_expression "(uVar34 & 0x80)" ( (binary_expression "uVar34 & 0x80" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001e428;" goto statement_identifier ;)) (labeled_statement "LAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }" statement_identifier : (if_statement "if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }" if (parenthesized_expression "((uVar34 & 4) != 0)" ( (binary_expression "(uVar34 & 4) != 0" (parenthesized_expression "(uVar34 & 4)" ( (binary_expression "uVar34 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }" { (if_statement "if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }" if (parenthesized_expression "(bVar2 == 1)" ( (binary_expression "bVar2 == 1" identifier == number_literal) )) (compound_statement "{\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }" { (if_statement "if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;" if (parenthesized_expression "(((uint)ppppppuVar36[1] & 0x200) == 0)" ( (binary_expression "((uint)ppppppuVar36[1] & 0x200) == 0" (parenthesized_expression "((uint)ppppppuVar36[1] & 0x200)" ( (binary_expression "(uint)ppppppuVar36[1] & 0x200" (cast_expression "(uint)ppppppuVar36[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppuVar36[1]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001e428;" goto statement_identifier ;)) (expression_statement "ppppppuVar13 = pppppppuVar19[0x17];" (assignment_expression "ppppppuVar13 = pppppppuVar19[0x17]" identifier = (subscript_expression "pppppppuVar19[0x17]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }" else (compound_statement "{\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }" { (expression_statement "ppppppuVar13 = pppppppuVar19[0x17];" (assignment_expression "ppppppuVar13 = pppppppuVar19[0x17]" identifier = (subscript_expression "pppppppuVar19[0x17]" identifier [ number_literal ])) ;) }))) (if_statement "if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }" if (parenthesized_expression "((int)ppppppuVar13 < 2)" ( (binary_expression "(int)ppppppuVar13 < 2" (cast_expression "(int)ppppppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }" { (expression_statement "pppppppuVar16 = pppppppuVar19 + 0x18;" (assignment_expression "pppppppuVar16 = pppppppuVar19 + 0x18" identifier = (binary_expression "pppppppuVar19 + 0x18" identifier + number_literal)) ;) (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" identifier = number_literal) ;) (expression_statement "pppppppuVar40 = (uint *******)&pppppppuStack_144;" (assignment_expression "pppppppuVar40 = (uint *******)&pppppppuStack_144" identifier = (cast_expression "(uint *******)&pppppppuStack_144" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&pppppppuStack_144" & identifier))) ;) (do_statement "do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);" do (compound_statement "{\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            }" { (expression_statement "pppppppuVar22 = pppppppuVar40 + 1;" (assignment_expression "pppppppuVar22 = pppppppuVar40 + 1" identifier = (binary_expression "pppppppuVar40 + 1" identifier + number_literal)) ;) (expression_statement "ppppppuVar13 = *pppppppuVar16;" (assignment_expression "ppppppuVar13 = *pppppppuVar16" identifier = (pointer_expression "*pppppppuVar16" * identifier)) ;) (expression_statement "pppppppuVar16 = pppppppuVar16 + 1;" (assignment_expression "pppppppuVar16 = pppppppuVar16 + 1" identifier = (binary_expression "pppppppuVar16 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);" (assignment_expression "pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13)" identifier = (cast_expression "(uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)*pppppppuVar40 & (uint)ppppppuVar13)" ( (binary_expression "(uint)*pppppppuVar40 & (uint)ppppppuVar13" (binary_expression "(uint)*pppppppuVar40" (parenthesized_expression "(uint)" ( identifier )) * identifier) & (cast_expression "(uint)ppppppuVar13" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "*pppppppuVar40 = (uint ******)pppppppuVar28;" (assignment_expression "*pppppppuVar40 = (uint ******)pppppppuVar28" (pointer_expression "*pppppppuVar40" * identifier) = (cast_expression "(uint ******)pppppppuVar28" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "uVar26 = uVar26 | (uint)pppppppuVar28;" (assignment_expression "uVar26 = uVar26 | (uint)pppppppuVar28" identifier = (binary_expression "uVar26 | (uint)pppppppuVar28" identifier | (cast_expression "(uint)pppppppuVar28" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pppppppuVar40 = pppppppuVar22;" (assignment_expression "pppppppuVar40 = pppppppuVar22" identifier = identifier) ;) }) while (parenthesized_expression "(&ppppppuStack_124 != pppppppuVar22)" ( (binary_expression "&ppppppuStack_124 != pppppppuVar22" (pointer_expression "&ppppppuStack_124" & identifier) != identifier) )) ;) }) (else_clause "else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }" else (compound_statement "{\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }" { (expression_statement "ppppppuVar13 = pppppppuVar19[0xf];" (assignment_expression "ppppppuVar13 = pppppppuVar19[0xf]" identifier = (subscript_expression "pppppppuVar19[0xf]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar16 = pppppppuVar19 + 0x18;" (assignment_expression "pppppppuVar16 = pppppppuVar19 + 0x18" identifier = (binary_expression "pppppppuVar19 + 0x18" identifier + number_literal)) ;) (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" identifier = number_literal) ;) (expression_statement "pppppppuVar40 = (uint *******)&pppppppuStack_144;" (assignment_expression "pppppppuVar40 = (uint *******)&pppppppuStack_144" identifier = (cast_expression "(uint *******)&pppppppuStack_144" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&pppppppuStack_144" & identifier))) ;) (do_statement "do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);" do (compound_statement "{\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            }" { (expression_statement "pppppppuVar28 = pppppppuVar40 + 1;" (assignment_expression "pppppppuVar28 = pppppppuVar40 + 1" identifier = (binary_expression "pppppppuVar40 + 1" identifier + number_literal)) ;) (expression_statement "pppppuVar31 = *ppppppuVar13;" (assignment_expression "pppppuVar31 = *ppppppuVar13" identifier = (pointer_expression "*ppppppuVar13" * identifier)) ;) (expression_statement "ppppppuVar32 = *pppppppuVar16;" (assignment_expression "ppppppuVar32 = *pppppppuVar16" identifier = (pointer_expression "*pppppppuVar16" * identifier)) ;) (expression_statement "ppppppuVar13 = ppppppuVar13 + 1;" (assignment_expression "ppppppuVar13 = ppppppuVar13 + 1" identifier = (binary_expression "ppppppuVar13 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar16 = pppppppuVar16 + 1;" (assignment_expression "pppppppuVar16 = pppppppuVar16 + 1" identifier = (binary_expression "pppppppuVar16 + 1" identifier + number_literal)) ;) (expression_statement "ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);" (assignment_expression "ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40)" identifier = (cast_expression "(uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40)" ( (binary_expression "(~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40" (parenthesized_expression "(~(uint)pppppuVar31 | (uint)ppppppuVar32)" ( (binary_expression "~(uint)pppppuVar31 | (uint)ppppppuVar32" (unary_expression "~(uint)pppppuVar31" ~ (cast_expression "(uint)pppppuVar31" ( (type_descriptor "uint" type_identifier) ) identifier)) | (cast_expression "(uint)ppppppuVar32" ( (type_descriptor "uint" type_identifier) ) identifier)) )) & (binary_expression "(uint)*pppppppuVar40" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )))) ;) (expression_statement "*pppppppuVar40 = ppppppuVar32;" (assignment_expression "*pppppppuVar40 = ppppppuVar32" (pointer_expression "*pppppppuVar40" * identifier) = identifier) ;) (expression_statement "uVar26 = uVar26 | (uint)ppppppuVar32;" (assignment_expression "uVar26 = uVar26 | (uint)ppppppuVar32" identifier = (binary_expression "uVar26 | (uint)ppppppuVar32" identifier | (cast_expression "(uint)ppppppuVar32" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pppppppuVar40 = pppppppuVar28;" (assignment_expression "pppppppuVar40 = pppppppuVar28" identifier = identifier) ;) }) while (parenthesized_expression "(&ppppppuStack_124 != pppppppuVar28)" ( (binary_expression "&ppppppuStack_124 != pppppppuVar28" (pointer_expression "&ppppppuStack_124" & identifier) != identifier) )) ;) }))) (if_statement "if (uVar26 == 0) goto LAB_0001dcc8;" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001dcc8;" goto statement_identifier ;)) }))) (if_statement "if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }" if (parenthesized_expression "((uVar34 & 8) == 0)" ( (binary_expression "(uVar34 & 8) == 0" (parenthesized_expression "(uVar34 & 8)" ( (binary_expression "uVar34 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }" { (labeled_statement "LAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;" statement_identifier : (expression_statement "pppppppuVar40 = (uint *******)0x0;" (assignment_expression "pppppppuVar40 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }" if (parenthesized_expression "(0 < (int)pppppppuVar24)" ( (binary_expression "0 < (int)pppppppuVar24" number_literal < (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }" { (expression_statement "pppppppuVar40 = (uint *******)0x0;" (assignment_expression "pppppppuVar40 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "puVar14 = puVar7;" (assignment_expression "puVar14 = puVar7" identifier = identifier) ;) (do_statement "do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);" do (compound_statement "{\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            }" { (expression_statement "pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);" (assignment_expression "pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20)" identifier = (cast_expression "(uint *******)((int)pppppppuVar40 * 0x20)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar40 * 0x20)" ( (binary_expression "(int)pppppppuVar40 * 0x20" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }" if (parenthesized_expression "((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0))" ( (binary_expression "(bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)" (parenthesized_expression "(bVar2 != 1)" ( (binary_expression "bVar2 != 1" identifier != number_literal) )) || (parenthesized_expression "(((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)" ( (binary_expression "((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0" (parenthesized_expression "((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1)" ( (binary_expression "(puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1" (binary_expression "(puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f)" (subscript_expression "(puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8]" (parenthesized_expression "(puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))" ( (binary_expression "puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5)" identifier + (parenthesized_expression "((int)(uint)*(byte *)ppppppuVar36 >> 5)" ( (binary_expression "(int)(uint)*(byte *)ppppppuVar36 >> 5" (binary_expression "(int)(uint)*(byte *)ppppppuVar36" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)ppppppuVar36" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal) ))) )) [ (binary_expression "(int)pppppppuVar40 * 8" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ]) >> (parenthesized_expression "(*(byte *)ppppppuVar36 & 0x1f)" ( (binary_expression "*(byte *)ppppppuVar36 & 0x1f" (pointer_expression "*(byte *)ppppppuVar36" * (cast_expression "(byte *)ppppppuVar36" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }" { (expression_statement "uVar34 = 0;" (assignment_expression "uVar34 = 0" identifier = number_literal) ;) (expression_statement "pppppppuVar16 = (uint *******)&pppppppuStack_144;" (assignment_expression "pppppppuVar16 = (uint *******)&pppppppuStack_144" identifier = (cast_expression "(uint *******)&pppppppuStack_144" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&pppppppuStack_144" & identifier))) ;) (expression_statement "pppppppuVar22 = &ppppppuStack_124;" (assignment_expression "pppppppuVar22 = &ppppppuStack_124" identifier = (pointer_expression "&ppppppuStack_124" & identifier)) ;) (expression_statement "puVar33 = puVar14;" (assignment_expression "puVar33 = puVar14" identifier = identifier) ;) (do_statement "do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);" do (compound_statement "{\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                }" { (expression_statement "pppppppuVar28 = pppppppuVar16 + 1;" (assignment_expression "pppppppuVar28 = pppppppuVar16 + 1" identifier = (binary_expression "pppppppuVar16 + 1" identifier + number_literal)) ;) (expression_statement "uVar26 = *puVar33;" (assignment_expression "uVar26 = *puVar33" identifier = (pointer_expression "*puVar33" * identifier)) ;) (expression_statement "ppppppuVar20 = *pppppppuVar16;" (assignment_expression "ppppppuVar20 = *pppppppuVar16" identifier = (pointer_expression "*pppppppuVar16" * identifier)) ;) (expression_statement "puVar33 = puVar33 + 1;" (assignment_expression "puVar33 = puVar33 + 1" identifier = (binary_expression "puVar33 + 1" identifier + number_literal)) ;) (expression_statement "*pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);" (assignment_expression "*pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26)" (pointer_expression "*pppppppuVar22" * identifier) = (cast_expression "(uint ******)((uint)ppppppuVar20 & uVar26)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((uint)ppppppuVar20 & uVar26)" ( (binary_expression "(uint)ppppppuVar20 & uVar26" (cast_expression "(uint)ppppppuVar20" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier) )))) ;) (expression_statement "uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;" (assignment_expression "uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26" identifier = (binary_expression "uVar34 | (uint)ppppppuVar20 & uVar26" identifier | (binary_expression "(uint)ppppppuVar20 & uVar26" (cast_expression "(uint)ppppppuVar20" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier))) ;) (expression_statement "pppppppuVar16 = pppppppuVar28;" (assignment_expression "pppppppuVar16 = pppppppuVar28" identifier = identifier) ;) (expression_statement "pppppppuVar22 = pppppppuVar22 + 1;" (assignment_expression "pppppppuVar22 = pppppppuVar22 + 1" identifier = (binary_expression "pppppppuVar22 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(&ppppppuStack_124 != pppppppuVar28)" ( (binary_expression "&ppppppuStack_124 != pppppppuVar28" (pointer_expression "&ppppppuStack_124" & identifier) != identifier) )) ;) (expression_statement "pppppppuVar28 = (uint *******)&pppppppuStack_144;" (assignment_expression "pppppppuVar28 = (uint *******)&pppppppuStack_144" identifier = (cast_expression "(uint *******)&pppppppuStack_144" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&pppppppuStack_144" & identifier))) ;) (if_statement "if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }" if (parenthesized_expression "(uVar34 != 0)" ( (binary_expression "uVar34 != 0" identifier != number_literal) )) (compound_statement "{\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }" { (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" identifier = number_literal) ;) (expression_statement "uVar34 = 0;" (assignment_expression "uVar34 = 0" identifier = number_literal) ;) (expression_statement "pppppppuVar16 = (uint *******)&pppppppuStack_144;" (assignment_expression "pppppppuVar16 = (uint *******)&pppppppuStack_144" identifier = (cast_expression "(uint *******)&pppppppuStack_144" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&pppppppuStack_144" & identifier))) ;) (expression_statement "puVar33 = puVar14;" (assignment_expression "puVar33 = puVar14" identifier = identifier) ;) (expression_statement "ppiVar37 = &piStack_104;" (assignment_expression "ppiVar37 = &piStack_104" identifier = (pointer_expression "&piStack_104" & identifier)) ;) (do_statement "do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);" do (compound_statement "{\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  }" { (expression_statement "uVar29 = *puVar33;" (assignment_expression "uVar29 = *puVar33" identifier = (pointer_expression "*puVar33" * identifier)) ;) (expression_statement "puVar33 = puVar33 + 1;" (assignment_expression "puVar33 = puVar33 + 1" identifier = (binary_expression "puVar33 + 1" identifier + number_literal)) ;) (expression_statement "piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);" (assignment_expression "piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29)" identifier = (cast_expression "(int *)(~(uint)*pppppppuVar16 & uVar29)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(~(uint)*pppppppuVar16 & uVar29)" ( (binary_expression "~(uint)*pppppppuVar16 & uVar29" (binary_expression "~(uint)*pppppppuVar16" (unary_expression "~(uint)" ~ (parenthesized_expression "(uint)" ( identifier ))) * identifier) & identifier) )))) ;) (expression_statement "ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);" (assignment_expression "ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16)" identifier = (cast_expression "(uint ******)(~uVar29 & (uint)*pppppppuVar16)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(~uVar29 & (uint)*pppppppuVar16)" ( (binary_expression "~uVar29 & (uint)*pppppppuVar16" (unary_expression "~uVar29" ~ identifier) & (binary_expression "(uint)*pppppppuVar16" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )))) ;) (expression_statement "*ppiVar37 = piVar39;" (assignment_expression "*ppiVar37 = piVar39" (pointer_expression "*ppiVar37" * identifier) = identifier) ;) (expression_statement "*pppppppuVar16 = ppppppuVar20;" (assignment_expression "*pppppppuVar16 = ppppppuVar20" (pointer_expression "*pppppppuVar16" * identifier) = identifier) ;) (expression_statement "uVar34 = uVar34 | (uint)piVar39;" (assignment_expression "uVar34 = uVar34 | (uint)piVar39" identifier = (binary_expression "uVar34 | (uint)piVar39" identifier | (cast_expression "(uint)piVar39" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "uVar26 = uVar26 | (uint)ppppppuVar20;" (assignment_expression "uVar26 = uVar26 | (uint)ppppppuVar20" identifier = (binary_expression "uVar26 | (uint)ppppppuVar20" identifier | (cast_expression "(uint)ppppppuVar20" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pppppppuVar16 = pppppppuVar16 + 1;" (assignment_expression "pppppppuVar16 = pppppppuVar16 + 1" identifier = (binary_expression "pppppppuVar16 + 1" identifier + number_literal)) ;) (expression_statement "ppiVar37 = ppiVar37 + 1;" (assignment_expression "ppiVar37 = ppiVar37 + 1" identifier = (binary_expression "ppiVar37 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 + 8 != puVar33)" ( (binary_expression "puVar14 + 8 != puVar33" (binary_expression "puVar14 + 8" identifier + number_literal) != identifier) )) ;) (expression_statement "pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);" (assignment_expression "pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc)" identifier = (cast_expression "(uint *******)(iVar25 + (int)pppppppuVar40 * 0xc)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(iVar25 + (int)pppppppuVar40 * 0xc)" ( (binary_expression "iVar25 + (int)pppppppuVar40 * 0xc" identifier + (binary_expression "(int)pppppppuVar40 * 0xc" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (if_statement "if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }" if (parenthesized_expression "(uVar34 != 0)" ( (binary_expression "uVar34 != 0" identifier != number_literal) )) (compound_statement "{\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }" { (expression_statement "iStack_178 = (int)pppppppuVar24 * 2;" (assignment_expression "iStack_178 = (int)pppppppuVar24 * 2" identifier = (binary_expression "(int)pppppppuVar24 * 2" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "puVar33 = puVar7 + (int)pppppppuVar24 * 8;" (assignment_expression "puVar33 = puVar7 + (int)pppppppuVar24 * 8" identifier = (binary_expression "puVar7 + (int)pppppppuVar24 * 8" identifier + (binary_expression "(int)pppppppuVar24 * 8" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "*puVar33 = (uint)piStack_104;" (assignment_expression "*puVar33 = (uint)piStack_104" (pointer_expression "*puVar33" * identifier) = (cast_expression "(uint)piStack_104" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar33[1] = uStack_100;" (assignment_expression "puVar33[1] = uStack_100" (subscript_expression "puVar33[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[2] = uStack_fc;" (assignment_expression "puVar33[2] = uStack_fc" (subscript_expression "puVar33[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[3] = uStack_f8;" (assignment_expression "puVar33[3] = uStack_f8" (subscript_expression "puVar33[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[4] = uStack_f4;" (assignment_expression "puVar33[4] = uStack_f4" (subscript_expression "puVar33[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[5] = uStack_f0;" (assignment_expression "puVar33[5] = uStack_f0" (subscript_expression "puVar33[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[6] = uStack_ec;" (assignment_expression "puVar33[6] = uStack_ec" (subscript_expression "puVar33[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[7] = uStack_e8;" (assignment_expression "puVar33[7] = uStack_e8" (subscript_expression "puVar33[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[1] = uStack_120;" (assignment_expression "puVar14[1] = uStack_120" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[2] = uStack_11c;" (assignment_expression "puVar14[2] = uStack_11c" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar14 = (uint)ppppppuStack_124;" (assignment_expression "*puVar14 = (uint)ppppppuStack_124" (pointer_expression "*puVar14" * identifier) = (cast_expression "(uint)ppppppuStack_124" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar14[3] = uStack_118;" (assignment_expression "puVar14[3] = uStack_118" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[4] = uStack_114;" (assignment_expression "puVar14[4] = uStack_114" (subscript_expression "puVar14[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[5] = uStack_110;" (assignment_expression "puVar14[5] = uStack_110" (subscript_expression "puVar14[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[6] = uStack_10c;" (assignment_expression "puVar14[6] = uStack_10c" (subscript_expression "puVar14[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[7] = uStack_108;" (assignment_expression "puVar14[7] = uStack_108" (subscript_expression "puVar14[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppuVar28 = pppppppuVar16;" (assignment_expression "pppppppuVar28 = pppppppuVar16" identifier = identifier) ;) (expression_statement "iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);" (assignment_expression "iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc)" identifier = (call_expression "(*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc)" (parenthesized_expression "(*(code *)(iVar35 + -0x4580))" ( (pointer_expression "*(code *)(iVar35 + -0x4580)" * (cast_expression "(code *)(iVar35 + -0x4580)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + -0x4580)" ( (binary_expression "iVar35 + -0x4580" identifier + number_literal) )))) )) (argument_list "(iVar25 + (int)pppppppuVar24 * 0xc)" ( (binary_expression "iVar25 + (int)pppppppuVar24 * 0xc" identifier + (binary_expression "(int)pppppppuVar24 * 0xc" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (if_statement "if (iVar41 != 0) goto LAB_0001e458;" if (parenthesized_expression "(iVar41 != 0)" ( (binary_expression "iVar41 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001e458;" goto statement_identifier ;)) (expression_statement "pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);" (assignment_expression "pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar24 + 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar24 + 1)" ( (binary_expression "(int)pppppppuVar24 + 1" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];" (assignment_expression "pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184]" identifier = (cast_expression "(uint *******)pppppppuVar18[3][iStack_184]" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppuVar18[3][iStack_184]" (subscript_expression "pppppppuVar18[3]" identifier [ number_literal ]) [ identifier ]))) ;) (expression_statement "iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);" (assignment_expression "iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16)" identifier = (call_expression "(*(code *)(iVar5 + -0x7b38))(pppppppuVar16)" (parenthesized_expression "(*(code *)(iVar5 + -0x7b38))" ( (pointer_expression "*(code *)(iVar5 + -0x7b38)" * (cast_expression "(code *)(iVar5 + -0x7b38)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + -0x7b38)" ( (binary_expression "iVar5 + -0x7b38" identifier + number_literal) )))) )) (argument_list "(pppppppuVar16)" ( identifier )))) ;) (if_statement "if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }" if (parenthesized_expression "(iVar41 == 0)" ( (binary_expression "iVar41 == 0" identifier == number_literal) )) (compound_statement "{\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }" { (expression_statement "iStack_178 = (int)pppppppuVar24 << 1;" (assignment_expression "iStack_178 = (int)pppppppuVar24 << 1" identifier = (binary_expression "(int)pppppppuVar24 << 1" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) (goto_statement "goto LAB_0001e458;" goto statement_identifier ;) })) (if_statement "if (uVar26 == 0) break;" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) })) })) (expression_statement "puVar14 = puVar14 + 8;" (assignment_expression "puVar14 = puVar14 + 8" identifier = (binary_expression "puVar14 + 8" identifier + number_literal)) ;) (expression_statement "pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);" (assignment_expression "pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar40 + 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar40 + 1)" ( (binary_expression "(int)pppppppuVar40 + 1" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int)pppppppuVar40 < (int)pppppppuVar24)" ( (binary_expression "(int)pppppppuVar40 < (int)pppppppuVar24" (cast_expression "(int)pppppppuVar40" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "iStack_178 = (int)pppppppuVar24 * 2;" (assignment_expression "iStack_178 = (int)pppppppuVar24 * 2" identifier = (binary_expression "(int)pppppppuVar24 * 2" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }" if (parenthesized_expression "(pppppppuVar24 == pppppppuVar40)" ( (binary_expression "pppppppuVar24 == pppppppuVar40" identifier == identifier) )) (compound_statement "{\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }" { (expression_statement "ppppppuVar20 = pppppppuVar18[3];" (assignment_expression "ppppppuVar20 = pppppppuVar18[3]" identifier = (subscript_expression "pppppppuVar18[3]" identifier [ number_literal ])) ;) (expression_statement "pcVar10 = *(code **)(pcVar46 + 0x1e724);" (assignment_expression "pcVar10 = *(code **)(pcVar46 + 0x1e724)" identifier = (pointer_expression "*(code **)(pcVar46 + 0x1e724)" * (cast_expression "(code **)(pcVar46 + 0x1e724)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e724)" ( (binary_expression "pcVar46 + 0x1e724" identifier + number_literal) ))))) ;) (expression_statement "puVar14 = puVar7 + (int)pppppppuVar24 * 8;" (assignment_expression "puVar14 = puVar7 + (int)pppppppuVar24 * 8" identifier = (binary_expression "puVar7 + (int)pppppppuVar24 * 8" identifier + (binary_expression "(int)pppppppuVar24 * 8" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "*puVar14 = (uint)pppppppuStack_144;" (assignment_expression "*puVar14 = (uint)pppppppuStack_144" (pointer_expression "*puVar14" * identifier) = (cast_expression "(uint)pppppppuStack_144" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);" (assignment_expression "pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184)" identifier = (cast_expression "(uint *******)(ppppppuVar20 + iStack_184)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(ppppppuVar20 + iStack_184)" ( (binary_expression "ppppppuVar20 + iStack_184" identifier + identifier) )))) ;) (expression_statement "puVar14[1] = uStack_140;" (assignment_expression "puVar14[1] = uStack_140" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);" (assignment_expression "puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc)" identifier = (cast_expression "(undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + (int)pppppppuVar24 * 0xc)" ( (binary_expression "iVar25 + (int)pppppppuVar24 * 0xc" identifier + (binary_expression "(int)pppppppuVar24 * 0xc" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "puVar14[2] = uStack_13c;" (assignment_expression "puVar14[2] = uStack_13c" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[3] = uStack_138;" (assignment_expression "puVar14[3] = uStack_138" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[4] = uStack_134;" (assignment_expression "puVar14[4] = uStack_134" (subscript_expression "puVar14[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[5] = uStack_130;" (assignment_expression "puVar14[5] = uStack_130" (subscript_expression "puVar14[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[6] = uStack_12c;" (assignment_expression "puVar14[6] = uStack_12c" (subscript_expression "puVar14[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[7] = uStack_128;" (assignment_expression "puVar14[7] = uStack_128" (subscript_expression "puVar14[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppppuVar36 = *pppppppuVar28;" (assignment_expression "ppppppuVar36 = *pppppppuVar28" identifier = (pointer_expression "*pppppppuVar28" * identifier)) ;) (expression_statement "*puVar9 = 1;" (assignment_expression "*puVar9 = 1" (pointer_expression "*puVar9" * identifier) = number_literal) ;) (expression_statement "puVar9[1] = 1;" (assignment_expression "puVar9[1] = 1" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14 = (uint *)(*pcVar10)(4);" (assignment_expression "puVar14 = (uint *)(*pcVar10)(4)" identifier = (cast_expression "(uint *)(*pcVar10)(4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar10)(4)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "puVar9[2] = puVar14;" (assignment_expression "puVar9[2] = puVar14" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }" if (parenthesized_expression "(puVar14 != (uint *)0x0)" ( (binary_expression "puVar14 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }" { (expression_statement "ppppppuVar20 = pppppppuVar18[2];" (assignment_expression "ppppppuVar20 = pppppppuVar18[2]" identifier = (subscript_expression "pppppppuVar18[2]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);" (assignment_expression "pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar24 + 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar24 + 1)" ( (binary_expression "(int)pppppppuVar24 + 1" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*puVar14 = (uint)ppppppuVar36;" (assignment_expression "*puVar14 = (uint)ppppppuVar36" (pointer_expression "*puVar14" * identifier) = (cast_expression "(uint)ppppppuVar36" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pppppppuStack_144 = (uint *******)0x0;" (assignment_expression "pppppppuStack_144 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "uStack_140 = 0;" (assignment_expression "uStack_140 = 0" identifier = number_literal) ;) (expression_statement "uStack_13c = 0;" (assignment_expression "uStack_13c = 0" identifier = number_literal) ;) (expression_statement "uStack_138 = 0;" (assignment_expression "uStack_138 = 0" identifier = number_literal) ;) (expression_statement "uStack_134 = 0;" (assignment_expression "uStack_134 = 0" identifier = number_literal) ;) (expression_statement "uStack_130 = 0;" (assignment_expression "uStack_130 = 0" identifier = number_literal) ;) (expression_statement "uStack_12c = 0;" (assignment_expression "uStack_12c = 0" identifier = number_literal) ;) (expression_statement "uStack_128 = 0;" (assignment_expression "uStack_128 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0001dcc8;" goto statement_identifier ;) })) (expression_statement "puVar9[1] = 0;" (assignment_expression "puVar9[1] = 0" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar9 = 0;" (assignment_expression "*puVar9 = 0" (pointer_expression "*puVar9" * identifier) = number_literal) ;) (if_statement "if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }" if (parenthesized_expression "(pppppppuVar24 == (uint *******)0x0)" ( (binary_expression "pppppppuVar24 == (uint *******)0x0" identifier == (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }" { (expression_statement "(**(code **)(pcVar46 + 0x1e790))(iVar25);" (call_expression "(**(code **)(pcVar46 + 0x1e790))(iVar25)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e790)" * (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier ))) ;) }) (else_clause "else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }" else (compound_statement "{\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }" { (labeled_statement "LAB_0001e458:\n              iVar5 = iVar25;" statement_identifier : (expression_statement "iVar5 = iVar25;" (assignment_expression "iVar5 = iVar25" identifier = identifier) ;)) (do_statement "do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);" do (compound_statement "{\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              }" { (expression_statement "iVar35 = iVar5 + 0xc;" (assignment_expression "iVar35 = iVar5 + 0xc" identifier = (binary_expression "iVar5 + 0xc" identifier + number_literal)) ;) (expression_statement "(**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));" (call_expression "(**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8))" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e790)" * (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar5 + 8))" ( (pointer_expression "*(undefined4 *)(iVar5 + 8)" * (cast_expression "(undefined4 *)(iVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "iVar5 = iVar35;" (assignment_expression "iVar5 = iVar35" identifier = identifier) ;) }) while (parenthesized_expression "((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35)" ( (binary_expression "(int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35" (binary_expression "(int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25" (binary_expression "(int)(iStack_178 + (int)pppppppuVar24) * 4" (cast_expression "(int)(iStack_178 + (int)pppppppuVar24)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iStack_178 + (int)pppppppuVar24)" ( (binary_expression "iStack_178 + (int)pppppppuVar24" identifier + (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ))) * number_literal) + identifier) != identifier) )) ;) (expression_statement "(**(code **)(pcVar46 + 0x1e790))(iVar25);" (call_expression "(**(code **)(pcVar46 + 0x1e790))(iVar25)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e790)" * (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier ))) ;) }))) (goto_statement "goto LAB_0001dffc;" goto statement_identifier ;) })) (expression_statement "ppppppuVar20 = pppppppuVar18[2];" (assignment_expression "ppppppuVar20 = pppppppuVar18[2]" identifier = (subscript_expression "pppppppuVar18[2]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0001dcc8;" goto statement_identifier ;) })) (if_statement "if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }" if (parenthesized_expression "((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0))" ( (binary_expression "(bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)" (parenthesized_expression "(bVar2 != 1)" ( (binary_expression "bVar2 != 1" identifier != number_literal) )) || (parenthesized_expression "(((uint)ppppppuVar36[1] & 0x200) == 0)" ( (binary_expression "((uint)ppppppuVar36[1] & 0x200) == 0" (parenthesized_expression "((uint)ppppppuVar36[1] & 0x200)" ( (binary_expression "(uint)ppppppuVar36[1] & 0x200" (cast_expression "(uint)ppppppuVar36[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppuVar36[1]" identifier [ number_literal ])) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }" { (expression_statement "pppppppuVar40 = pppppppuVar19 + 0x18;" (assignment_expression "pppppppuVar40 = pppppppuVar19 + 0x18" identifier = (binary_expression "pppppppuVar19 + 0x18" identifier + number_literal)) ;) (if_statement "if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }" if (parenthesized_expression "((int)pppppppuVar19[0x17] < 2)" ( (binary_expression "(int)pppppppuVar19[0x17] < 2" (cast_expression "(int)pppppppuVar19[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppuVar19[0x17]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }" { (expression_statement "pppppppuVar28 = (uint *******)0x0;" (assignment_expression "pppppppuVar28 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "pppppppuVar16 = (uint *******)&pppppppuStack_144;" (assignment_expression "pppppppuVar16 = (uint *******)&pppppppuStack_144" identifier = (cast_expression "(uint *******)&pppppppuStack_144" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&pppppppuStack_144" & identifier))) ;) (do_statement "do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);" do (compound_statement "{\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            }" { (expression_statement "pppppppuVar22 = pppppppuVar16 + 1;" (assignment_expression "pppppppuVar22 = pppppppuVar16 + 1" identifier = (binary_expression "pppppppuVar16 + 1" identifier + number_literal)) ;) (expression_statement "ppppppuVar13 = *pppppppuVar40;" (assignment_expression "ppppppuVar13 = *pppppppuVar40" identifier = (pointer_expression "*pppppppuVar40" * identifier)) ;) (expression_statement "ppppppuVar32 = *pppppppuVar16;" (assignment_expression "ppppppuVar32 = *pppppppuVar16" identifier = (pointer_expression "*pppppppuVar16" * identifier)) ;) (expression_statement "pppppppuVar40 = pppppppuVar40 + 1;" (assignment_expression "pppppppuVar40 = pppppppuVar40 + 1" identifier = (binary_expression "pppppppuVar40 + 1" identifier + number_literal)) ;) (expression_statement "*pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);" (assignment_expression "*pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32)" (pointer_expression "*pppppppuVar16" * identifier) = (cast_expression "(uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(~(uint)ppppppuVar13 & (uint)ppppppuVar32)" ( (binary_expression "~(uint)ppppppuVar13 & (uint)ppppppuVar32" (unary_expression "~(uint)ppppppuVar13" ~ (cast_expression "(uint)ppppppuVar13" ( (type_descriptor "uint" type_identifier) ) identifier)) & (cast_expression "(uint)ppppppuVar32" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);" (assignment_expression "pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32)" identifier = (cast_expression "(uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32)" ( (binary_expression "(uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32" (cast_expression "(uint)pppppppuVar28" ( (type_descriptor "uint" type_identifier) ) identifier) | (binary_expression "~(uint)ppppppuVar13 & (uint)ppppppuVar32" (unary_expression "~(uint)ppppppuVar13" ~ (cast_expression "(uint)ppppppuVar13" ( (type_descriptor "uint" type_identifier) ) identifier)) & (cast_expression "(uint)ppppppuVar32" ( (type_descriptor "uint" type_identifier) ) identifier))) )))) ;) (expression_statement "pppppppuVar16 = pppppppuVar22;" (assignment_expression "pppppppuVar16 = pppppppuVar22" identifier = identifier) ;) }) while (parenthesized_expression "(pppppppuVar22 != &ppppppuStack_124)" ( (binary_expression "pppppppuVar22 != &ppppppuStack_124" identifier != (pointer_expression "&ppppppuStack_124" & identifier)) )) ;) }) (else_clause "else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }" else (compound_statement "{\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }" { (expression_statement "ppppppuVar13 = pppppppuVar19[0xf];" (assignment_expression "ppppppuVar13 = pppppppuVar19[0xf]" identifier = (subscript_expression "pppppppuVar19[0xf]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar28 = (uint *******)0x0;" (assignment_expression "pppppppuVar28 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "pppppppuVar16 = (uint *******)&pppppppuStack_144;" (assignment_expression "pppppppuVar16 = (uint *******)&pppppppuStack_144" identifier = (cast_expression "(uint *******)&pppppppuStack_144" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&pppppppuStack_144" & identifier))) ;) (do_statement "do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);" do (compound_statement "{\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            }" { (expression_statement "pppppppuVar22 = pppppppuVar16 + 1;" (assignment_expression "pppppppuVar22 = pppppppuVar16 + 1" identifier = (binary_expression "pppppppuVar16 + 1" identifier + number_literal)) ;) (expression_statement "pppppuVar31 = *ppppppuVar13;" (assignment_expression "pppppuVar31 = *ppppppuVar13" identifier = (pointer_expression "*ppppppuVar13" * identifier)) ;) (expression_statement "ppppppuVar32 = *pppppppuVar40;" (assignment_expression "ppppppuVar32 = *pppppppuVar40" identifier = (pointer_expression "*pppppppuVar40" * identifier)) ;) (expression_statement "ppppppuVar13 = ppppppuVar13 + 1;" (assignment_expression "ppppppuVar13 = ppppppuVar13 + 1" identifier = (binary_expression "ppppppuVar13 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar40 = pppppppuVar40 + 1;" (assignment_expression "pppppppuVar40 = pppppppuVar40 + 1" identifier = (binary_expression "pppppppuVar40 + 1" identifier + number_literal)) ;) (expression_statement "ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);" (assignment_expression "ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16)" identifier = (cast_expression "(uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16)" ( (binary_expression "~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16" (unary_expression "~((uint)ppppppuVar32 & (uint)pppppuVar31)" ~ (parenthesized_expression "((uint)ppppppuVar32 & (uint)pppppuVar31)" ( (binary_expression "(uint)ppppppuVar32 & (uint)pppppuVar31" (cast_expression "(uint)ppppppuVar32" ( (type_descriptor "uint" type_identifier) ) identifier) & (cast_expression "(uint)pppppuVar31" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) & (binary_expression "(uint)*pppppppuVar16" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )))) ;) (expression_statement "*pppppppuVar16 = ppppppuVar32;" (assignment_expression "*pppppppuVar16 = ppppppuVar32" (pointer_expression "*pppppppuVar16" * identifier) = identifier) ;) (expression_statement "pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);" (assignment_expression "pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32)" identifier = (cast_expression "(uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)pppppppuVar28 | (uint)ppppppuVar32)" ( (binary_expression "(uint)pppppppuVar28 | (uint)ppppppuVar32" (cast_expression "(uint)pppppppuVar28" ( (type_descriptor "uint" type_identifier) ) identifier) | (cast_expression "(uint)ppppppuVar32" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "pppppppuVar16 = pppppppuVar22;" (assignment_expression "pppppppuVar16 = pppppppuVar22" identifier = identifier) ;) }) while (parenthesized_expression "(&ppppppuStack_124 != pppppppuVar22)" ( (binary_expression "&ppppppuStack_124 != pppppppuVar22" (pointer_expression "&ppppppuStack_124" & identifier) != identifier) )) ;) }))) (if_statement "if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;" if (parenthesized_expression "(pppppppuVar28 == (uint *******)0x0)" ( (binary_expression "pppppppuVar28 == (uint *******)0x0" identifier == (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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_0001dcc8;" goto statement_identifier ;)) (goto_statement "goto LAB_0001e15c;" goto statement_identifier ;) })) (expression_statement "pppppppuStack_144 = (uint *******)0x0;" (assignment_expression "pppppppuStack_144 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }" else (compound_statement "{\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }" { (expression_statement "uStack_140 = 0;" (assignment_expression "uStack_140 = 0" identifier = number_literal) ;) (expression_statement "pppppppuStack_144 = (uint *******)0x0;" (assignment_expression "pppppppuStack_144 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "uStack_13c = 0;" (assignment_expression "uStack_13c = 0" identifier = number_literal) ;) (expression_statement "uStack_138 = 0;" (assignment_expression "uStack_138 = 0" identifier = number_literal) ;) (expression_statement "uStack_134 = 0;" (assignment_expression "uStack_134 = 0" identifier = number_literal) ;) (expression_statement "uStack_130 = 0;" (assignment_expression "uStack_130 = 0" identifier = number_literal) ;) (expression_statement "uStack_12c = 0;" (assignment_expression "uStack_12c = 0" identifier = number_literal) ;) (expression_statement "uStack_128 = 0;" (assignment_expression "uStack_128 = 0" identifier = number_literal) ;) (if_statement "if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;" if (parenthesized_expression "(((uint)pppppppuVar40 & 0x400) == 0)" ( (binary_expression "((uint)pppppppuVar40 & 0x400) == 0" (parenthesized_expression "((uint)pppppppuVar40 & 0x400)" ( (binary_expression "(uint)pppppppuVar40 & 0x400" (cast_expression "(uint)pppppppuVar40" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001dcc8;" goto statement_identifier ;)) (expression_statement "pppppppuStack_144 = (uint *******)0x400;" (assignment_expression "pppppppuStack_144 = (uint *******)0x400" identifier = (cast_expression "(uint *******)0x400" ( (type_descriptor "uint *******" type_identifier (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 ((uVar34 & 0x80) == 0) goto LAB_0001e07c;" if (parenthesized_expression "((uVar34 & 0x80) == 0)" ( (binary_expression "(uVar34 & 0x80) == 0" (parenthesized_expression "(uVar34 & 0x80)" ( (binary_expression "uVar34 & 0x80" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001e07c;" goto statement_identifier ;)) (labeled_statement "LAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;" statement_identifier : (expression_statement "pppppppuStack_144 = (uint *******)0x0;" (assignment_expression "pppppppuStack_144 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "pppppppuStack_144 = (uint *******)0x0;" (assignment_expression "pppppppuStack_144 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "uStack_140 = 0;" (assignment_expression "uStack_140 = 0" identifier = number_literal) ;) (expression_statement "uStack_13c = 0;" (assignment_expression "uStack_13c = 0" identifier = number_literal) ;) (expression_statement "uStack_138 = 0;" (assignment_expression "uStack_138 = 0" identifier = number_literal) ;) (expression_statement "uStack_134 = 0;" (assignment_expression "uStack_134 = 0" identifier = number_literal) ;) (expression_statement "uStack_130 = 0;" (assignment_expression "uStack_130 = 0" identifier = number_literal) ;) (expression_statement "uStack_12c = 0;" (assignment_expression "uStack_12c = 0" identifier = number_literal) ;) (expression_statement "uStack_128 = 0;" (assignment_expression "uStack_128 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if (bVar2 == 3) {\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }\n      if (bVar2 == 5) {\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      pppppppuVar28 = (uint *******)0xffffffff;\n      if (bVar2 == 7) {\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }" else (compound_statement "{\n      if (bVar2 == 3) {\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }\n      if (bVar2 == 5) {\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      pppppppuVar28 = (uint *******)0xffffffff;\n      if (bVar2 == 7) {\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }" { (if_statement "if (bVar2 == 3) {\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }" if (parenthesized_expression "(bVar2 == 3)" ( (binary_expression "bVar2 == 3" identifier == number_literal) )) (compound_statement "{\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }" { (expression_statement "pppppuVar31 = *ppppppuVar36;" (assignment_expression "pppppuVar31 = *ppppppuVar36" identifier = (pointer_expression "*ppppppuVar36" * identifier)) ;) (expression_statement "pppppppuVar40 = (uint *******)&pppppppuStack_144;" (assignment_expression "pppppppuVar40 = (uint *******)&pppppppuStack_144" identifier = (cast_expression "(uint *******)&pppppppuStack_144" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&pppppppuStack_144" & identifier))) ;) (do_statement "do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);" do (compound_statement "{\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        }" { (expression_statement "pppppppuVar16 = pppppppuVar40 + 1;" (assignment_expression "pppppppuVar16 = pppppppuVar40 + 1" identifier = (binary_expression "pppppppuVar40 + 1" identifier + number_literal)) ;) (expression_statement "ppppuVar30 = *pppppuVar31;" (assignment_expression "ppppuVar30 = *pppppuVar31" identifier = (pointer_expression "*pppppuVar31" * identifier)) ;) (expression_statement "pppppuVar31 = pppppuVar31 + 1;" (assignment_expression "pppppuVar31 = pppppuVar31 + 1" identifier = (binary_expression "pppppuVar31 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);" (assignment_expression "pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30)" identifier = (cast_expression "(uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)*pppppppuVar40 | (uint)ppppuVar30)" ( (binary_expression "(uint)*pppppppuVar40 | (uint)ppppuVar30" (binary_expression "(uint)*pppppppuVar40" (parenthesized_expression "(uint)" ( identifier )) * identifier) | (cast_expression "(uint)ppppuVar30" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "*pppppppuVar40 = (uint ******)pppppppuVar28;" (assignment_expression "*pppppppuVar40 = (uint ******)pppppppuVar28" (pointer_expression "*pppppppuVar40" * identifier) = (cast_expression "(uint ******)pppppppuVar28" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "pppppppuVar40 = pppppppuVar16;" (assignment_expression "pppppppuVar40 = pppppppuVar16" identifier = identifier) ;) }) while (parenthesized_expression "(&ppppppuStack_124 != pppppppuVar16)" ( (binary_expression "&ppppppuStack_124 != pppppppuVar16" (pointer_expression "&ppppppuStack_124" & identifier) != identifier) )) ;) (goto_statement "goto LAB_0001e060;" goto statement_identifier ;) })) (if_statement "if (bVar2 == 5) {\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }" if (parenthesized_expression "(bVar2 == 5)" ( (binary_expression "bVar2 == 5" identifier == number_literal) )) (compound_statement "{\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }" { (if_statement "if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }" if (parenthesized_expression "((int)pppppppuVar19[0x17] < 2)" ( (binary_expression "(int)pppppppuVar19[0x17] < 2" (cast_expression "(int)pppppppuVar19[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppuVar19[0x17]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }" { (expression_statement "pppppppuStack_144 = (uint *******)0xffffffff;" (assignment_expression "pppppppuStack_144 = (uint *******)0xffffffff" identifier = (cast_expression "(uint *******)0xffffffff" ( (type_descriptor "uint *******" type_identifier (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 "uStack_140 = 0xffffffff;" (assignment_expression "uStack_140 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uStack_13c = 0xffffffff;" (assignment_expression "uStack_13c = 0xffffffff" identifier = number_literal) ;) (expression_statement "uStack_138 = 0xffffffff;" (assignment_expression "uStack_138 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uStack_134 = 0xffffffff;" (assignment_expression "uStack_134 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uStack_130 = 0xffffffff;" (assignment_expression "uStack_130 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uStack_12c = 0xffffffff;" (assignment_expression "uStack_12c = 0xffffffff" identifier = number_literal) ;) (expression_statement "uStack_128 = 0xffffffff;" (assignment_expression "uStack_128 = 0xffffffff" identifier = number_literal) ;) }) (else_clause "else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }" else (compound_statement "{\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }" { (expression_statement "ppppppuVar13 = pppppppuVar19[0xf];" (assignment_expression "ppppppuVar13 = pppppppuVar19[0xf]" identifier = (subscript_expression "pppppppuVar19[0xf]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar40 = (uint *******)&pppppppuStack_144;" (assignment_expression "pppppppuVar40 = (uint *******)&pppppppuStack_144" identifier = (cast_expression "(uint *******)&pppppppuStack_144" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&pppppppuStack_144" & identifier))) ;) (do_statement "do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);" do (compound_statement "{\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          }" { (expression_statement "pppppppuVar16 = pppppppuVar40 + 1;" (assignment_expression "pppppppuVar16 = pppppppuVar40 + 1" identifier = (binary_expression "pppppppuVar40 + 1" identifier + number_literal)) ;) (expression_statement "pppppuVar31 = *ppppppuVar13;" (assignment_expression "pppppuVar31 = *ppppppuVar13" identifier = (pointer_expression "*ppppppuVar13" * identifier)) ;) (expression_statement "ppppppuVar13 = ppppppuVar13 + 1;" (assignment_expression "ppppppuVar13 = ppppppuVar13 + 1" identifier = (binary_expression "ppppppuVar13 + 1" identifier + number_literal)) ;) (expression_statement "*pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);" (assignment_expression "*pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31)" (pointer_expression "*pppppppuVar40" * identifier) = (cast_expression "(uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((uint)*pppppppuVar40 | (uint)pppppuVar31)" ( (binary_expression "(uint)*pppppppuVar40 | (uint)pppppuVar31" (binary_expression "(uint)*pppppppuVar40" (parenthesized_expression "(uint)" ( identifier )) * identifier) | (cast_expression "(uint)pppppuVar31" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "pppppppuVar40 = pppppppuVar16;" (assignment_expression "pppppppuVar40 = pppppppuVar16" identifier = identifier) ;) }) while (parenthesized_expression "(&ppppppuStack_124 != pppppppuVar16)" ( (binary_expression "&ppppppuStack_124 != pppppppuVar16" (pointer_expression "&ppppppuStack_124" & identifier) != identifier) )) ;) }))) (expression_statement "ppppppuVar13 = pppppppuVar19[0x20];" (assignment_expression "ppppppuVar13 = pppppppuVar19[0x20]" identifier = (subscript_expression "pppppppuVar19[0x20]" identifier [ number_literal ])) ;) (labeled_statement "joined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }" statement_identifier : (if_statement "if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }" if (parenthesized_expression "(((uint)ppppppuVar13 & 0x40) == 0)" ( (binary_expression "((uint)ppppppuVar13 & 0x40) == 0" (parenthesized_expression "((uint)ppppppuVar13 & 0x40)" ( (binary_expression "(uint)ppppppuVar13 & 0x40" (cast_expression "(uint)ppppppuVar13" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }" { (expression_statement "pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);" (assignment_expression "pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff)" identifier = (cast_expression "(uint *******)((uint)pppppppuStack_144 & 0xfffffbff)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)pppppppuStack_144 & 0xfffffbff)" ( (binary_expression "(uint)pppppppuStack_144 & 0xfffffbff" (cast_expression "(uint)pppppppuStack_144" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) }))) (expression_statement "pppppppuVar28 = pppppppuStack_144;" (assignment_expression "pppppppuVar28 = pppppppuStack_144" identifier = identifier) ;) (if_statement "if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }" if (parenthesized_expression "(((uint)ppppppuVar13 & 0x80) != 0)" ( (binary_expression "((uint)ppppppuVar13 & 0x80) != 0" (parenthesized_expression "((uint)ppppppuVar13 & 0x80)" ( (binary_expression "(uint)ppppppuVar13 & 0x80" (cast_expression "(uint)ppppppuVar13" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }" { (expression_statement "pppppppuVar28 = (uint *******)&SUB_fffffffe;" (assignment_expression "pppppppuVar28 = (uint *******)&SUB_fffffffe" identifier = (cast_expression "(uint *******)&SUB_fffffffe" ( (type_descriptor "uint *******" type_identifier (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))) ;) (expression_statement "pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);" (assignment_expression "pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe)" identifier = (cast_expression "(uint *******)((uint)pppppppuStack_144 & 0xfffffffe)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)pppppppuStack_144 & 0xfffffffe)" ( (binary_expression "(uint)pppppppuStack_144 & 0xfffffffe" (cast_expression "(uint)pppppppuStack_144" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) })) (goto_statement "goto LAB_0001e060;" goto statement_identifier ;) })) (expression_statement "pppppppuVar28 = (uint *******)0xffffffff;" (assignment_expression "pppppppuVar28 = (uint *******)0xffffffff" identifier = (cast_expression "(uint *******)0xffffffff" ( (type_descriptor "uint *******" type_identifier (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 (bVar2 == 7) {\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }" if (parenthesized_expression "(bVar2 == 7)" ( (binary_expression "bVar2 == 7" identifier == number_literal) )) (compound_statement "{\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }" { (expression_statement "ppppppuVar13 = pppppppuVar19[0x20];" (assignment_expression "ppppppuVar13 = pppppppuVar19[0x20]" identifier = (subscript_expression "pppppppuVar19[0x20]" identifier [ number_literal ])) ;) (expression_statement "pppppppuStack_144 = (uint *******)0xffffffff;" (assignment_expression "pppppppuStack_144 = (uint *******)0xffffffff" identifier = (cast_expression "(uint *******)0xffffffff" ( (type_descriptor "uint *******" type_identifier (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 "uStack_140 = 0xffffffff;" (assignment_expression "uStack_140 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uStack_13c = 0xffffffff;" (assignment_expression "uStack_13c = 0xffffffff" identifier = number_literal) ;) (expression_statement "uStack_138 = 0xffffffff;" (assignment_expression "uStack_138 = 0xffffffff" identifier = number_literal) ;) (goto_statement "goto joined_r0x0001e3b8;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_0001dcc8:\n    iStack_184 = iStack_184 + 1;" statement_identifier : (expression_statement "iStack_184 = iStack_184 + 1;" (assignment_expression "iStack_184 = iStack_184 + 1" identifier = (binary_expression "iStack_184 + 1" identifier + number_literal)) ;)) (if_statement "if ((int)ppppppuVar20 <= iStack_184) goto code_r0x0001dcdc;" if (parenthesized_expression "((int)ppppppuVar20 <= iStack_184)" ( (binary_expression "(int)ppppppuVar20 <= iStack_184" (cast_expression "(int)ppppppuVar20" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (goto_statement "goto code_r0x0001dcdc;" goto statement_identifier ;)) (goto_statement "goto LAB_0001dc74;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar46 + 0x1e790))(iVar25);" (call_expression "(**(code **)(pcVar46 + 0x1e790))(iVar25)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e790)" * (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier ))) ;) (goto_statement "goto LAB_0001e824;" goto statement_identifier ;) (labeled_statement "code_r0x0001dcdc:\n  if (0 < (int)pppppppuVar24) {\n    pbVar8 = (byte *)((int)pppppppuVar24 + 1);\n    uStack_14c = 0;\n    pbStack_150 = pbVar8;\n    iVar5 = (**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4);\n    iStack_148 = iVar5;\n    if ((iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)) {\n      iStack_178 = (int)pppppppuVar24 << 1;\n    }\n    else {\n      iStack_178 = (int)pppppppuVar24 * 2;\n      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);\n      if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }\n    }\nLAB_0001e674:\n    (**(code **)(pcVar46 + 0x1e790))(iVar5);\n    iVar5 = iVar25;\n    do {\n      iVar35 = iVar5 + 0xc;\n      (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n      iVar5 = iVar35;\n    } while (iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25);\n    (**(code **)(pcVar46 + 0x1e790))(iVar25);\nLAB_0001dffc:\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }" statement_identifier : (if_statement "if (0 < (int)pppppppuVar24) {\n    pbVar8 = (byte *)((int)pppppppuVar24 + 1);\n    uStack_14c = 0;\n    pbStack_150 = pbVar8;\n    iVar5 = (**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4);\n    iStack_148 = iVar5;\n    if ((iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)) {\n      iStack_178 = (int)pppppppuVar24 << 1;\n    }\n    else {\n      iStack_178 = (int)pppppppuVar24 * 2;\n      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);\n      if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }\n    }\nLAB_0001e674:\n    (**(code **)(pcVar46 + 0x1e790))(iVar5);\n    iVar5 = iVar25;\n    do {\n      iVar35 = iVar5 + 0xc;\n      (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n      iVar5 = iVar35;\n    } while (iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25);\n    (**(code **)(pcVar46 + 0x1e790))(iVar25);\nLAB_0001dffc:\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }" if (parenthesized_expression "(0 < (int)pppppppuVar24)" ( (binary_expression "0 < (int)pppppppuVar24" number_literal < (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    pbVar8 = (byte *)((int)pppppppuVar24 + 1);\n    uStack_14c = 0;\n    pbStack_150 = pbVar8;\n    iVar5 = (**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4);\n    iStack_148 = iVar5;\n    if ((iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)) {\n      iStack_178 = (int)pppppppuVar24 << 1;\n    }\n    else {\n      iStack_178 = (int)pppppppuVar24 * 2;\n      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);\n      if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }\n    }\nLAB_0001e674:\n    (**(code **)(pcVar46 + 0x1e790))(iVar5);\n    iVar5 = iVar25;\n    do {\n      iVar35 = iVar5 + 0xc;\n      (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n      iVar5 = iVar35;\n    } while (iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25);\n    (**(code **)(pcVar46 + 0x1e790))(iVar25);\nLAB_0001dffc:\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }" { (expression_statement "pbVar8 = (byte *)((int)pppppppuVar24 + 1);" (assignment_expression "pbVar8 = (byte *)((int)pppppppuVar24 + 1)" identifier = (cast_expression "(byte *)((int)pppppppuVar24 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppuVar24 + 1)" ( (binary_expression "(int)pppppppuVar24 + 1" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uStack_14c = 0;" (assignment_expression "uStack_14c = 0" identifier = number_literal) ;) (expression_statement "pbStack_150 = pbVar8;" (assignment_expression "pbStack_150 = pbVar8" identifier = identifier) ;) (expression_statement "iVar5 = (**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4);" (assignment_expression "iVar5 = (**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4)" identifier = (call_expression "(**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e724))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e724)" * (pointer_expression "*(code **)(pcVar46 + 0x1e724)" * (cast_expression "(code **)(pcVar46 + 0x1e724)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e724)" ( (binary_expression "pcVar46 + 0x1e724" identifier + number_literal) ))))) )) (argument_list "((int)pbVar8 * 4)" ( (binary_expression "(int)pbVar8 * 4" (cast_expression "(int)pbVar8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "iStack_148 = iVar5;" (assignment_expression "iStack_148 = iVar5" identifier = identifier) ;) (if_statement "if ((iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)) {\n      iStack_178 = (int)pppppppuVar24 << 1;\n    }\n    else {\n      iStack_178 = (int)pppppppuVar24 * 2;\n      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);\n      if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }\n    }" if (parenthesized_expression "((iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24))" ( (binary_expression "(iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)" ( (comma_expression "iStack_154 = 0, 0x155551aa < (int)pppppppuVar24" (assignment_expression "iStack_154 = 0" identifier = number_literal) , (binary_expression "0x155551aa < (int)pppppppuVar24" number_literal < (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n      iStack_178 = (int)pppppppuVar24 << 1;\n    }" { (expression_statement "iStack_178 = (int)pppppppuVar24 << 1;" (assignment_expression "iStack_178 = (int)pppppppuVar24 << 1" identifier = (binary_expression "(int)pppppppuVar24 << 1" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) }) (else_clause "else {\n      iStack_178 = (int)pppppppuVar24 * 2;\n      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);\n      if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }\n    }" else (compound_statement "{\n      iStack_178 = (int)pppppppuVar24 * 2;\n      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);\n      if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }\n    }" { (expression_statement "iStack_178 = (int)pppppppuVar24 * 2;" (assignment_expression "iStack_178 = (int)pppppppuVar24 * 2" identifier = (binary_expression "(int)pppppppuVar24 * 2" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);" (assignment_expression "puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e724))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e724)" * (pointer_expression "*(code **)(pcVar46 + 0x1e724)" * (cast_expression "(code **)(pcVar46 + 0x1e724)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e724)" ( (binary_expression "pcVar46 + 0x1e724" identifier + number_literal) ))))) )) (argument_list "((int)pppppppuVar24 * 0xc)" ( (binary_expression "(int)pppppppuVar24 * 0xc" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))))) ;) (if_statement "if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }" if (parenthesized_expression "(puVar9 != (undefined4 *)0x0)" ( (binary_expression "puVar9 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }" { (expression_statement "iVar5 = (int)pbVar8 * 4 + -4;" (assignment_expression "iVar5 = (int)pbVar8 * 4 + -4" identifier = (binary_expression "(int)pbVar8 * 4 + -4" (binary_expression "(int)pbVar8 * 4" (cast_expression "(int)pbVar8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal)) ;) (expression_statement "ppiVar37 = &piStack_104;" (assignment_expression "ppiVar37 = &piStack_104" identifier = (pointer_expression "&piStack_104" & identifier)) ;) (expression_statement "iVar41 = 0;" (assignment_expression "iVar41 = 0" identifier = number_literal) ;) (expression_statement "puVar17 = puVar9 + (int)pppppppuVar24;" (assignment_expression "puVar17 = puVar9 + (int)pppppppuVar24" identifier = (binary_expression "puVar9 + (int)pppppppuVar24" identifier + (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "piStack_104 = (int *)0x0;" (assignment_expression "piStack_104 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar39 = (int *)(iVar25 + 4);" (assignment_expression "piVar39 = (int *)(iVar25 + 4)" identifier = (cast_expression "(int *)(iVar25 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 4)" ( (binary_expression "iVar25 + 4" identifier + number_literal) )))) ;) (expression_statement "uStack_100 = 0;" (assignment_expression "uStack_100 = 0" identifier = number_literal) ;) (expression_statement "uStack_fc = 0;" (assignment_expression "uStack_fc = 0" identifier = number_literal) ;) (expression_statement "iVar35 = *(int *)(pcVar46 + 0x1e658);" (assignment_expression "iVar35 = *(int *)(pcVar46 + 0x1e658)" identifier = (pointer_expression "*(int *)(pcVar46 + 0x1e658)" * (cast_expression "(int *)(pcVar46 + 0x1e658)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar46 + 0x1e658)" ( (binary_expression "pcVar46 + 0x1e658" identifier + number_literal) ))))) ;) (expression_statement "uStack_f8 = 0;" (assignment_expression "uStack_f8 = 0" identifier = number_literal) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (expression_statement "uStack_f4 = 0;" (assignment_expression "uStack_f4 = 0" identifier = number_literal) ;) (expression_statement "uStack_f0 = 0;" (assignment_expression "uStack_f0 = 0" identifier = number_literal) ;) (expression_statement "uStack_ec = 0;" (assignment_expression "uStack_ec = 0" identifier = number_literal) ;) (expression_statement "uStack_e8 = 0;" (assignment_expression "uStack_e8 = 0" identifier = number_literal) ;) (expression_statement "pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);" (assignment_expression "pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4)" identifier = (cast_expression "(code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar46 + 0x1e658) + -0x42b4)" ( (binary_expression "*(int *)(pcVar46 + 0x1e658) + -0x42b4" (pointer_expression "*(int *)(pcVar46 + 0x1e658)" * (cast_expression "(int *)(pcVar46 + 0x1e658)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar46 + 0x1e658)" ( (binary_expression "pcVar46 + 0x1e658" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);" do (compound_statement "{\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        }" { (expression_statement "iVar23 = *piVar39;" (assignment_expression "iVar23 = *piVar39" identifier = (pointer_expression "*piVar39" * identifier)) ;) (expression_statement "iVar42 = 0;" (assignment_expression "iVar42 = 0" identifier = number_literal) ;) (expression_statement "uStack_14c = 0;" (assignment_expression "uStack_14c = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }" if (parenthesized_expression "(0 < iVar23)" ( (binary_expression "0 < iVar23" number_literal < identifier) )) (compound_statement "{\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }" { (do_statement "do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);" do (compound_statement "{\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            }" { (if_statement "if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }" if (parenthesized_expression "(pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff)" ( (binary_expression "pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff" (subscript_expression "pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)]" (subscript_expression "pppppppuVar19[3]" identifier [ number_literal ]) [ (pointer_expression "*(int *)(piVar39[1] + iVar42 * 4)" * (cast_expression "(int *)(piVar39[1] + iVar42 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar39[1] + iVar42 * 4)" ( (binary_expression "piVar39[1] + iVar42 * 4" (subscript_expression "piVar39[1]" identifier [ number_literal ]) + (binary_expression "iVar42 * 4" identifier * number_literal)) )))) ]) != (cast_expression "(uint *****)0xffffffff" ( (type_descriptor "uint *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }" { (expression_statement "pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);" (assignment_expression "pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3)" identifier = (cast_expression "(uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3)" ( (binary_expression "pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3" (subscript_expression "pppppppuVar19[6]" identifier [ number_literal ]) + (binary_expression "(int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3" (cast_expression "(int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)]" (subscript_expression "pppppppuVar19[3]" identifier [ number_literal ]) [ (pointer_expression "*(int *)(piVar39[1] + iVar42 * 4)" * (cast_expression "(int *)(piVar39[1] + iVar42 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar39[1] + iVar42 * 4)" ( (binary_expression "piVar39[1] + iVar42 * 4" (subscript_expression "piVar39[1]" identifier [ number_literal ]) + (binary_expression "iVar42 * 4" identifier * number_literal)) )))) ])) * number_literal)) )))) ;) (expression_statement "iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);" (assignment_expression "iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150)" identifier = (call_expression "(*(code *)(iVar35 + -0x55b4))(&pbStack_150)" (parenthesized_expression "(*(code *)(iVar35 + -0x55b4))" ( (pointer_expression "*(code *)(iVar35 + -0x55b4)" * (cast_expression "(code *)(iVar35 + -0x55b4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + -0x55b4)" ( (binary_expression "iVar35 + -0x55b4" identifier + number_literal) )))) )) (argument_list "(&pbStack_150)" ( (pointer_expression "&pbStack_150" & identifier) )))) ;) (if_statement "if (iStack_154 != 0) goto LAB_0001e660;" if (parenthesized_expression "(iStack_154 != 0)" ( (binary_expression "iStack_154 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001e660;" goto statement_identifier ;)) (expression_statement "iVar23 = *piVar39;" (assignment_expression "iVar23 = *piVar39" identifier = (pointer_expression "*piVar39" * identifier)) ;) })) (expression_statement "iVar42 = iVar42 + 1;" (assignment_expression "iVar42 = iVar42 + 1" identifier = (binary_expression "iVar42 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar42 < iVar23)" ( (binary_expression "iVar42 < iVar23" identifier < identifier) )) ;) })) (expression_statement "pppppppuVar28 = pppppppuVar19;" (assignment_expression "pppppppuVar28 = pppppppuVar19" identifier = identifier) ;) (expression_statement "iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);" (assignment_expression "iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0)" identifier = (call_expression "(*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(&iStack_154,pppppppuVar19,&pbStack_150,0)" ( (pointer_expression "&iStack_154" & identifier) , identifier , (pointer_expression "&pbStack_150" & identifier) , number_literal )))) ;) (expression_statement "*(int *)((int)puVar9 + iVar41) = iVar23;" (assignment_expression "*(int *)((int)puVar9 + iVar41) = iVar23" (pointer_expression "*(int *)((int)puVar9 + iVar41)" * (cast_expression "(int *)((int)puVar9 + iVar41)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + iVar41)" ( (binary_expression "(int)puVar9 + iVar41" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (if_statement "if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;" if (parenthesized_expression "((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))" ( (binary_expression "(iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0)" (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) && (parenthesized_expression "(pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0)" ( (comma_expression "pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0" (assignment_expression "pcVar44 = *(code **)(pcVar46 + 0x1e790)" identifier = (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) , (binary_expression "iStack_154 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0001e664;" goto statement_identifier ;)) (if_statement "if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }" if (parenthesized_expression "((*(byte *)(iVar23 + 0x34) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar23 + 0x34) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar23 + 0x34) & 1)" ( (binary_expression "*(byte *)(iVar23 + 0x34) & 1" (pointer_expression "*(byte *)(iVar23 + 0x34)" * (cast_expression "(byte *)(iVar23 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x34)" ( (binary_expression "iVar23 + 0x34" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }" { (expression_statement "*(int *)((int)puVar17 + iVar41) = iVar23;" (assignment_expression "*(int *)((int)puVar17 + iVar41) = iVar23" (pointer_expression "*(int *)((int)puVar17 + iVar41)" * (cast_expression "(int *)((int)puVar17 + iVar41)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + iVar41)" ( (binary_expression "(int)puVar17 + iVar41" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "*(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;" (assignment_expression "*(int *)((int)puVar17 + iVar41 + iVar5) = iVar23" (pointer_expression "*(int *)((int)puVar17 + iVar41 + iVar5)" * (cast_expression "(int *)((int)puVar17 + iVar41 + iVar5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + iVar41 + iVar5)" ( (binary_expression "(int)puVar17 + iVar41 + iVar5" (binary_expression "(int)puVar17 + iVar41" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) )))) = identifier) ;) }) (else_clause "else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }" else (compound_statement "{\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }" { (expression_statement "pppppppuVar28 = pppppppuVar19;" (assignment_expression "pppppppuVar28 = pppppppuVar19" identifier = identifier) ;) (expression_statement "iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);" (assignment_expression "iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1)" identifier = (call_expression "(*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(&iStack_154,pppppppuVar19,&pbStack_150,1)" ( (pointer_expression "&iStack_154" & identifier) , identifier , (pointer_expression "&pbStack_150" & identifier) , number_literal )))) ;) (expression_statement "*(int *)((int)puVar17 + iVar41) = iVar23;" (assignment_expression "*(int *)((int)puVar17 + iVar41) = iVar23" (pointer_expression "*(int *)((int)puVar17 + iVar41)" * (cast_expression "(int *)((int)puVar17 + iVar41)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + iVar41)" ( (binary_expression "(int)puVar17 + iVar41" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (if_statement "if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;" if (parenthesized_expression "((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))" ( (binary_expression "(iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0)" (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) && (parenthesized_expression "(pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0)" ( (comma_expression "pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0" (assignment_expression "pcVar44 = *(code **)(pcVar46 + 0x1e790)" identifier = (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) , (binary_expression "iStack_154 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0001e664;" goto statement_identifier ;)) (if_statement "if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }" if (parenthesized_expression "((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17]))" ( (binary_expression "(iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])" (parenthesized_expression "(iVar23 != *(int *)((int)puVar9 + iVar41))" ( (binary_expression "iVar23 != *(int *)((int)puVar9 + iVar41)" identifier != (pointer_expression "*(int *)((int)puVar9 + iVar41)" * (cast_expression "(int *)((int)puVar9 + iVar41)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + iVar41)" ( (binary_expression "(int)puVar9 + iVar41" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) )) && (parenthesized_expression "(1 < (int)pppppppuVar19[0x17])" ( (binary_expression "1 < (int)pppppppuVar19[0x17]" number_literal < (cast_expression "(int)pppppppuVar19[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppuVar19[0x17]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n              bVar3 = true;\n            }" { (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) })) (expression_statement "pppppppuVar28 = pppppppuVar19;" (assignment_expression "pppppppuVar28 = pppppppuVar19" identifier = identifier) ;) (expression_statement "iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);" (assignment_expression "iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2)" identifier = (call_expression "(*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(&iStack_154,pppppppuVar19,&pbStack_150,2)" ( (pointer_expression "&iStack_154" & identifier) , identifier , (pointer_expression "&pbStack_150" & identifier) , number_literal )))) ;) (expression_statement "*(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;" (assignment_expression "*(int *)((int)puVar17 + iVar41 + iVar5) = iVar23" (pointer_expression "*(int *)((int)puVar17 + iVar41 + iVar5)" * (cast_expression "(int *)((int)puVar17 + iVar41 + iVar5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + iVar41 + iVar5)" ( (binary_expression "(int)puVar17 + iVar41 + iVar5" (binary_expression "(int)puVar17 + iVar41" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) )))) = identifier) ;) (if_statement "if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;" if (parenthesized_expression "((iVar23 == 0) && (iStack_154 != 0))" ( (binary_expression "(iVar23 == 0) && (iStack_154 != 0)" (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) && (parenthesized_expression "(iStack_154 != 0)" ( (binary_expression "iStack_154 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_0001e660;" goto statement_identifier ;)) }))) (expression_statement "iVar23 = iVar41 * 8 + iVar25;" (assignment_expression "iVar23 = iVar41 * 8 + iVar25" identifier = (binary_expression "iVar41 * 8 + iVar25" (binary_expression "iVar41 * 8" identifier * number_literal) + identifier)) ;) (expression_statement "ppiVar11 = ppiVar37;" (assignment_expression "ppiVar11 = ppiVar37" identifier = identifier) ;) (do_statement "do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);" do (compound_statement "{\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          }" { (expression_statement "ppiVar12 = ppiVar11 + 1;" (assignment_expression "ppiVar12 = ppiVar11 + 1" identifier = (binary_expression "ppiVar11 + 1" identifier + number_literal)) ;) (expression_statement "puVar14 = (uint *)(iVar23 + 0xc00);" (assignment_expression "puVar14 = (uint *)(iVar23 + 0xc00)" identifier = (cast_expression "(uint *)(iVar23 + 0xc00)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0xc00)" ( (binary_expression "iVar23 + 0xc00" identifier + number_literal) )))) ;) (expression_statement "iVar23 = iVar23 + 4;" (assignment_expression "iVar23 = iVar23 + 4" identifier = (binary_expression "iVar23 + 4" identifier + number_literal)) ;) (expression_statement "*ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);" (assignment_expression "*ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14)" (pointer_expression "*ppiVar11" * identifier) = (cast_expression "(int *)((uint)*ppiVar11 | *puVar14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)*ppiVar11 | *puVar14)" ( (binary_expression "(uint)*ppiVar11 | *puVar14" (binary_expression "(uint)*ppiVar11" (parenthesized_expression "(uint)" ( identifier )) * identifier) | (pointer_expression "*puVar14" * identifier)) )))) ;) (expression_statement "ppiVar11 = ppiVar12;" (assignment_expression "ppiVar11 = ppiVar12" identifier = identifier) ;) }) while (parenthesized_expression "(&piStack_e4 != ppiVar12)" ( (binary_expression "&piStack_e4 != ppiVar12" (pointer_expression "&piStack_e4" & identifier) != identifier) )) ;) (expression_statement "iVar41 = iVar41 + 4;" (assignment_expression "iVar41 = iVar41 + 4" identifier = (binary_expression "iVar41 + 4" identifier + number_literal)) ;) (expression_statement "piVar39 = piVar39 + 3;" (assignment_expression "piVar39 = piVar39 + 3" identifier = (binary_expression "piVar39 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 != iVar41)" ( (binary_expression "iVar5 != iVar41" identifier != identifier) )) ;) (if_statement "if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }" { (expression_statement "pppppppuVar28 = (uint *******)0x200;" (assignment_expression "pppppppuVar28 = (uint *******)0x200" identifier = (cast_expression "(uint *******)0x200" ( (type_descriptor "uint *******" type_identifier (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 "ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);" (assignment_expression "ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4)" identifier = (cast_expression "(uint ******)(**(code **)(pcVar46 + 0x1e688))(4)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(pcVar46 + 0x1e688))(4)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e688))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e688)" * (pointer_expression "*(code **)(pcVar46 + 0x1e688)" * (cast_expression "(code **)(pcVar46 + 0x1e688)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e688)" ( (binary_expression "pcVar46 + 0x1e688" identifier + number_literal) ))))) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "pppppppuVar18[0xc] = ppppppuVar20;" (assignment_expression "pppppppuVar18[0xc] = ppppppuVar20" (subscript_expression "pppppppuVar18[0xc]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;" if (parenthesized_expression "(ppppppuVar20 == (uint ******)0x0)" ( (binary_expression "ppppppuVar20 == (uint ******)0x0" identifier == (cast_expression "(uint ******)0x0" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_0001e660;" goto statement_identifier ;)) (expression_statement "iVar5 = iVar25;" (assignment_expression "iVar5 = iVar25" identifier = identifier) ;) (expression_statement "ppppppuVar36 = ppppppuVar20;" (assignment_expression "ppppppuVar36 = ppppppuVar20" identifier = identifier) ;) (do_statement "do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);" do (compound_statement "{\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          }" { (expression_statement "piVar39 = *ppiVar37;" (assignment_expression "piVar39 = *ppiVar37" identifier = (pointer_expression "*ppiVar37" * identifier)) ;) (if_statement "if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }" if (parenthesized_expression "(piVar39 != (int *)0x0)" ( (binary_expression "piVar39 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }" { (expression_statement "pppppppuVar28 = (uint *******)0x1;" (assignment_expression "pppppppuVar28 = (uint *******)0x1" identifier = (cast_expression "(uint *******)0x1" ( (type_descriptor "uint *******" type_identifier (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 "ppppppuVar13 = ppppppuVar36;" (assignment_expression "ppppppuVar13 = ppppppuVar36" identifier = identifier) ;) (do_statement "do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);" do (compound_statement "{\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              }" { (if_statement "if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }" if (parenthesized_expression "(((uint)piVar39 & 1) != 0)" ( (binary_expression "((uint)piVar39 & 1) != 0" (parenthesized_expression "((uint)piVar39 & 1)" ( (binary_expression "(uint)piVar39 & 1" (cast_expression "(uint)piVar39" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }" { (expression_statement "iVar41 = 0;" (assignment_expression "iVar41 = 0" identifier = number_literal) ;) (expression_statement "puVar21 = puVar17;" (assignment_expression "puVar21 = puVar17" identifier = identifier) ;) (expression_statement "puVar27 = puVar9;" (assignment_expression "puVar27 = puVar9" identifier = identifier) ;) (expression_statement "iVar35 = iVar5;" (assignment_expression "iVar35 = iVar5" identifier = identifier) ;) (if_statement "if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }" if (parenthesized_expression "(((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0)" ( (binary_expression "((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0" (parenthesized_expression "((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00))" ( (binary_expression "(uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)" (cast_expression "(uint)pppppppuVar28" ( (type_descriptor "uint" type_identifier) ) identifier) & (pointer_expression "*(uint *)(iVar5 + 0xc00)" * (cast_expression "(uint *)(iVar5 + 0xc00)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc00)" ( (binary_expression "iVar5 + 0xc00" identifier + number_literal) ))))) )) == number_literal) )) (compound_statement "{\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }" { (do_statement "do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);" do (compound_statement "{\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    }" { (expression_statement "puVar14 = (uint *)(iVar35 + 0xc20);" (assignment_expression "puVar14 = (uint *)(iVar35 + 0xc20)" identifier = (cast_expression "(uint *)(iVar35 + 0xc20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + 0xc20)" ( (binary_expression "iVar35 + 0xc20" identifier + number_literal) )))) ;) (expression_statement "iVar41 = iVar41 + 1;" (assignment_expression "iVar41 = iVar41 + 1" identifier = (binary_expression "iVar41 + 1" identifier + number_literal)) ;) (expression_statement "iVar35 = iVar35 + 0x20;" (assignment_expression "iVar35 = iVar35 + 0x20" identifier = (binary_expression "iVar35 + 0x20" identifier + number_literal)) ;) }) while (parenthesized_expression "(((uint)pppppppuVar28 & *puVar14) == 0)" ( (binary_expression "((uint)pppppppuVar28 & *puVar14) == 0" (parenthesized_expression "((uint)pppppppuVar28 & *puVar14)" ( (binary_expression "(uint)pppppppuVar28 & *puVar14" (cast_expression "(uint)pppppppuVar28" ( (type_descriptor "uint" type_identifier) ) identifier) & (pointer_expression "*puVar14" * identifier)) )) == number_literal) )) ;) (expression_statement "puVar21 = puVar17 + iVar41;" (assignment_expression "puVar21 = puVar17 + iVar41" identifier = (binary_expression "puVar17 + iVar41" identifier + identifier)) ;) (expression_statement "puVar27 = puVar9 + iVar41;" (assignment_expression "puVar27 = puVar9 + iVar41" identifier = (binary_expression "puVar9 + iVar41" identifier + identifier)) ;) })) (expression_statement "*ppppppuVar13 = (uint *****)*puVar27;" (assignment_expression "*ppppppuVar13 = (uint *****)*puVar27" (pointer_expression "*ppppppuVar13" * identifier) = (cast_expression "(uint *****)*puVar27" ( (type_descriptor "uint *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*puVar27" * identifier))) ;) (expression_statement "ppppppuVar13[0x100] = (uint *****)*puVar21;" (assignment_expression "ppppppuVar13[0x100] = (uint *****)*puVar21" (subscript_expression "ppppppuVar13[0x100]" identifier [ number_literal ]) = (cast_expression "(uint *****)*puVar21" ( (type_descriptor "uint *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*puVar21" * identifier))) ;) })) (expression_statement "piVar39 = (int *)((uint)piVar39 >> 1);" (assignment_expression "piVar39 = (int *)((uint)piVar39 >> 1)" identifier = (cast_expression "(int *)((uint)piVar39 >> 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)piVar39 >> 1)" ( (binary_expression "(uint)piVar39 >> 1" (cast_expression "(uint)piVar39" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);" (assignment_expression "pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar28 << 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar28 << 1)" ( (binary_expression "(int)pppppppuVar28 << 1" (cast_expression "(int)pppppppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "ppppppuVar13 = ppppppuVar13 + 1;" (assignment_expression "ppppppuVar13 = ppppppuVar13 + 1" identifier = (binary_expression "ppppppuVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar39 != (int *)0x0)" ( (binary_expression "piVar39 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "ppppppuVar36 = ppppppuVar36 + 0x20;" (assignment_expression "ppppppuVar36 = ppppppuVar36 + 0x20" identifier = (binary_expression "ppppppuVar36 + 0x20" identifier + number_literal)) ;) (expression_statement "ppiVar37 = ppiVar37 + 1;" (assignment_expression "ppiVar37 = ppiVar37 + 1" identifier = (binary_expression "ppiVar37 + 1" identifier + number_literal)) ;) (expression_statement "iVar5 = iVar5 + 4;" (assignment_expression "iVar5 = iVar5 + 4" identifier = (binary_expression "iVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppppppuVar20 + 0x100 != ppppppuVar36)" ( (binary_expression "ppppppuVar20 + 0x100 != ppppppuVar36" (binary_expression "ppppppuVar20 + 0x100" identifier + number_literal) != identifier) )) ;) }) (else_clause "else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }" else (compound_statement "{\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }" { (expression_statement "pppppppuVar28 = (uint *******)0x100;" (assignment_expression "pppppppuVar28 = (uint *******)0x100" identifier = (cast_expression "(uint *******)0x100" ( (type_descriptor "uint *******" type_identifier (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 "ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);" (assignment_expression "ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4)" identifier = (cast_expression "(uint ******)(**(code **)(pcVar46 + 0x1e688))(4)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(pcVar46 + 0x1e688))(4)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e688))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e688)" * (pointer_expression "*(code **)(pcVar46 + 0x1e688)" * (cast_expression "(code **)(pcVar46 + 0x1e688)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e688)" ( (binary_expression "pcVar46 + 0x1e688" identifier + number_literal) ))))) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "pppppppuVar18[0xb] = ppppppuVar20;" (assignment_expression "pppppppuVar18[0xb] = ppppppuVar20" (subscript_expression "pppppppuVar18[0xb]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }" if (parenthesized_expression "(ppppppuVar20 == (uint ******)0x0)" ( (binary_expression "ppppppuVar20 == (uint ******)0x0" identifier == (cast_expression "(uint ******)0x0" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }" { (labeled_statement "LAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);" statement_identifier : (expression_statement "pcVar44 = *(code **)(pcVar46 + 0x1e790);" (assignment_expression "pcVar44 = *(code **)(pcVar46 + 0x1e790)" identifier = (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0001e664:\n            (*pcVar44)(puVar9);" statement_identifier : (expression_statement "(*pcVar44)(puVar9);" (call_expression "(*pcVar44)(puVar9)" (parenthesized_expression "(*pcVar44)" ( (pointer_expression "*pcVar44" * identifier) )) (argument_list "(puVar9)" ( identifier ))) ;)) (expression_statement "iVar5 = iStack_148;" (assignment_expression "iVar5 = iStack_148" identifier = identifier) ;) (goto_statement "goto LAB_0001e674;" goto statement_identifier ;) })) (expression_statement "pppppppuVar19 = pppppppuVar19 + 0x18;" (assignment_expression "pppppppuVar19 = pppppppuVar19 + 0x18" identifier = (binary_expression "pppppppuVar19 + 0x18" identifier + number_literal)) ;) (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = iVar25;" (assignment_expression "iVar5 = iVar25" identifier = identifier) ;) (do_statement "do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);" do (compound_statement "{\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          }" { (expression_statement "pppppppuVar28 = (uint *******)0x1;" (assignment_expression "pppppppuVar28 = (uint *******)0x1" identifier = (cast_expression "(uint *******)0x1" ( (type_descriptor "uint *******" type_identifier (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 "iVar41 = iVar35;" (assignment_expression "iVar41 = iVar35" identifier = identifier) ;) (for_statement "for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }" for ( (assignment_expression "piVar39 = *ppiVar37" identifier = (pointer_expression "*ppiVar37" * identifier)) ; (binary_expression "piVar39 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "piVar39 = (int *)((uint)piVar39 >> 1)" identifier = (cast_expression "(int *)((uint)piVar39 >> 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)piVar39 >> 1)" ( (binary_expression "(uint)piVar39 >> 1" (cast_expression "(uint)piVar39" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ) (compound_statement "{\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }" { (if_statement "if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }" if (parenthesized_expression "(((uint)piVar39 & 1) != 0)" ( (binary_expression "((uint)piVar39 & 1) != 0" (parenthesized_expression "((uint)piVar39 & 1)" ( (binary_expression "(uint)piVar39 & 1" (cast_expression "(uint)piVar39" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }" { (expression_statement "iVar42 = 0;" (assignment_expression "iVar42 = 0" identifier = number_literal) ;) (expression_statement "iVar23 = iVar5;" (assignment_expression "iVar23 = iVar5" identifier = identifier) ;) (if_statement "if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }" if (parenthesized_expression "(((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0)" ( (binary_expression "((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0" (parenthesized_expression "((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00))" ( (binary_expression "(uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)" (cast_expression "(uint)pppppppuVar28" ( (type_descriptor "uint" type_identifier) ) identifier) & (pointer_expression "*(uint *)(iVar5 + 0xc00)" * (cast_expression "(uint *)(iVar5 + 0xc00)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc00)" ( (binary_expression "iVar5 + 0xc00" identifier + number_literal) ))))) )) == number_literal) )) (compound_statement "{\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }" { (do_statement "do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);" do (compound_statement "{\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  }" { (expression_statement "puVar14 = (uint *)(iVar23 + 0xc20);" (assignment_expression "puVar14 = (uint *)(iVar23 + 0xc20)" identifier = (cast_expression "(uint *)(iVar23 + 0xc20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0xc20)" ( (binary_expression "iVar23 + 0xc20" identifier + number_literal) )))) ;) (expression_statement "iVar42 = iVar42 + 1;" (assignment_expression "iVar42 = iVar42 + 1" identifier = (binary_expression "iVar42 + 1" identifier + number_literal)) ;) (expression_statement "iVar23 = iVar23 + 0x20;" (assignment_expression "iVar23 = iVar23 + 0x20" identifier = (binary_expression "iVar23 + 0x20" identifier + number_literal)) ;) }) while (parenthesized_expression "(((uint)pppppppuVar28 & *puVar14) == 0)" ( (binary_expression "((uint)pppppppuVar28 & *puVar14) == 0" (parenthesized_expression "((uint)pppppppuVar28 & *puVar14)" ( (binary_expression "(uint)pppppppuVar28 & *puVar14" (cast_expression "(uint)pppppppuVar28" ( (type_descriptor "uint" type_identifier) ) identifier) & (pointer_expression "*puVar14" * identifier)) )) == number_literal) )) ;) (expression_statement "iVar42 = iVar42 * 4;" (assignment_expression "iVar42 = iVar42 * 4" identifier = (binary_expression "iVar42 * 4" identifier * number_literal)) ;) })) (if_statement "if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }" if (parenthesized_expression "(((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0)" ( (binary_expression "((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0" (parenthesized_expression "((uint)pppppppuVar28 & (uint)*pppppppuVar19)" ( (binary_expression "(uint)pppppppuVar28 & (uint)*pppppppuVar19" (cast_expression "(uint)pppppppuVar28" ( (type_descriptor "uint" type_identifier) ) identifier) & (binary_expression "(uint)*pppppppuVar19" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )) == number_literal) )) (compound_statement "{\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }" { (expression_statement "ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);" (assignment_expression "ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42)" (subscript_expression "ppppppuVar20[iVar41]" identifier [ identifier ]) = (pointer_expression "*(uint ******)((int)puVar9 + iVar42)" * (cast_expression "(uint ******)((int)puVar9 + iVar42)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)puVar9 + iVar42)" ( (binary_expression "(int)puVar9 + iVar42" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) }) (else_clause "else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }" else (compound_statement "{\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }" { (expression_statement "ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);" (assignment_expression "ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42)" (subscript_expression "ppppppuVar20[iVar41]" identifier [ identifier ]) = (pointer_expression "*(uint ******)((int)puVar17 + iVar42)" * (cast_expression "(uint ******)((int)puVar17 + iVar42)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)puVar17 + iVar42)" ( (binary_expression "(int)puVar17 + iVar42" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) }))) })) (expression_statement "pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);" (assignment_expression "pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar28 << 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar28 << 1)" ( (binary_expression "(int)pppppppuVar28 << 1" (cast_expression "(int)pppppppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "iVar41 = iVar41 + 1;" (assignment_expression "iVar41 = iVar41 + 1" identifier = (binary_expression "iVar41 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar35 = iVar35 + 0x20;" (assignment_expression "iVar35 = iVar35 + 0x20" identifier = (binary_expression "iVar35 + 0x20" identifier + number_literal)) ;) (expression_statement "ppiVar37 = ppiVar37 + 1;" (assignment_expression "ppiVar37 = ppiVar37 + 1" identifier = (binary_expression "ppiVar37 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar19 = pppppppuVar19 + 1;" (assignment_expression "pppppppuVar19 = pppppppuVar19 + 1" identifier = (binary_expression "pppppppuVar19 + 1" identifier + number_literal)) ;) (expression_statement "iVar5 = iVar5 + 4;" (assignment_expression "iVar5 = iVar5 + 4" identifier = (binary_expression "iVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar35 != 0x100)" ( (binary_expression "iVar35 != 0x100" identifier != number_literal) )) ;) }))) (expression_statement "pcVar10 = *(code **)(pcVar46 + 0x1e790);" (assignment_expression "pcVar10 = *(code **)(pcVar46 + 0x1e790)" identifier = (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) ;) (if_statement "if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }" if (parenthesized_expression "((int)piStack_104 << 0x15 < 0)" ( (binary_expression "(int)piStack_104 << 0x15 < 0" (binary_expression "(int)piStack_104 << 0x15" (cast_expression "(int)piStack_104" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) < number_literal) )) (compound_statement "{\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }" { (expression_statement "pppppppuVar28 = (uint *******)0x0;" (assignment_expression "pppppppuVar28 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);" do (compound_statement "{\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          }" { (if_statement "if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }" if (parenthesized_expression "((*puVar7 & 0x400) != 0)" ( (binary_expression "(*puVar7 & 0x400) != 0" (parenthesized_expression "(*puVar7 & 0x400)" ( (binary_expression "*puVar7 & 0x400" (pointer_expression "*puVar7" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }" { (expression_statement "pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];" (assignment_expression "pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))]" identifier = (cast_expression "(uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))]" ( (type_descriptor "uint *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))]" identifier [ (cast_expression "(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar8 + (int)((int)pppppppuVar28 + -1))" ( (binary_expression "pbVar8 + (int)((int)pppppppuVar28 + -1)" identifier + (cast_expression "(int)((int)pppppppuVar28 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppppuVar28 + -1)" ( (binary_expression "(int)pppppppuVar28 + -1" (cast_expression "(int)pppppppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ]))) ;) (expression_statement "ppppppuVar20[10] = pppppuVar31;" (assignment_expression "ppppppuVar20[10] = pppppuVar31" (subscript_expression "ppppppuVar20[10]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }" { (expression_statement "ppppppuVar20[0x10a] = pppppuVar31;" (assignment_expression "ppppppuVar20[0x10a] = pppppuVar31" (subscript_expression "ppppppuVar20[0x10a]" identifier [ number_literal ]) = identifier) ;) })) (break_statement "break;" break ;) })) (expression_statement "pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);" (assignment_expression "pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar28 + 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar28 + 1)" ( (binary_expression "(int)pppppppuVar28 + 1" (cast_expression "(int)pppppppuVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar7 = puVar7 + 8;" (assignment_expression "puVar7 = puVar7 + 8" identifier = (binary_expression "puVar7 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(pppppppuVar28 != pppppppuVar24)" ( (binary_expression "pppppppuVar28 != pppppppuVar24" identifier != identifier) )) ;) (expression_statement "pcVar10 = *(code **)(pcVar46 + 0x1e790);" (assignment_expression "pcVar10 = *(code **)(pcVar46 + 0x1e790)" identifier = (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) ;) })) (expression_statement "(*pcVar10)(puVar9);" (call_expression "(*pcVar10)(puVar9)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(puVar9)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar46 + 0x1e790))(iStack_148);" (call_expression "(**(code **)(pcVar46 + 0x1e790))(iStack_148)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e790)" * (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(iStack_148)" ( identifier ))) ;) (expression_statement "iVar5 = iVar25;" (assignment_expression "iVar5 = iVar25" identifier = identifier) ;) (do_statement "do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);" do (compound_statement "{\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        }" { (expression_statement "iVar35 = iVar5 + 0xc;" (assignment_expression "iVar35 = iVar5 + 0xc" identifier = (binary_expression "iVar5 + 0xc" identifier + number_literal)) ;) (expression_statement "(**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));" (call_expression "(**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8))" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e790)" * (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar5 + 8))" ( (pointer_expression "*(undefined4 *)(iVar5 + 8)" * (cast_expression "(undefined4 *)(iVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "iVar5 = iVar35;" (assignment_expression "iVar5 = iVar35" identifier = identifier) ;) }) while (parenthesized_expression "(iVar25 + (int)pppppppuVar24 * 0xc != iVar35)" ( (binary_expression "iVar25 + (int)pppppppuVar24 * 0xc != iVar35" (binary_expression "iVar25 + (int)pppppppuVar24 * 0xc" identifier + (binary_expression "(int)pppppppuVar24 * 0xc" (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) != identifier) )) ;) (expression_statement "(**(code **)(pcVar46 + 0x1e790))(iVar25);" (call_expression "(**(code **)(pcVar46 + 0x1e790))(iVar25)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e790)" * (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier ))) ;) (expression_statement "pppppppuVar24 = (uint *******)0x1;" (assignment_expression "pppppppuVar24 = (uint *******)0x1" identifier = (cast_expression "(uint *******)0x1" ( (type_descriptor "uint *******" type_identifier (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_0001e000;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_0001e674:\n    (**(code **)(pcVar46 + 0x1e790))(iVar5);" statement_identifier : (expression_statement "(**(code **)(pcVar46 + 0x1e790))(iVar5);" (call_expression "(**(code **)(pcVar46 + 0x1e790))(iVar5)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e790)" * (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier ))) ;)) (expression_statement "iVar5 = iVar25;" (assignment_expression "iVar5 = iVar25" identifier = identifier) ;) (do_statement "do {\n      iVar35 = iVar5 + 0xc;\n      (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n      iVar5 = iVar35;\n    } while (iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25);" do (compound_statement "{\n      iVar35 = iVar5 + 0xc;\n      (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n      iVar5 = iVar35;\n    }" { (expression_statement "iVar35 = iVar5 + 0xc;" (assignment_expression "iVar35 = iVar5 + 0xc" identifier = (binary_expression "iVar5 + 0xc" identifier + number_literal)) ;) (expression_statement "(**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));" (call_expression "(**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8))" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e790)" * (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar5 + 8))" ( (pointer_expression "*(undefined4 *)(iVar5 + 8)" * (cast_expression "(undefined4 *)(iVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "iVar5 = iVar35;" (assignment_expression "iVar5 = iVar35" identifier = identifier) ;) }) while (parenthesized_expression "(iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25)" ( (binary_expression "iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25" identifier != (binary_expression "(int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25" (binary_expression "(int)(iStack_178 + (int)pppppppuVar24) * 4" (cast_expression "(int)(iStack_178 + (int)pppppppuVar24)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iStack_178 + (int)pppppppuVar24)" ( (binary_expression "iStack_178 + (int)pppppppuVar24" identifier + (cast_expression "(int)pppppppuVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ))) * number_literal) + identifier)) )) ;) (expression_statement "(**(code **)(pcVar46 + 0x1e790))(iVar25);" (call_expression "(**(code **)(pcVar46 + 0x1e790))(iVar25)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e790)" * (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier ))) ;) (labeled_statement "LAB_0001dffc:\n    pppppppuVar24 = (uint *******)0x0;" statement_identifier : (expression_statement "pppppppuVar24 = (uint *******)0x0;" (assignment_expression "pppppppuVar24 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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_0001e000;" goto statement_identifier ;) }))) (expression_statement "(**(code **)(pcVar46 + 0x1e790))(iVar25);" (call_expression "(**(code **)(pcVar46 + 0x1e790))(iVar25)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e790)" * (pointer_expression "*(code **)(pcVar46 + 0x1e790)" * (cast_expression "(code **)(pcVar46 + 0x1e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e790)" ( (binary_expression "pcVar46 + 0x1e790" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier ))) ;) (if_statement "if (pppppppuVar24 != (uint *******)0x0) {\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }" if (parenthesized_expression "(pppppppuVar24 != (uint *******)0x0)" ( (binary_expression "pppppppuVar24 != (uint *******)0x0" identifier != (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }" { (expression_statement "pppppppuVar24 = (uint *******)0x0;" (assignment_expression "pppppppuVar24 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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_0001e000;" goto statement_identifier ;) })) (labeled_statement "LAB_0001e824:\n  pppppppuVar28 = (uint *******)0x100;" statement_identifier : (expression_statement "pppppppuVar28 = (uint *******)0x100;" (assignment_expression "pppppppuVar28 = (uint *******)0x100" identifier = (cast_expression "(uint *******)0x100" ( (type_descriptor "uint *******" type_identifier (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 "ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);" (assignment_expression "ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4)" identifier = (cast_expression "(uint ******)(**(code **)(pcVar46 + 0x1e688))(4)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(pcVar46 + 0x1e688))(4)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e688))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e688)" * (pointer_expression "*(code **)(pcVar46 + 0x1e688)" * (cast_expression "(code **)(pcVar46 + 0x1e688)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e688)" ( (binary_expression "pcVar46 + 0x1e688" identifier + number_literal) ))))) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "pppppppuVar18[0xb] = ppppppuVar20;" (assignment_expression "pppppppuVar18[0xb] = ppppppuVar20" (subscript_expression "pppppppuVar18[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppuVar24 = (uint *******)(uint)(ppppppuVar20 != (uint ******)0x0);" (assignment_expression "pppppppuVar24 = (uint *******)(uint)(ppppppuVar20 != (uint ******)0x0)" identifier = (cast_expression "(uint *******)(uint)(ppppppuVar20 != (uint ******)0x0)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)(ppppppuVar20 != (uint ******)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ppppppuVar20 != (uint ******)0x0)" ( (binary_expression "ppppppuVar20 != (uint ******)0x0" identifier != (cast_expression "(uint ******)0x0" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))))) ;) (labeled_statement "LAB_0001e000:\n  if (piStack_e4 == (int *)*piVar6) {\n    return pppppppuVar24;\n  }" statement_identifier : (if_statement "if (piStack_e4 == (int *)*piVar6) {\n    return pppppppuVar24;\n  }" if (parenthesized_expression "(piStack_e4 == (int *)*piVar6)" ( (binary_expression "piStack_e4 == (int *)*piVar6" identifier == (cast_expression "(int *)*piVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) )) (compound_statement "{\n    return pppppppuVar24;\n  }" { (return_statement "return pppppppuVar24;" return identifier ;) }))) (expression_statement "piVar6 = piStack_e4;" (assignment_expression "piVar6 = piStack_e4" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar46 + 0x1e764))();" (call_expression "(**(code **)(pcVar46 + 0x1e764))()" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e764))" ( (pointer_expression "**(code **)(pcVar46 + 0x1e764)" * (pointer_expression "*(code **)(pcVar46 + 0x1e764)" * (cast_expression "(code **)(pcVar46 + 0x1e764)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x1e764)" ( (binary_expression "pcVar46 + 0x1e764" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (if_statement "if (*(byte *)(pppppppuVar28 + 6) == 0x10) {\n    ppppppuVar20 = (uint ******)pppppppuVar28[1][7];\n    pppppppuVar28[3] = (uint ******)pppppppuVar28[1][3];\n    pppppppuVar28[7] = ppppppuVar20;\n    return (uint *******)0x0;\n  }" if (parenthesized_expression "(*(byte *)(pppppppuVar28 + 6) == 0x10)" ( (binary_expression "*(byte *)(pppppppuVar28 + 6) == 0x10" (pointer_expression "*(byte *)(pppppppuVar28 + 6)" * (cast_expression "(byte *)(pppppppuVar28 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppuVar28 + 6)" ( (binary_expression "pppppppuVar28 + 6" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    ppppppuVar20 = (uint ******)pppppppuVar28[1][7];\n    pppppppuVar28[3] = (uint ******)pppppppuVar28[1][3];\n    pppppppuVar28[7] = ppppppuVar20;\n    return (uint *******)0x0;\n  }" { (expression_statement "ppppppuVar20 = (uint ******)pppppppuVar28[1][7];" (assignment_expression "ppppppuVar20 = (uint ******)pppppppuVar28[1][7]" identifier = (cast_expression "(uint ******)pppppppuVar28[1][7]" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "pppppppuVar28[1][7]" (subscript_expression "pppppppuVar28[1]" identifier [ number_literal ]) [ number_literal ]))) ;) (expression_statement "pppppppuVar28[3] = (uint ******)pppppppuVar28[1][3];" (assignment_expression "pppppppuVar28[3] = (uint ******)pppppppuVar28[1][3]" (subscript_expression "pppppppuVar28[3]" identifier [ number_literal ]) = (cast_expression "(uint ******)pppppppuVar28[1][3]" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "pppppppuVar28[1][3]" (subscript_expression "pppppppuVar28[1]" identifier [ number_literal ]) [ number_literal ]))) ;) (expression_statement "pppppppuVar28[7] = ppppppuVar20;" (assignment_expression "pppppppuVar28[7] = ppppppuVar20" (subscript_expression "pppppppuVar28[7]" identifier [ number_literal ]) = identifier) ;) (return_statement "return (uint *******)0x0;" return (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "pppppppuVar28[3] = (uint ******)pppppppuVar28;" (assignment_expression "pppppppuVar28[3] = (uint ******)pppppppuVar28" (subscript_expression "pppppppuVar28[3]" identifier [ number_literal ]) = (cast_expression "(uint ******)pppppppuVar28" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "ppppppuVar20 = (uint ******)FUN_00019660();" (assignment_expression "ppppppuVar20 = (uint ******)FUN_00019660()" identifier = (cast_expression "(uint ******)FUN_00019660()" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_00019660()" identifier (argument_list "()" ( ))))) ;) (expression_statement "pppppppuVar28[7] = ppppppuVar20;" (assignment_expression "pppppppuVar28[7] = ppppppuVar20" (subscript_expression "pppppppuVar28[7]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (ppppppuVar20 == (uint ******)0xffffffff) {\n    pppppppuVar24 = (uint *******)0xc;\n  }\n  else {\n    if (*(byte *)(pppppppuVar28 + 6) == 0xc) {\n      iVar25 = *piVar6 + (int)ppppppuVar20 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;\n      return (uint *******)0x0;\n    }\n    pppppppuVar24 = (uint *******)0x0;\n  }" if (parenthesized_expression "(ppppppuVar20 == (uint ******)0xffffffff)" ( (binary_expression "ppppppuVar20 == (uint ******)0xffffffff" identifier == (cast_expression "(uint ******)0xffffffff" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n    pppppppuVar24 = (uint *******)0xc;\n  }" { (expression_statement "pppppppuVar24 = (uint *******)0xc;" (assignment_expression "pppppppuVar24 = (uint *******)0xc" identifier = (cast_expression "(uint *******)0xc" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n    if (*(byte *)(pppppppuVar28 + 6) == 0xc) {\n      iVar25 = *piVar6 + (int)ppppppuVar20 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;\n      return (uint *******)0x0;\n    }\n    pppppppuVar24 = (uint *******)0x0;\n  }" else (compound_statement "{\n    if (*(byte *)(pppppppuVar28 + 6) == 0xc) {\n      iVar25 = *piVar6 + (int)ppppppuVar20 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;\n      return (uint *******)0x0;\n    }\n    pppppppuVar24 = (uint *******)0x0;\n  }" { (if_statement "if (*(byte *)(pppppppuVar28 + 6) == 0xc) {\n      iVar25 = *piVar6 + (int)ppppppuVar20 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;\n      return (uint *******)0x0;\n    }" if (parenthesized_expression "(*(byte *)(pppppppuVar28 + 6) == 0xc)" ( (binary_expression "*(byte *)(pppppppuVar28 + 6) == 0xc" (pointer_expression "*(byte *)(pppppppuVar28 + 6)" * (cast_expression "(byte *)(pppppppuVar28 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppuVar28 + 6)" ( (binary_expression "pppppppuVar28 + 6" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar25 = *piVar6 + (int)ppppppuVar20 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;\n      return (uint *******)0x0;\n    }" { (expression_statement "iVar25 = *piVar6 + (int)ppppppuVar20 * 8;" (assignment_expression "iVar25 = *piVar6 + (int)ppppppuVar20 * 8" identifier = (binary_expression "*piVar6 + (int)ppppppuVar20 * 8" (pointer_expression "*piVar6" * identifier) + (binary_expression "(int)ppppppuVar20 * 8" (cast_expression "(int)ppppppuVar20" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "*(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;" (assignment_expression "*(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe" (pointer_expression "*(uint *)(iVar25 + 4)" * (cast_expression "(uint *)(iVar25 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 4)" ( (binary_expression "iVar25 + 4" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe" (binary_expression "*(uint *)(iVar25 + 4) & 0xff003fff" (pointer_expression "*(uint *)(iVar25 + 4)" * (cast_expression "(uint *)(iVar25 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 4)" ( (binary_expression "iVar25 + 4" identifier + number_literal) )))) & number_literal) | (binary_expression "((uint)pppppppuVar28[5] & 0x3ff) << 0xe" (parenthesized_expression "((uint)pppppppuVar28[5] & 0x3ff)" ( (binary_expression "(uint)pppppppuVar28[5] & 0x3ff" (cast_expression "(uint)pppppppuVar28[5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppuVar28[5]" identifier [ number_literal ])) & number_literal) )) << number_literal))) ;) (return_statement "return (uint *******)0x0;" return (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (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 "pppppppuVar24 = (uint *******)0x0;" (assignment_expression "pppppppuVar24 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }))) (return_statement "return pppppppuVar24;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (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)))))))) )))))))))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (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 * (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 * (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 * 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 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 IDENT ;) (declaration TYPE (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 * (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 * IDENT)))))) ;) (declaration TYPE (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 (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 * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (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 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 * (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 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 * 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 * (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 * (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 * 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 * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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))))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 *))))))))) ) 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 *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (subscript_expression IDENT [ LIT ])) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ 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 * (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 (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 *)))))))) ) LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (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)) )) (goto_statement goto statement_identifier ;)) (labeled_statement 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 *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) , (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 (subscript_expression IDENT [ LIT ]) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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 (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 *)))))))) ) (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 (subscript_expression IDENT [ LIT ]) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) - (cast_expression ( (type_descriptor TYPE) ) 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 *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) / LIT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (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) )))) ;) }) (else_clause else (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;)) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) 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) )))) , (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 [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) == IDENT) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) , (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (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 (subscript_expression IDENT [ LIT ]) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 = (binary_expression (subscript_expression IDENT [ LIT ]) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 IDENT [ LIT ]) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (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 [ (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) ]))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (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 *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (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 *)))))))) ) (pointer_expression * IDENT)) == IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (while_statement while (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 *)))))))) ) (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) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * 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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (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) ) (pointer_expression * IDENT)) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (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 *)))))))) ) (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 (subscript_expression IDENT [ LIT ]) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (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 *)))))))) ) LIT)) ;)) (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 *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) 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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (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 (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (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 (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - (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 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 *)))))))) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (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))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + (pointer_expression * IDENT)) , IDENT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (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 = (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)) ;) }) (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 *)))))))) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (pointer_expression * IDENT) ])))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (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 *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT))) )))) ;) (expression_statement (assignment_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 * (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 = (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 + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 *)))))))) ) (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) + (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) + (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 *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (while_statement while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_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 *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )))) ;) (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 *)))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (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 *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (do_statement do (compound_statement { (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) (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 = (subscript_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 IDENT - IDENT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) 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 * (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 *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) , (binary_expression (binary_expression IDENT == LIT) && (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 = 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 { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })))) (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 * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_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 *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (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 *)))))))) ) (subscript_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 = (char_literal ' escape_sequence ')) ;) }))) (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 (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)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) * LIT)) )))) >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (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 * (abstract_pointer_declarator *)))))))) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == 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 *)))))))) ) LIT)) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (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 *)))))))) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (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)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (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 ]))) ;) (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 = (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 ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (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 { (while_statement while (parenthesized_expression ( BOOL )) (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 ]) + (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 (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (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 *)))))))) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (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 *)))))))) ) (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 (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( 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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (labeled_statement 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)) )) (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 *)))))))) ) (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 *)))))))) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (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 *)))))))) ) (call_expression IDENT (argument_list ( ))))) ;) (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 ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (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 *))))))))) ) 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 IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 (subscript_expression IDENT [ LIT ]) + (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 * (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = 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 LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (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 = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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) ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (pointer_expression * IDENT) ))) [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ]) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + (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 = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < 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 IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT + LIT) )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (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 *)))))))) ) (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (subscript_expression IDENT [ LIT ]) )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) })) }))))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (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) ) 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 LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (subscript_expression (subscript_expression IDENT [ LIT ]) [ IDENT ]) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT + LIT)) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < (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 *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (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) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement 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 *)))))))) ) (pointer_expression * IDENT))) )) (compound_statement { (return_statement return 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 = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 = (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 )))) ;) (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 (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)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 *))))))) ) 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 = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = 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) ) IDENT)) )) (compound_statement { (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ 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 = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT) ))) >> LIT)) ;) (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 *)))))))) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (binary_expression (parenthesized_expression ( IDENT )) * IDENT) | (binary_expression LIT << (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (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 ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_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 *)))))))) ) (pointer_expression & IDENT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * 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 *))))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) != IDENT) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_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 *)))))))) ) (pointer_expression & IDENT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (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 (parenthesized_expression ( (binary_expression (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)) | (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) & (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) != IDENT) )) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == 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 *)))))))) ) LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (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 *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) >> LIT) ))) )) [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]) >> (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) & LIT) ))) & LIT) )) != LIT) ))) )) (compound_statement { (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 *)))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (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 *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_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 *)))))))) ) (pointer_expression & IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_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 *)))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (unary_expression ~ (parenthesized_expression ( IDENT ))) * 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 *))))))) ) (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) & (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_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 *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) 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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 ]) [ IDENT ]))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) })) })) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (expression_statement (assignment_expression (pointer_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 + IDENT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = 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 * IDENT) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_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 *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_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 (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) * LIT) + IDENT) != IDENT) )) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != 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 IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (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 *)))))))) ) 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))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (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 *))))))) ) (parenthesized_expression ( (binary_expression (unary_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 *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) | (binary_expression (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)) & (cast_expression ( (type_descriptor TYPE) ) IDENT))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) ;) }) (else_clause else (compound_statement { (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 *)))))))) ) 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))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (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 (unary_expression ~ (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) & (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) )))) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) | (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_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 ;)) (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)) ;) }) (else_clause else (compound_statement { (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 *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == 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 (parenthesized_expression ( (binary_expression 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 *)))))))) ) 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 = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 *)))))))) ) (pointer_expression & IDENT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * 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 *))))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) != IDENT) )) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (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 *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (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 *)))))))) ) (pointer_expression & IDENT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (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 *))))))) ) (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) | (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) != IDENT) )) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 *)))))))) ) (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) )))) ;) })) (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 == LIT) )) (compound_statement { (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 *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (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 = LIT) , (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 *)) ) 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 = LIT) ;) (expression_statement (assignment_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 = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) ]) != (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 = (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) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) ])) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (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 { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + IDENT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 = BOOL) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + IDENT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) | (pointer_expression * IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (if_statement if (parenthesized_expression ( IDENT )) (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 *)))))))) ) 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 * (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 (subscript_expression IDENT [ LIT ]) = 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (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 (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) == LIT) )) (compound_statement { (do_statement do (compound_statement { (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)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (pointer_expression * IDENT)) )) == LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + 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 *)))))) ) (pointer_expression * 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 *)))))) ) (pointer_expression * IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != 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 *)))))))) ) 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 * (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 (subscript_expression IDENT [ LIT ]) = 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 { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = (pointer_expression * IDENT)) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) == LIT) )) (compound_statement { (do_statement do (compound_statement { (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)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (pointer_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) & (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (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 *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (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 *))))))) ) (parenthesized_expression ( (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 = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 *)))))))) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_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 *)))))) ) (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ))) ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (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 *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) != IDENT) )) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (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)) ;) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) * LIT) + IDENT)) )) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (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 *)))))))) ) LIT)) ;)) (goto_statement goto statement_identifier ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (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 = (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 ;) })) (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 *)))))))) ) 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 * (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 (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 *)))))))) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (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)) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ 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 *))))))) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return (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 (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 IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 = (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)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) << LIT))) ;) (return_statement return (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 *)))))))) ) LIT)) ;) }))) (return_statement return IDENT ;) })))
(function_definition "uint ******* FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)\n\n{\n  byte *pbVar1;\n  byte bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  char cVar15;\n  int iVar5;\n  int *piVar6;\n  uint *puVar7;\n  byte *pbVar8;\n  undefined4 *puVar9;\n  code *pcVar10;\n  int **ppiVar11;\n  int **ppiVar12;\n  uint ******ppppppuVar13;\n  uint *puVar14;\n  uint *******pppppppuVar16;\n  undefined4 *puVar17;\n  uint *******pppppppuVar18;\n  uint *******pppppppuVar19;\n  uint ******ppppppuVar20;\n  undefined4 *puVar21;\n  uint *******pppppppuVar22;\n  int iVar23;\n  uint *******pppppppuVar24;\n  int iVar25;\n  uint uVar26;\n  undefined4 *puVar27;\n  uint *******pppppppuVar28;\n  uint uVar29;\n  uint ****ppppuVar30;\n  uint *****pppppuVar31;\n  uint ******ppppppuVar32;\n  uint *puVar33;\n  uint uVar34;\n  int iVar35;\n  uint ******ppppppuVar36;\n  int **ppiVar37;\n  uint *****pppppuVar38;\n  int *piVar39;\n  uint *******pppppppuVar40;\n  uint *******unaff_s2;\n  uint *******unaff_s3;\n  int iVar41;\n  uint *******unaff_s7;\n  int iVar42;\n  undefined *puVar43;\n  code *pcVar44;\n  undefined *puVar45;\n  uint *******unaff_s8;\n  code *pcVar46;\n  undefined4 uVar47;\n  int iStack_184;\n  int iStack_178;\n  int iStack_154;\n  byte *pbStack_150;\n  undefined4 uStack_14c;\n  int iStack_148;\n  uint *******pppppppuStack_144;\n  uint uStack_140;\n  uint uStack_13c;\n  uint uStack_138;\n  uint uStack_134;\n  uint uStack_130;\n  uint uStack_12c;\n  uint uStack_128;\n  uint ******ppppppuStack_124;\n  uint uStack_120;\n  uint uStack_11c;\n  uint uStack_118;\n  uint uStack_114;\n  uint uStack_110;\n  uint uStack_10c;\n  uint uStack_108;\n  int *piStack_104;\n  uint uStack_100;\n  uint uStack_fc;\n  uint uStack_f8;\n  uint uStack_f4;\n  uint uStack_f0;\n  uint uStack_ec;\n  uint uStack_e8;\n  int *piStack_e4;\n  int *piStack_e0;\n  uint ******ppppppuStack_dc;\n  uint *******pppppppuStack_d8;\n  uint *******pppppppuStack_d4;\n  int iStack_d0;\n  uint *******pppppppuStack_cc;\n  uint *******pppppppuStack_c8;\n  uint *******pppppppuStack_c4;\n  uint *******pppppppuStack_c0;\n  undefined4 uStack_bc;\n  undefined *puStack_a8;\n  uint *******pppppppuStack_a0;\n  undefined4 *puStack_9c;\n  uint ******ppppppuStack_98;\n  undefined4 uStack_94;\n  uint ******ppppppuStack_90;\n  uint *******pppppppuStack_8c;\n  int *piStack_88;\n  uint *******pppppppuStack_84;\n  uint *******pppppppuStack_80;\n  uint *******pppppppuStack_7c;\n  undefined *puStack_78;\n  uint *******pppppppuStack_74;\n  uint *******pppppppuStack_70;\n  uint *******pppppppuStack_6c;\n  uint *******pppppppuStack_68;\n  code *pcStack_64;\n  uint *******local_40;\n  int local_3c;\n  int local_38;\n  uint ******appppppuStack_34 [2];\n  uint *******local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0003c314;\n  local_2c = *(uint ********)PTR___stack_chk_guard_0003c314;\n  pppppppuVar24 = param_3;\n  pppppppuVar40 = (uint *******)((int)param_2 - param_1[6]);\n  if ((int)param_2 < param_1[6]) {\n    if (1 < param_1[0x14]) {\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    pppppppuVar24 = (uint *******)0x6;\n    if (((uint)param_3 & 1) != 0) {\n      pppppppuVar24 = (uint *******)0x4;\n    }\n    param_1[0xc] = param_1[0xb];\n    param_1[0xe] = param_1[0xd];\n    param_1[7] = 0;\n    param_1[6] = 0;\n    param_1[8] = 0;\n    *(undefined1 *)(param_1 + 0x13) = 0;\n    param_1[0xf] = (int)pppppppuVar24;\n    pppppppuVar40 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n      goto LAB_0001d010;\n    }\n    if (param_2 == (uint *******)0x0) goto LAB_0001d128;\nLAB_0001d018:\n    iVar25 = param_1[8];\n    unaff_s2 = (uint *******)param_1[7];\n    if ((int)pppppppuVar40 < iVar25) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);\n        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);\n        param_1[0xf] = iVar25;\n        if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        cVar15 = *(char *)((int)param_1 + 0x4b);\n        if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        param_1[7] = (int)pppppppuVar24;\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        param_1[8] = param_1[8] - (int)pppppppuVar40;\n      }\n      else {\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }\nLAB_0001d090:\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      if (cVar15 == '\0') {\nLAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);\n        param_1[1] = (int)pppppppuVar40;\n      }\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n      if (pppppppuVar22 == (uint *******)0x0) goto LAB_0001d0b4;\nLAB_0001d148:\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }\n      pppppppuVar28 = (uint *******)param_1[0x14];\n      unaff_s8 = (uint *******)param_1[6];\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      param_1[7] = 0;\n      if (pppppppuVar22 == (uint *******)0x0) {\n        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }\n      uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];\n      param_1[8] = 0;\n      if (param_1[0x10] != 0) {\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }\n      pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);\n      if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {\n        pppppppuVar24 = (uint *******)0x0;\n      }\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n      param_1[0xf] = (int)pppppppuVar24;\n      pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n      iVar25 = param_1[0xe] - (int)pppppppuVar40;\n      if (cVar15 == '\0') goto LAB_0001d098;\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n    }\n    if (cVar15 == '\0') {\n      param_1[7] = (int)pppppppuVar16;\n    }\n    else if (*(char *)(param_1 + 0x12) == '\0') {\n      pppppppuVar22 = (uint *******)param_1[0x10];\n      if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }\n    }\n    else {\n      FUN_000187d0(param_1);\n    }\nLAB_0001d0dc:\n    pppppppuVar16 = (uint *******)0x0;\n    param_1[10] = 0;\n  }\n  else {\nLAB_0001d010:\n    if (pppppppuVar40 != (uint *******)0x0) goto LAB_0001d018;\nLAB_0001d128:\n    pppppppuVar28 = (uint *******)param_1[0x14];\n    pppppppuVar16 = (uint *******)param_1[0xc];\n    pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n    param_1[6] = (int)param_2;\n    param_1[0xc] = (int)pppppppuVar16;\n    param_1[0xe] = param_1[0xe];\n    if (pppppppuVar22 != (uint *******)0x0) goto LAB_0001d148;\nLAB_0001d0b4:\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_000188b4(param_1);\n      goto LAB_0001d0dc;\n    }\n    pppppppuVar16 = (uint *******)FUN_00018b3c();\n    if (pppppppuVar16 == (uint *******)0x0) goto LAB_0001d0dc;\n  }\n  if (local_2c == *(uint ********)puVar4) {\n    return pppppppuVar16;\n  }\n  pcVar46 = FUN_0001d8a0;\n  pppppppuVar16 = local_2c;\n  puVar43 = PTR___stack_chk_fail_0003c2f4;\n  (*(code *)PTR___stack_chk_fail_0003c2f4)();\n  puVar45 = puVar43 + 0x26830;\n  puStack_9c = *(undefined4 **)(puVar43 + 0x1ea74);\n  ppppppuStack_98 = (uint ******)0x0;\n  uStack_94 = 0;\n  ppppppuStack_90 = (uint ******)0x0;\n  ppppppuVar20 = pppppppuVar16[7] + (int)pppppppuVar22 * 3;\n  puStack_78 = puVar4;\n  pppppppuStack_8c = (uint *******)*puStack_9c;\n  pppppuVar31 = ppppppuVar20[1];\n  iVar25 = *(int *)(puVar43 + 0x1e948);\n  pppppppuVar18 = pppppppuVar22;\n  puStack_a8 = puVar45;\n  pppppppuStack_a0 = pppppppuVar28;\n  piStack_88 = param_1;\n  pppppppuStack_84 = pppppppuVar40;\n  pppppppuStack_80 = unaff_s2;\n  pppppppuStack_7c = unaff_s3;\n  pppppppuStack_74 = param_2;\n  pppppppuStack_70 = param_3;\n  pppppppuStack_6c = unaff_s7;\n  pppppppuStack_68 = unaff_s8;\n  pcStack_64 = pcVar46;\n  if (0 < (int)pppppuVar31) {\n    pppppppuVar40 = &ppppppuStack_98;\n    param_1 = (int *)0x0;\n    param_2 = (uint *******)(ppppppuVar20 + 2);\n    iVar25 = iVar25 + -0x5d30;\n    param_3 = (uint *******)(*(int *)(puVar43 + 0x1e948) + -20000);\n    do {\n      pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1];\n      if ((pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)) {\n        iVar35 = (int)pppppppuVar28 * 0xc;\n        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;\n        pppppuVar38 = ppppppuVar36[2];\n        pppppppuVar18 = param_2;\n        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);\n        if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }\n      param_1 = (int *)((int)param_1 + 1);\n    } while ((int)param_1 < (int)pppppuVar31);\n    unaff_s2 = pppppppuVar22;\n    unaff_s3 = pppppppuVar24;\n    unaff_s7 = pppppppuVar40;\n    unaff_s8 = pppppppuVar16;\n    if (0 < (int)pppppuVar31) {\n      iVar5 = 0;\n      pppppppuVar22 = pppppppuVar24 + 1;\n      pppppppuVar16 = pppppppuVar24 + 2;\n      pppppppuVar40 = &ppppppuStack_90;\n      do {\n        pppppppuVar19 = pppppppuVar40;\n        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);\n        pppppppuVar28 = pppppppuVar16;\n        if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }\n        iVar5 = iVar5 + 1;\n        pppppppuVar18 = pppppppuVar40;\n        pppppppuVar16 = pppppppuVar28;\n        pppppppuVar40 = pppppppuVar19;\n        puVar45 = puStack_a8;\n      } while (iVar5 < (int)pppppuVar31);\n    }\n  }\n  (**(code **)(puVar45 + -0x7db0))(ppppppuStack_90);\n  pppppppuVar28 = (uint *******)0x0;\n  pppppppuVar22 = unaff_s2;\n  pppppppuVar24 = unaff_s3;\n  pppppppuVar40 = unaff_s7;\n  pppppppuVar16 = unaff_s8;\nLAB_0001db20:\n  if (pppppppuStack_8c == (uint *******)*puStack_9c) {\n    return pppppppuVar28;\n  }\n  pcVar46 = *(code **)(puStack_a8 + -0x7ddc);\n  uVar47 = 0x1db90;\n  pppppppuVar19 = pppppppuStack_8c;\n  (*pcVar46)();\n  piVar6 = *(int **)(pcVar46 + 0x1e784);\n  piStack_e4 = (int *)*piVar6;\n  pppppppuVar28 = pppppppuVar18;\n  piStack_e0 = param_1;\n  ppppppuStack_dc = ppppppuVar20;\n  pppppppuStack_d8 = pppppppuVar22;\n  pppppppuStack_d4 = pppppppuVar24;\n  iStack_d0 = iVar25;\n  pppppppuStack_cc = param_2;\n  pppppppuStack_c8 = param_3;\n  pppppppuStack_c4 = pppppppuVar40;\n  pppppppuStack_c0 = pppppppuVar16;\n  uStack_bc = uVar47;\n  iVar25 = (**(code **)(pcVar46 + 0x1e724))(0x2c00);\n  if (iVar25 == 0) goto LAB_0001dffc;\n  ppppppuVar20 = pppppppuVar18[2];\n  pppppppuVar18[0xb] = (uint ******)0x0;\n  puVar7 = (uint *)(iVar25 + 0xc00);\n  pppppppuVar18[0xc] = (uint ******)0x0;\n  pppppppuStack_144 = (uint *******)0x0;\n  uStack_140 = 0;\n  uStack_13c = 0;\n  uStack_138 = 0;\n  uStack_134 = 0;\n  uStack_130 = 0;\n  uStack_12c = 0;\n  uStack_128 = 0;\n  if (0 < (int)ppppppuVar20) {\n    iVar5 = *(int *)(pcVar46 + 0x1e658);\n    iStack_184 = 0;\n    iVar35 = *(int *)(pcVar46 + 0x1e658);\n    pppppppuVar24 = (uint *******)0x0;\nLAB_0001dc74:\n    ppppppuVar36 = *pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2;\n    bVar2 = *(byte *)(ppppppuVar36 + 1);\n    uVar34 = (uint)((int)ppppppuVar36[1] << 8) >> 0x16;\n    if (bVar2 == 1) {\n      pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5));\n      pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f));\n      *pppppppuVar40 = (uint ******)pppppppuVar28;\nLAB_0001e060:\n      pppppppuVar40 = pppppppuStack_144;\n      if (uVar34 == 0) goto LAB_0001e15c;\n      if ((uVar34 & 0x20) == 0) {\n        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }\n        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      else {\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      pppppppuStack_144 = (uint *******)0x0;\n      uStack_140 = 0;\n      uStack_13c = 0;\n      uStack_138 = 0;\n      uStack_134 = 0;\n      uStack_130 = 0;\n      uStack_12c = 0;\n      uStack_128 = 0;\n    }\n    else {\n      if (bVar2 == 3) {\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }\n      if (bVar2 == 5) {\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      pppppppuVar28 = (uint *******)0xffffffff;\n      if (bVar2 == 7) {\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }\nLAB_0001dcc8:\n    iStack_184 = iStack_184 + 1;\n    if ((int)ppppppuVar20 <= iStack_184) goto code_r0x0001dcdc;\n    goto LAB_0001dc74;\n  }\n  (**(code **)(pcVar46 + 0x1e790))(iVar25);\n  goto LAB_0001e824;\ncode_r0x0001dcdc:\n  if (0 < (int)pppppppuVar24) {\n    pbVar8 = (byte *)((int)pppppppuVar24 + 1);\n    uStack_14c = 0;\n    pbStack_150 = pbVar8;\n    iVar5 = (**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4);\n    iStack_148 = iVar5;\n    if ((iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)) {\n      iStack_178 = (int)pppppppuVar24 << 1;\n    }\n    else {\n      iStack_178 = (int)pppppppuVar24 * 2;\n      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);\n      if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }\n    }\nLAB_0001e674:\n    (**(code **)(pcVar46 + 0x1e790))(iVar5);\n    iVar5 = iVar25;\n    do {\n      iVar35 = iVar5 + 0xc;\n      (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n      iVar5 = iVar35;\n    } while (iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25);\n    (**(code **)(pcVar46 + 0x1e790))(iVar25);\nLAB_0001dffc:\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }\n  (**(code **)(pcVar46 + 0x1e790))(iVar25);\n  if (pppppppuVar24 != (uint *******)0x0) {\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }\nLAB_0001e824:\n  pppppppuVar28 = (uint *******)0x100;\n  ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n  pppppppuVar18[0xb] = ppppppuVar20;\n  pppppppuVar24 = (uint *******)(uint)(ppppppuVar20 != (uint ******)0x0);\nLAB_0001e000:\n  if (piStack_e4 == (int *)*piVar6) {\n    return pppppppuVar24;\n  }\n  piVar6 = piStack_e4;\n  (**(code **)(pcVar46 + 0x1e764))();\n  if (*(byte *)(pppppppuVar28 + 6) == 0x10) {\n    ppppppuVar20 = (uint ******)pppppppuVar28[1][7];\n    pppppppuVar28[3] = (uint ******)pppppppuVar28[1][3];\n    pppppppuVar28[7] = ppppppuVar20;\n    return (uint *******)0x0;\n  }\n  pppppppuVar28[3] = (uint ******)pppppppuVar28;\n  ppppppuVar20 = (uint ******)FUN_00019660();\n  pppppppuVar28[7] = ppppppuVar20;\n  if (ppppppuVar20 == (uint ******)0xffffffff) {\n    pppppppuVar24 = (uint *******)0xc;\n  }\n  else {\n    if (*(byte *)(pppppppuVar28 + 6) == 0xc) {\n      iVar25 = *piVar6 + (int)ppppppuVar20 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;\n      return (uint *******)0x0;\n    }\n    pppppppuVar24 = (uint *******)0x0;\n  }\n  return pppppppuVar24;\n}" (type_identifier "uint") (pointer_declarator "******* FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)" (* "*") (pointer_declarator "****** FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)" (* "*") (pointer_declarator "***** FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)" (* "*") (pointer_declarator "**** FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)" (* "*") (pointer_declarator "*** FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)" (* "*") (pointer_declarator "** FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)" (* "*") (pointer_declarator "* FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)" (* "*") (function_declarator "FUN_0001cf4c(int *param_1,uint *******param_2,uint *******param_3)" (identifier "FUN_0001cf4c") (parameter_list "(int *param_1,uint *******param_2,uint *******param_3)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint *******param_2" (type_identifier "uint") (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 "uint *******param_3" (type_identifier "uint") (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"))))))))) () ")")))))))))) (compound_statement "{\n  byte *pbVar1;\n  byte bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  char cVar15;\n  int iVar5;\n  int *piVar6;\n  uint *puVar7;\n  byte *pbVar8;\n  undefined4 *puVar9;\n  code *pcVar10;\n  int **ppiVar11;\n  int **ppiVar12;\n  uint ******ppppppuVar13;\n  uint *puVar14;\n  uint *******pppppppuVar16;\n  undefined4 *puVar17;\n  uint *******pppppppuVar18;\n  uint *******pppppppuVar19;\n  uint ******ppppppuVar20;\n  undefined4 *puVar21;\n  uint *******pppppppuVar22;\n  int iVar23;\n  uint *******pppppppuVar24;\n  int iVar25;\n  uint uVar26;\n  undefined4 *puVar27;\n  uint *******pppppppuVar28;\n  uint uVar29;\n  uint ****ppppuVar30;\n  uint *****pppppuVar31;\n  uint ******ppppppuVar32;\n  uint *puVar33;\n  uint uVar34;\n  int iVar35;\n  uint ******ppppppuVar36;\n  int **ppiVar37;\n  uint *****pppppuVar38;\n  int *piVar39;\n  uint *******pppppppuVar40;\n  uint *******unaff_s2;\n  uint *******unaff_s3;\n  int iVar41;\n  uint *******unaff_s7;\n  int iVar42;\n  undefined *puVar43;\n  code *pcVar44;\n  undefined *puVar45;\n  uint *******unaff_s8;\n  code *pcVar46;\n  undefined4 uVar47;\n  int iStack_184;\n  int iStack_178;\n  int iStack_154;\n  byte *pbStack_150;\n  undefined4 uStack_14c;\n  int iStack_148;\n  uint *******pppppppuStack_144;\n  uint uStack_140;\n  uint uStack_13c;\n  uint uStack_138;\n  uint uStack_134;\n  uint uStack_130;\n  uint uStack_12c;\n  uint uStack_128;\n  uint ******ppppppuStack_124;\n  uint uStack_120;\n  uint uStack_11c;\n  uint uStack_118;\n  uint uStack_114;\n  uint uStack_110;\n  uint uStack_10c;\n  uint uStack_108;\n  int *piStack_104;\n  uint uStack_100;\n  uint uStack_fc;\n  uint uStack_f8;\n  uint uStack_f4;\n  uint uStack_f0;\n  uint uStack_ec;\n  uint uStack_e8;\n  int *piStack_e4;\n  int *piStack_e0;\n  uint ******ppppppuStack_dc;\n  uint *******pppppppuStack_d8;\n  uint *******pppppppuStack_d4;\n  int iStack_d0;\n  uint *******pppppppuStack_cc;\n  uint *******pppppppuStack_c8;\n  uint *******pppppppuStack_c4;\n  uint *******pppppppuStack_c0;\n  undefined4 uStack_bc;\n  undefined *puStack_a8;\n  uint *******pppppppuStack_a0;\n  undefined4 *puStack_9c;\n  uint ******ppppppuStack_98;\n  undefined4 uStack_94;\n  uint ******ppppppuStack_90;\n  uint *******pppppppuStack_8c;\n  int *piStack_88;\n  uint *******pppppppuStack_84;\n  uint *******pppppppuStack_80;\n  uint *******pppppppuStack_7c;\n  undefined *puStack_78;\n  uint *******pppppppuStack_74;\n  uint *******pppppppuStack_70;\n  uint *******pppppppuStack_6c;\n  uint *******pppppppuStack_68;\n  code *pcStack_64;\n  uint *******local_40;\n  int local_3c;\n  int local_38;\n  uint ******appppppuStack_34 [2];\n  uint *******local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0003c314;\n  local_2c = *(uint ********)PTR___stack_chk_guard_0003c314;\n  pppppppuVar24 = param_3;\n  pppppppuVar40 = (uint *******)((int)param_2 - param_1[6]);\n  if ((int)param_2 < param_1[6]) {\n    if (1 < param_1[0x14]) {\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    pppppppuVar24 = (uint *******)0x6;\n    if (((uint)param_3 & 1) != 0) {\n      pppppppuVar24 = (uint *******)0x4;\n    }\n    param_1[0xc] = param_1[0xb];\n    param_1[0xe] = param_1[0xd];\n    param_1[7] = 0;\n    param_1[6] = 0;\n    param_1[8] = 0;\n    *(undefined1 *)(param_1 + 0x13) = 0;\n    param_1[0xf] = (int)pppppppuVar24;\n    pppppppuVar40 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n      goto LAB_0001d010;\n    }\n    if (param_2 == (uint *******)0x0) goto LAB_0001d128;\nLAB_0001d018:\n    iVar25 = param_1[8];\n    unaff_s2 = (uint *******)param_1[7];\n    if ((int)pppppppuVar40 < iVar25) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);\n        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);\n        param_1[0xf] = iVar25;\n        if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        cVar15 = *(char *)((int)param_1 + 0x4b);\n        if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        param_1[7] = (int)pppppppuVar24;\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        param_1[8] = param_1[8] - (int)pppppppuVar40;\n      }\n      else {\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }\nLAB_0001d090:\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      if (cVar15 == '\0') {\nLAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);\n        param_1[1] = (int)pppppppuVar40;\n      }\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n      if (pppppppuVar22 == (uint *******)0x0) goto LAB_0001d0b4;\nLAB_0001d148:\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }\n      pppppppuVar28 = (uint *******)param_1[0x14];\n      unaff_s8 = (uint *******)param_1[6];\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      param_1[7] = 0;\n      if (pppppppuVar22 == (uint *******)0x0) {\n        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }\n      uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];\n      param_1[8] = 0;\n      if (param_1[0x10] != 0) {\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }\n      pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);\n      if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {\n        pppppppuVar24 = (uint *******)0x0;\n      }\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n      param_1[0xf] = (int)pppppppuVar24;\n      pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n      iVar25 = param_1[0xe] - (int)pppppppuVar40;\n      if (cVar15 == '\0') goto LAB_0001d098;\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n    }\n    if (cVar15 == '\0') {\n      param_1[7] = (int)pppppppuVar16;\n    }\n    else if (*(char *)(param_1 + 0x12) == '\0') {\n      pppppppuVar22 = (uint *******)param_1[0x10];\n      if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }\n    }\n    else {\n      FUN_000187d0(param_1);\n    }\nLAB_0001d0dc:\n    pppppppuVar16 = (uint *******)0x0;\n    param_1[10] = 0;\n  }\n  else {\nLAB_0001d010:\n    if (pppppppuVar40 != (uint *******)0x0) goto LAB_0001d018;\nLAB_0001d128:\n    pppppppuVar28 = (uint *******)param_1[0x14];\n    pppppppuVar16 = (uint *******)param_1[0xc];\n    pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n    param_1[6] = (int)param_2;\n    param_1[0xc] = (int)pppppppuVar16;\n    param_1[0xe] = param_1[0xe];\n    if (pppppppuVar22 != (uint *******)0x0) goto LAB_0001d148;\nLAB_0001d0b4:\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_000188b4(param_1);\n      goto LAB_0001d0dc;\n    }\n    pppppppuVar16 = (uint *******)FUN_00018b3c();\n    if (pppppppuVar16 == (uint *******)0x0) goto LAB_0001d0dc;\n  }\n  if (local_2c == *(uint ********)puVar4) {\n    return pppppppuVar16;\n  }\n  pcVar46 = FUN_0001d8a0;\n  pppppppuVar16 = local_2c;\n  puVar43 = PTR___stack_chk_fail_0003c2f4;\n  (*(code *)PTR___stack_chk_fail_0003c2f4)();\n  puVar45 = puVar43 + 0x26830;\n  puStack_9c = *(undefined4 **)(puVar43 + 0x1ea74);\n  ppppppuStack_98 = (uint ******)0x0;\n  uStack_94 = 0;\n  ppppppuStack_90 = (uint ******)0x0;\n  ppppppuVar20 = pppppppuVar16[7] + (int)pppppppuVar22 * 3;\n  puStack_78 = puVar4;\n  pppppppuStack_8c = (uint *******)*puStack_9c;\n  pppppuVar31 = ppppppuVar20[1];\n  iVar25 = *(int *)(puVar43 + 0x1e948);\n  pppppppuVar18 = pppppppuVar22;\n  puStack_a8 = puVar45;\n  pppppppuStack_a0 = pppppppuVar28;\n  piStack_88 = param_1;\n  pppppppuStack_84 = pppppppuVar40;\n  pppppppuStack_80 = unaff_s2;\n  pppppppuStack_7c = unaff_s3;\n  pppppppuStack_74 = param_2;\n  pppppppuStack_70 = param_3;\n  pppppppuStack_6c = unaff_s7;\n  pppppppuStack_68 = unaff_s8;\n  pcStack_64 = pcVar46;\n  if (0 < (int)pppppuVar31) {\n    pppppppuVar40 = &ppppppuStack_98;\n    param_1 = (int *)0x0;\n    param_2 = (uint *******)(ppppppuVar20 + 2);\n    iVar25 = iVar25 + -0x5d30;\n    param_3 = (uint *******)(*(int *)(puVar43 + 0x1e948) + -20000);\n    do {\n      pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1];\n      if ((pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)) {\n        iVar35 = (int)pppppppuVar28 * 0xc;\n        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;\n        pppppuVar38 = ppppppuVar36[2];\n        pppppppuVar18 = param_2;\n        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);\n        if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }\n      param_1 = (int *)((int)param_1 + 1);\n    } while ((int)param_1 < (int)pppppuVar31);\n    unaff_s2 = pppppppuVar22;\n    unaff_s3 = pppppppuVar24;\n    unaff_s7 = pppppppuVar40;\n    unaff_s8 = pppppppuVar16;\n    if (0 < (int)pppppuVar31) {\n      iVar5 = 0;\n      pppppppuVar22 = pppppppuVar24 + 1;\n      pppppppuVar16 = pppppppuVar24 + 2;\n      pppppppuVar40 = &ppppppuStack_90;\n      do {\n        pppppppuVar19 = pppppppuVar40;\n        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);\n        pppppppuVar28 = pppppppuVar16;\n        if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }\n        iVar5 = iVar5 + 1;\n        pppppppuVar18 = pppppppuVar40;\n        pppppppuVar16 = pppppppuVar28;\n        pppppppuVar40 = pppppppuVar19;\n        puVar45 = puStack_a8;\n      } while (iVar5 < (int)pppppuVar31);\n    }\n  }\n  (**(code **)(puVar45 + -0x7db0))(ppppppuStack_90);\n  pppppppuVar28 = (uint *******)0x0;\n  pppppppuVar22 = unaff_s2;\n  pppppppuVar24 = unaff_s3;\n  pppppppuVar40 = unaff_s7;\n  pppppppuVar16 = unaff_s8;\nLAB_0001db20:\n  if (pppppppuStack_8c == (uint *******)*puStack_9c) {\n    return pppppppuVar28;\n  }\n  pcVar46 = *(code **)(puStack_a8 + -0x7ddc);\n  uVar47 = 0x1db90;\n  pppppppuVar19 = pppppppuStack_8c;\n  (*pcVar46)();\n  piVar6 = *(int **)(pcVar46 + 0x1e784);\n  piStack_e4 = (int *)*piVar6;\n  pppppppuVar28 = pppppppuVar18;\n  piStack_e0 = param_1;\n  ppppppuStack_dc = ppppppuVar20;\n  pppppppuStack_d8 = pppppppuVar22;\n  pppppppuStack_d4 = pppppppuVar24;\n  iStack_d0 = iVar25;\n  pppppppuStack_cc = param_2;\n  pppppppuStack_c8 = param_3;\n  pppppppuStack_c4 = pppppppuVar40;\n  pppppppuStack_c0 = pppppppuVar16;\n  uStack_bc = uVar47;\n  iVar25 = (**(code **)(pcVar46 + 0x1e724))(0x2c00);\n  if (iVar25 == 0) goto LAB_0001dffc;\n  ppppppuVar20 = pppppppuVar18[2];\n  pppppppuVar18[0xb] = (uint ******)0x0;\n  puVar7 = (uint *)(iVar25 + 0xc00);\n  pppppppuVar18[0xc] = (uint ******)0x0;\n  pppppppuStack_144 = (uint *******)0x0;\n  uStack_140 = 0;\n  uStack_13c = 0;\n  uStack_138 = 0;\n  uStack_134 = 0;\n  uStack_130 = 0;\n  uStack_12c = 0;\n  uStack_128 = 0;\n  if (0 < (int)ppppppuVar20) {\n    iVar5 = *(int *)(pcVar46 + 0x1e658);\n    iStack_184 = 0;\n    iVar35 = *(int *)(pcVar46 + 0x1e658);\n    pppppppuVar24 = (uint *******)0x0;\nLAB_0001dc74:\n    ppppppuVar36 = *pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2;\n    bVar2 = *(byte *)(ppppppuVar36 + 1);\n    uVar34 = (uint)((int)ppppppuVar36[1] << 8) >> 0x16;\n    if (bVar2 == 1) {\n      pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5));\n      pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f));\n      *pppppppuVar40 = (uint ******)pppppppuVar28;\nLAB_0001e060:\n      pppppppuVar40 = pppppppuStack_144;\n      if (uVar34 == 0) goto LAB_0001e15c;\n      if ((uVar34 & 0x20) == 0) {\n        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }\n        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      else {\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      pppppppuStack_144 = (uint *******)0x0;\n      uStack_140 = 0;\n      uStack_13c = 0;\n      uStack_138 = 0;\n      uStack_134 = 0;\n      uStack_130 = 0;\n      uStack_12c = 0;\n      uStack_128 = 0;\n    }\n    else {\n      if (bVar2 == 3) {\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }\n      if (bVar2 == 5) {\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      pppppppuVar28 = (uint *******)0xffffffff;\n      if (bVar2 == 7) {\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }\nLAB_0001dcc8:\n    iStack_184 = iStack_184 + 1;\n    if ((int)ppppppuVar20 <= iStack_184) goto code_r0x0001dcdc;\n    goto LAB_0001dc74;\n  }\n  (**(code **)(pcVar46 + 0x1e790))(iVar25);\n  goto LAB_0001e824;\ncode_r0x0001dcdc:\n  if (0 < (int)pppppppuVar24) {\n    pbVar8 = (byte *)((int)pppppppuVar24 + 1);\n    uStack_14c = 0;\n    pbStack_150 = pbVar8;\n    iVar5 = (**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4);\n    iStack_148 = iVar5;\n    if ((iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)) {\n      iStack_178 = (int)pppppppuVar24 << 1;\n    }\n    else {\n      iStack_178 = (int)pppppppuVar24 * 2;\n      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);\n      if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }\n    }\nLAB_0001e674:\n    (**(code **)(pcVar46 + 0x1e790))(iVar5);\n    iVar5 = iVar25;\n    do {\n      iVar35 = iVar5 + 0xc;\n      (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n      iVar5 = iVar35;\n    } while (iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25);\n    (**(code **)(pcVar46 + 0x1e790))(iVar25);\nLAB_0001dffc:\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }\n  (**(code **)(pcVar46 + 0x1e790))(iVar25);\n  if (pppppppuVar24 != (uint *******)0x0) {\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }\nLAB_0001e824:\n  pppppppuVar28 = (uint *******)0x100;\n  ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n  pppppppuVar18[0xb] = ppppppuVar20;\n  pppppppuVar24 = (uint *******)(uint)(ppppppuVar20 != (uint ******)0x0);\nLAB_0001e000:\n  if (piStack_e4 == (int *)*piVar6) {\n    return pppppppuVar24;\n  }\n  piVar6 = piStack_e4;\n  (**(code **)(pcVar46 + 0x1e764))();\n  if (*(byte *)(pppppppuVar28 + 6) == 0x10) {\n    ppppppuVar20 = (uint ******)pppppppuVar28[1][7];\n    pppppppuVar28[3] = (uint ******)pppppppuVar28[1][3];\n    pppppppuVar28[7] = ppppppuVar20;\n    return (uint *******)0x0;\n  }\n  pppppppuVar28[3] = (uint ******)pppppppuVar28;\n  ppppppuVar20 = (uint ******)FUN_00019660();\n  pppppppuVar28[7] = ppppppuVar20;\n  if (ppppppuVar20 == (uint ******)0xffffffff) {\n    pppppppuVar24 = (uint *******)0xc;\n  }\n  else {\n    if (*(byte *)(pppppppuVar28 + 6) == 0xc) {\n      iVar25 = *piVar6 + (int)ppppppuVar20 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;\n      return (uint *******)0x0;\n    }\n    pppppppuVar24 = (uint *******)0x0;\n  }\n  return pppppppuVar24;\n}" ({ "{") (declaration "byte *pbVar1;" (type_identifier "byte") (pointer_declarator "*pbVar1" (* "*") (identifier "pbVar1")) (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "bool bVar3;" (primitive_type "bool") (identifier "bVar3") (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "char cVar15;" (primitive_type "char") (identifier "cVar15") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "uint *puVar7;" (type_identifier "uint") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "byte *pbVar8;" (type_identifier "byte") (pointer_declarator "*pbVar8" (* "*") (identifier "pbVar8")) (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "code *pcVar10;" (type_identifier "code") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "int **ppiVar11;" (primitive_type "int") (pointer_declarator "**ppiVar11" (* "*") (pointer_declarator "*ppiVar11" (* "*") (identifier "ppiVar11"))) (; ";")) (declaration "int **ppiVar12;" (primitive_type "int") (pointer_declarator "**ppiVar12" (* "*") (pointer_declarator "*ppiVar12" (* "*") (identifier "ppiVar12"))) (; ";")) (declaration "uint ******ppppppuVar13;" (type_identifier "uint") (pointer_declarator "******ppppppuVar13" (* "*") (pointer_declarator "*****ppppppuVar13" (* "*") (pointer_declarator "****ppppppuVar13" (* "*") (pointer_declarator "***ppppppuVar13" (* "*") (pointer_declarator "**ppppppuVar13" (* "*") (pointer_declarator "*ppppppuVar13" (* "*") (identifier "ppppppuVar13"))))))) (; ";")) (declaration "uint *puVar14;" (type_identifier "uint") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "uint *******pppppppuVar16;" (type_identifier "uint") (pointer_declarator "*******pppppppuVar16" (* "*") (pointer_declarator "******pppppppuVar16" (* "*") (pointer_declarator "*****pppppppuVar16" (* "*") (pointer_declarator "****pppppppuVar16" (* "*") (pointer_declarator "***pppppppuVar16" (* "*") (pointer_declarator "**pppppppuVar16" (* "*") (pointer_declarator "*pppppppuVar16" (* "*") (identifier "pppppppuVar16")))))))) (; ";")) (declaration "undefined4 *puVar17;" (type_identifier "undefined4") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "uint *******pppppppuVar18;" (type_identifier "uint") (pointer_declarator "*******pppppppuVar18" (* "*") (pointer_declarator "******pppppppuVar18" (* "*") (pointer_declarator "*****pppppppuVar18" (* "*") (pointer_declarator "****pppppppuVar18" (* "*") (pointer_declarator "***pppppppuVar18" (* "*") (pointer_declarator "**pppppppuVar18" (* "*") (pointer_declarator "*pppppppuVar18" (* "*") (identifier "pppppppuVar18")))))))) (; ";")) (declaration "uint *******pppppppuVar19;" (type_identifier "uint") (pointer_declarator "*******pppppppuVar19" (* "*") (pointer_declarator "******pppppppuVar19" (* "*") (pointer_declarator "*****pppppppuVar19" (* "*") (pointer_declarator "****pppppppuVar19" (* "*") (pointer_declarator "***pppppppuVar19" (* "*") (pointer_declarator "**pppppppuVar19" (* "*") (pointer_declarator "*pppppppuVar19" (* "*") (identifier "pppppppuVar19")))))))) (; ";")) (declaration "uint ******ppppppuVar20;" (type_identifier "uint") (pointer_declarator "******ppppppuVar20" (* "*") (pointer_declarator "*****ppppppuVar20" (* "*") (pointer_declarator "****ppppppuVar20" (* "*") (pointer_declarator "***ppppppuVar20" (* "*") (pointer_declarator "**ppppppuVar20" (* "*") (pointer_declarator "*ppppppuVar20" (* "*") (identifier "ppppppuVar20"))))))) (; ";")) (declaration "undefined4 *puVar21;" (type_identifier "undefined4") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "uint *******pppppppuVar22;" (type_identifier "uint") (pointer_declarator "*******pppppppuVar22" (* "*") (pointer_declarator "******pppppppuVar22" (* "*") (pointer_declarator "*****pppppppuVar22" (* "*") (pointer_declarator "****pppppppuVar22" (* "*") (pointer_declarator "***pppppppuVar22" (* "*") (pointer_declarator "**pppppppuVar22" (* "*") (pointer_declarator "*pppppppuVar22" (* "*") (identifier "pppppppuVar22")))))))) (; ";")) (declaration "int iVar23;" (primitive_type "int") (identifier "iVar23") (; ";")) (declaration "uint *******pppppppuVar24;" (type_identifier "uint") (pointer_declarator "*******pppppppuVar24" (* "*") (pointer_declarator "******pppppppuVar24" (* "*") (pointer_declarator "*****pppppppuVar24" (* "*") (pointer_declarator "****pppppppuVar24" (* "*") (pointer_declarator "***pppppppuVar24" (* "*") (pointer_declarator "**pppppppuVar24" (* "*") (pointer_declarator "*pppppppuVar24" (* "*") (identifier "pppppppuVar24")))))))) (; ";")) (declaration "int iVar25;" (primitive_type "int") (identifier "iVar25") (; ";")) (declaration "uint uVar26;" (type_identifier "uint") (identifier "uVar26") (; ";")) (declaration "undefined4 *puVar27;" (type_identifier "undefined4") (pointer_declarator "*puVar27" (* "*") (identifier "puVar27")) (; ";")) (declaration "uint *******pppppppuVar28;" (type_identifier "uint") (pointer_declarator "*******pppppppuVar28" (* "*") (pointer_declarator "******pppppppuVar28" (* "*") (pointer_declarator "*****pppppppuVar28" (* "*") (pointer_declarator "****pppppppuVar28" (* "*") (pointer_declarator "***pppppppuVar28" (* "*") (pointer_declarator "**pppppppuVar28" (* "*") (pointer_declarator "*pppppppuVar28" (* "*") (identifier "pppppppuVar28")))))))) (; ";")) (declaration "uint uVar29;" (type_identifier "uint") (identifier "uVar29") (; ";")) (declaration "uint ****ppppuVar30;" (type_identifier "uint") (pointer_declarator "****ppppuVar30" (* "*") (pointer_declarator "***ppppuVar30" (* "*") (pointer_declarator "**ppppuVar30" (* "*") (pointer_declarator "*ppppuVar30" (* "*") (identifier "ppppuVar30"))))) (; ";")) (declaration "uint *****pppppuVar31;" (type_identifier "uint") (pointer_declarator "*****pppppuVar31" (* "*") (pointer_declarator "****pppppuVar31" (* "*") (pointer_declarator "***pppppuVar31" (* "*") (pointer_declarator "**pppppuVar31" (* "*") (pointer_declarator "*pppppuVar31" (* "*") (identifier "pppppuVar31")))))) (; ";")) (declaration "uint ******ppppppuVar32;" (type_identifier "uint") (pointer_declarator "******ppppppuVar32" (* "*") (pointer_declarator "*****ppppppuVar32" (* "*") (pointer_declarator "****ppppppuVar32" (* "*") (pointer_declarator "***ppppppuVar32" (* "*") (pointer_declarator "**ppppppuVar32" (* "*") (pointer_declarator "*ppppppuVar32" (* "*") (identifier "ppppppuVar32"))))))) (; ";")) (declaration "uint *puVar33;" (type_identifier "uint") (pointer_declarator "*puVar33" (* "*") (identifier "puVar33")) (; ";")) (declaration "uint uVar34;" (type_identifier "uint") (identifier "uVar34") (; ";")) (declaration "int iVar35;" (primitive_type "int") (identifier "iVar35") (; ";")) (declaration "uint ******ppppppuVar36;" (type_identifier "uint") (pointer_declarator "******ppppppuVar36" (* "*") (pointer_declarator "*****ppppppuVar36" (* "*") (pointer_declarator "****ppppppuVar36" (* "*") (pointer_declarator "***ppppppuVar36" (* "*") (pointer_declarator "**ppppppuVar36" (* "*") (pointer_declarator "*ppppppuVar36" (* "*") (identifier "ppppppuVar36"))))))) (; ";")) (declaration "int **ppiVar37;" (primitive_type "int") (pointer_declarator "**ppiVar37" (* "*") (pointer_declarator "*ppiVar37" (* "*") (identifier "ppiVar37"))) (; ";")) (declaration "uint *****pppppuVar38;" (type_identifier "uint") (pointer_declarator "*****pppppuVar38" (* "*") (pointer_declarator "****pppppuVar38" (* "*") (pointer_declarator "***pppppuVar38" (* "*") (pointer_declarator "**pppppuVar38" (* "*") (pointer_declarator "*pppppuVar38" (* "*") (identifier "pppppuVar38")))))) (; ";")) (declaration "int *piVar39;" (primitive_type "int") (pointer_declarator "*piVar39" (* "*") (identifier "piVar39")) (; ";")) (declaration "uint *******pppppppuVar40;" (type_identifier "uint") (pointer_declarator "*******pppppppuVar40" (* "*") (pointer_declarator "******pppppppuVar40" (* "*") (pointer_declarator "*****pppppppuVar40" (* "*") (pointer_declarator "****pppppppuVar40" (* "*") (pointer_declarator "***pppppppuVar40" (* "*") (pointer_declarator "**pppppppuVar40" (* "*") (pointer_declarator "*pppppppuVar40" (* "*") (identifier "pppppppuVar40")))))))) (; ";")) (declaration "uint *******unaff_s2;" (type_identifier "uint") (pointer_declarator "*******unaff_s2" (* "*") (pointer_declarator "******unaff_s2" (* "*") (pointer_declarator "*****unaff_s2" (* "*") (pointer_declarator "****unaff_s2" (* "*") (pointer_declarator "***unaff_s2" (* "*") (pointer_declarator "**unaff_s2" (* "*") (pointer_declarator "*unaff_s2" (* "*") (identifier "unaff_s2")))))))) (; ";")) (declaration "uint *******unaff_s3;" (type_identifier "uint") (pointer_declarator "*******unaff_s3" (* "*") (pointer_declarator "******unaff_s3" (* "*") (pointer_declarator "*****unaff_s3" (* "*") (pointer_declarator "****unaff_s3" (* "*") (pointer_declarator "***unaff_s3" (* "*") (pointer_declarator "**unaff_s3" (* "*") (pointer_declarator "*unaff_s3" (* "*") (identifier "unaff_s3")))))))) (; ";")) (declaration "int iVar41;" (primitive_type "int") (identifier "iVar41") (; ";")) (declaration "uint *******unaff_s7;" (type_identifier "uint") (pointer_declarator "*******unaff_s7" (* "*") (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 "int iVar42;" (primitive_type "int") (identifier "iVar42") (; ";")) (declaration "undefined *puVar43;" (type_identifier "undefined") (pointer_declarator "*puVar43" (* "*") (identifier "puVar43")) (; ";")) (declaration "code *pcVar44;" (type_identifier "code") (pointer_declarator "*pcVar44" (* "*") (identifier "pcVar44")) (; ";")) (declaration "undefined *puVar45;" (type_identifier "undefined") (pointer_declarator "*puVar45" (* "*") (identifier "puVar45")) (; ";")) (declaration "uint *******unaff_s8;" (type_identifier "uint") (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 "code *pcVar46;" (type_identifier "code") (pointer_declarator "*pcVar46" (* "*") (identifier "pcVar46")) (; ";")) (declaration "undefined4 uVar47;" (type_identifier "undefined4") (identifier "uVar47") (; ";")) (declaration "int iStack_184;" (primitive_type "int") (identifier "iStack_184") (; ";")) (declaration "int iStack_178;" (primitive_type "int") (identifier "iStack_178") (; ";")) (declaration "int iStack_154;" (primitive_type "int") (identifier "iStack_154") (; ";")) (declaration "byte *pbStack_150;" (type_identifier "byte") (pointer_declarator "*pbStack_150" (* "*") (identifier "pbStack_150")) (; ";")) (declaration "undefined4 uStack_14c;" (type_identifier "undefined4") (identifier "uStack_14c") (; ";")) (declaration "int iStack_148;" (primitive_type "int") (identifier "iStack_148") (; ";")) (declaration "uint *******pppppppuStack_144;" (type_identifier "uint") (pointer_declarator "*******pppppppuStack_144" (* "*") (pointer_declarator "******pppppppuStack_144" (* "*") (pointer_declarator "*****pppppppuStack_144" (* "*") (pointer_declarator "****pppppppuStack_144" (* "*") (pointer_declarator "***pppppppuStack_144" (* "*") (pointer_declarator "**pppppppuStack_144" (* "*") (pointer_declarator "*pppppppuStack_144" (* "*") (identifier "pppppppuStack_144")))))))) (; ";")) (declaration "uint uStack_140;" (type_identifier "uint") (identifier "uStack_140") (; ";")) (declaration "uint uStack_13c;" (type_identifier "uint") (identifier "uStack_13c") (; ";")) (declaration "uint uStack_138;" (type_identifier "uint") (identifier "uStack_138") (; ";")) (declaration "uint uStack_134;" (type_identifier "uint") (identifier "uStack_134") (; ";")) (declaration "uint uStack_130;" (type_identifier "uint") (identifier "uStack_130") (; ";")) (declaration "uint uStack_12c;" (type_identifier "uint") (identifier "uStack_12c") (; ";")) (declaration "uint uStack_128;" (type_identifier "uint") (identifier "uStack_128") (; ";")) (declaration "uint ******ppppppuStack_124;" (type_identifier "uint") (pointer_declarator "******ppppppuStack_124" (* "*") (pointer_declarator "*****ppppppuStack_124" (* "*") (pointer_declarator "****ppppppuStack_124" (* "*") (pointer_declarator "***ppppppuStack_124" (* "*") (pointer_declarator "**ppppppuStack_124" (* "*") (pointer_declarator "*ppppppuStack_124" (* "*") (identifier "ppppppuStack_124"))))))) (; ";")) (declaration "uint uStack_120;" (type_identifier "uint") (identifier "uStack_120") (; ";")) (declaration "uint uStack_11c;" (type_identifier "uint") (identifier "uStack_11c") (; ";")) (declaration "uint uStack_118;" (type_identifier "uint") (identifier "uStack_118") (; ";")) (declaration "uint uStack_114;" (type_identifier "uint") (identifier "uStack_114") (; ";")) (declaration "uint uStack_110;" (type_identifier "uint") (identifier "uStack_110") (; ";")) (declaration "uint uStack_10c;" (type_identifier "uint") (identifier "uStack_10c") (; ";")) (declaration "uint uStack_108;" (type_identifier "uint") (identifier "uStack_108") (; ";")) (declaration "int *piStack_104;" (primitive_type "int") (pointer_declarator "*piStack_104" (* "*") (identifier "piStack_104")) (; ";")) (declaration "uint uStack_100;" (type_identifier "uint") (identifier "uStack_100") (; ";")) (declaration "uint uStack_fc;" (type_identifier "uint") (identifier "uStack_fc") (; ";")) (declaration "uint uStack_f8;" (type_identifier "uint") (identifier "uStack_f8") (; ";")) (declaration "uint uStack_f4;" (type_identifier "uint") (identifier "uStack_f4") (; ";")) (declaration "uint uStack_f0;" (type_identifier "uint") (identifier "uStack_f0") (; ";")) (declaration "uint uStack_ec;" (type_identifier "uint") (identifier "uStack_ec") (; ";")) (declaration "uint uStack_e8;" (type_identifier "uint") (identifier "uStack_e8") (; ";")) (declaration "int *piStack_e4;" (primitive_type "int") (pointer_declarator "*piStack_e4" (* "*") (identifier "piStack_e4")) (; ";")) (declaration "int *piStack_e0;" (primitive_type "int") (pointer_declarator "*piStack_e0" (* "*") (identifier "piStack_e0")) (; ";")) (declaration "uint ******ppppppuStack_dc;" (type_identifier "uint") (pointer_declarator "******ppppppuStack_dc" (* "*") (pointer_declarator "*****ppppppuStack_dc" (* "*") (pointer_declarator "****ppppppuStack_dc" (* "*") (pointer_declarator "***ppppppuStack_dc" (* "*") (pointer_declarator "**ppppppuStack_dc" (* "*") (pointer_declarator "*ppppppuStack_dc" (* "*") (identifier "ppppppuStack_dc"))))))) (; ";")) (declaration "uint *******pppppppuStack_d8;" (type_identifier "uint") (pointer_declarator "*******pppppppuStack_d8" (* "*") (pointer_declarator "******pppppppuStack_d8" (* "*") (pointer_declarator "*****pppppppuStack_d8" (* "*") (pointer_declarator "****pppppppuStack_d8" (* "*") (pointer_declarator "***pppppppuStack_d8" (* "*") (pointer_declarator "**pppppppuStack_d8" (* "*") (pointer_declarator "*pppppppuStack_d8" (* "*") (identifier "pppppppuStack_d8")))))))) (; ";")) (declaration "uint *******pppppppuStack_d4;" (type_identifier "uint") (pointer_declarator "*******pppppppuStack_d4" (* "*") (pointer_declarator "******pppppppuStack_d4" (* "*") (pointer_declarator "*****pppppppuStack_d4" (* "*") (pointer_declarator "****pppppppuStack_d4" (* "*") (pointer_declarator "***pppppppuStack_d4" (* "*") (pointer_declarator "**pppppppuStack_d4" (* "*") (pointer_declarator "*pppppppuStack_d4" (* "*") (identifier "pppppppuStack_d4")))))))) (; ";")) (declaration "int iStack_d0;" (primitive_type "int") (identifier "iStack_d0") (; ";")) (declaration "uint *******pppppppuStack_cc;" (type_identifier "uint") (pointer_declarator "*******pppppppuStack_cc" (* "*") (pointer_declarator "******pppppppuStack_cc" (* "*") (pointer_declarator "*****pppppppuStack_cc" (* "*") (pointer_declarator "****pppppppuStack_cc" (* "*") (pointer_declarator "***pppppppuStack_cc" (* "*") (pointer_declarator "**pppppppuStack_cc" (* "*") (pointer_declarator "*pppppppuStack_cc" (* "*") (identifier "pppppppuStack_cc")))))))) (; ";")) (declaration "uint *******pppppppuStack_c8;" (type_identifier "uint") (pointer_declarator "*******pppppppuStack_c8" (* "*") (pointer_declarator "******pppppppuStack_c8" (* "*") (pointer_declarator "*****pppppppuStack_c8" (* "*") (pointer_declarator "****pppppppuStack_c8" (* "*") (pointer_declarator "***pppppppuStack_c8" (* "*") (pointer_declarator "**pppppppuStack_c8" (* "*") (pointer_declarator "*pppppppuStack_c8" (* "*") (identifier "pppppppuStack_c8")))))))) (; ";")) (declaration "uint *******pppppppuStack_c4;" (type_identifier "uint") (pointer_declarator "*******pppppppuStack_c4" (* "*") (pointer_declarator "******pppppppuStack_c4" (* "*") (pointer_declarator "*****pppppppuStack_c4" (* "*") (pointer_declarator "****pppppppuStack_c4" (* "*") (pointer_declarator "***pppppppuStack_c4" (* "*") (pointer_declarator "**pppppppuStack_c4" (* "*") (pointer_declarator "*pppppppuStack_c4" (* "*") (identifier "pppppppuStack_c4")))))))) (; ";")) (declaration "uint *******pppppppuStack_c0;" (type_identifier "uint") (pointer_declarator "*******pppppppuStack_c0" (* "*") (pointer_declarator "******pppppppuStack_c0" (* "*") (pointer_declarator "*****pppppppuStack_c0" (* "*") (pointer_declarator "****pppppppuStack_c0" (* "*") (pointer_declarator "***pppppppuStack_c0" (* "*") (pointer_declarator "**pppppppuStack_c0" (* "*") (pointer_declarator "*pppppppuStack_c0" (* "*") (identifier "pppppppuStack_c0")))))))) (; ";")) (declaration "undefined4 uStack_bc;" (type_identifier "undefined4") (identifier "uStack_bc") (; ";")) (declaration "undefined *puStack_a8;" (type_identifier "undefined") (pointer_declarator "*puStack_a8" (* "*") (identifier "puStack_a8")) (; ";")) (declaration "uint *******pppppppuStack_a0;" (type_identifier "uint") (pointer_declarator "*******pppppppuStack_a0" (* "*") (pointer_declarator "******pppppppuStack_a0" (* "*") (pointer_declarator "*****pppppppuStack_a0" (* "*") (pointer_declarator "****pppppppuStack_a0" (* "*") (pointer_declarator "***pppppppuStack_a0" (* "*") (pointer_declarator "**pppppppuStack_a0" (* "*") (pointer_declarator "*pppppppuStack_a0" (* "*") (identifier "pppppppuStack_a0")))))))) (; ";")) (declaration "undefined4 *puStack_9c;" (type_identifier "undefined4") (pointer_declarator "*puStack_9c" (* "*") (identifier "puStack_9c")) (; ";")) (declaration "uint ******ppppppuStack_98;" (type_identifier "uint") (pointer_declarator "******ppppppuStack_98" (* "*") (pointer_declarator "*****ppppppuStack_98" (* "*") (pointer_declarator "****ppppppuStack_98" (* "*") (pointer_declarator "***ppppppuStack_98" (* "*") (pointer_declarator "**ppppppuStack_98" (* "*") (pointer_declarator "*ppppppuStack_98" (* "*") (identifier "ppppppuStack_98"))))))) (; ";")) (declaration "undefined4 uStack_94;" (type_identifier "undefined4") (identifier "uStack_94") (; ";")) (declaration "uint ******ppppppuStack_90;" (type_identifier "uint") (pointer_declarator "******ppppppuStack_90" (* "*") (pointer_declarator "*****ppppppuStack_90" (* "*") (pointer_declarator "****ppppppuStack_90" (* "*") (pointer_declarator "***ppppppuStack_90" (* "*") (pointer_declarator "**ppppppuStack_90" (* "*") (pointer_declarator "*ppppppuStack_90" (* "*") (identifier "ppppppuStack_90"))))))) (; ";")) (declaration "uint *******pppppppuStack_8c;" (type_identifier "uint") (pointer_declarator "*******pppppppuStack_8c" (* "*") (pointer_declarator "******pppppppuStack_8c" (* "*") (pointer_declarator "*****pppppppuStack_8c" (* "*") (pointer_declarator "****pppppppuStack_8c" (* "*") (pointer_declarator "***pppppppuStack_8c" (* "*") (pointer_declarator "**pppppppuStack_8c" (* "*") (pointer_declarator "*pppppppuStack_8c" (* "*") (identifier "pppppppuStack_8c")))))))) (; ";")) (declaration "int *piStack_88;" (primitive_type "int") (pointer_declarator "*piStack_88" (* "*") (identifier "piStack_88")) (; ";")) (declaration "uint *******pppppppuStack_84;" (type_identifier "uint") (pointer_declarator "*******pppppppuStack_84" (* "*") (pointer_declarator "******pppppppuStack_84" (* "*") (pointer_declarator "*****pppppppuStack_84" (* "*") (pointer_declarator "****pppppppuStack_84" (* "*") (pointer_declarator "***pppppppuStack_84" (* "*") (pointer_declarator "**pppppppuStack_84" (* "*") (pointer_declarator "*pppppppuStack_84" (* "*") (identifier "pppppppuStack_84")))))))) (; ";")) (declaration "uint *******pppppppuStack_80;" (type_identifier "uint") (pointer_declarator "*******pppppppuStack_80" (* "*") (pointer_declarator "******pppppppuStack_80" (* "*") (pointer_declarator "*****pppppppuStack_80" (* "*") (pointer_declarator "****pppppppuStack_80" (* "*") (pointer_declarator "***pppppppuStack_80" (* "*") (pointer_declarator "**pppppppuStack_80" (* "*") (pointer_declarator "*pppppppuStack_80" (* "*") (identifier "pppppppuStack_80")))))))) (; ";")) (declaration "uint *******pppppppuStack_7c;" (type_identifier "uint") (pointer_declarator "*******pppppppuStack_7c" (* "*") (pointer_declarator "******pppppppuStack_7c" (* "*") (pointer_declarator "*****pppppppuStack_7c" (* "*") (pointer_declarator "****pppppppuStack_7c" (* "*") (pointer_declarator "***pppppppuStack_7c" (* "*") (pointer_declarator "**pppppppuStack_7c" (* "*") (pointer_declarator "*pppppppuStack_7c" (* "*") (identifier "pppppppuStack_7c")))))))) (; ";")) (declaration "undefined *puStack_78;" (type_identifier "undefined") (pointer_declarator "*puStack_78" (* "*") (identifier "puStack_78")) (; ";")) (declaration "uint *******pppppppuStack_74;" (type_identifier "uint") (pointer_declarator "*******pppppppuStack_74" (* "*") (pointer_declarator "******pppppppuStack_74" (* "*") (pointer_declarator "*****pppppppuStack_74" (* "*") (pointer_declarator "****pppppppuStack_74" (* "*") (pointer_declarator "***pppppppuStack_74" (* "*") (pointer_declarator "**pppppppuStack_74" (* "*") (pointer_declarator "*pppppppuStack_74" (* "*") (identifier "pppppppuStack_74")))))))) (; ";")) (declaration "uint *******pppppppuStack_70;" (type_identifier "uint") (pointer_declarator "*******pppppppuStack_70" (* "*") (pointer_declarator "******pppppppuStack_70" (* "*") (pointer_declarator "*****pppppppuStack_70" (* "*") (pointer_declarator "****pppppppuStack_70" (* "*") (pointer_declarator "***pppppppuStack_70" (* "*") (pointer_declarator "**pppppppuStack_70" (* "*") (pointer_declarator "*pppppppuStack_70" (* "*") (identifier "pppppppuStack_70")))))))) (; ";")) (declaration "uint *******pppppppuStack_6c;" (type_identifier "uint") (pointer_declarator "*******pppppppuStack_6c" (* "*") (pointer_declarator "******pppppppuStack_6c" (* "*") (pointer_declarator "*****pppppppuStack_6c" (* "*") (pointer_declarator "****pppppppuStack_6c" (* "*") (pointer_declarator "***pppppppuStack_6c" (* "*") (pointer_declarator "**pppppppuStack_6c" (* "*") (pointer_declarator "*pppppppuStack_6c" (* "*") (identifier "pppppppuStack_6c")))))))) (; ";")) (declaration "uint *******pppppppuStack_68;" (type_identifier "uint") (pointer_declarator "*******pppppppuStack_68" (* "*") (pointer_declarator "******pppppppuStack_68" (* "*") (pointer_declarator "*****pppppppuStack_68" (* "*") (pointer_declarator "****pppppppuStack_68" (* "*") (pointer_declarator "***pppppppuStack_68" (* "*") (pointer_declarator "**pppppppuStack_68" (* "*") (pointer_declarator "*pppppppuStack_68" (* "*") (identifier "pppppppuStack_68")))))))) (; ";")) (declaration "code *pcStack_64;" (type_identifier "code") (pointer_declarator "*pcStack_64" (* "*") (identifier "pcStack_64")) (; ";")) (declaration "uint *******local_40;" (type_identifier "uint") (pointer_declarator "*******local_40" (* "*") (pointer_declarator "******local_40" (* "*") (pointer_declarator "*****local_40" (* "*") (pointer_declarator "****local_40" (* "*") (pointer_declarator "***local_40" (* "*") (pointer_declarator "**local_40" (* "*") (pointer_declarator "*local_40" (* "*") (identifier "local_40")))))))) (; ";")) (declaration "int local_3c;" (primitive_type "int") (identifier "local_3c") (; ";")) (declaration "int local_38;" (primitive_type "int") (identifier "local_38") (; ";")) (declaration "uint ******appppppuStack_34 [2];" (type_identifier "uint") (pointer_declarator "******appppppuStack_34 [2]" (* "*") (pointer_declarator "*****appppppuStack_34 [2]" (* "*") (pointer_declarator "****appppppuStack_34 [2]" (* "*") (pointer_declarator "***appppppuStack_34 [2]" (* "*") (pointer_declarator "**appppppuStack_34 [2]" (* "*") (pointer_declarator "*appppppuStack_34 [2]" (* "*") (array_declarator "appppppuStack_34 [2]" (identifier "appppppuStack_34") ([ "[") (number_literal "2") (] "]")))))))) (; ";")) (declaration "uint *******local_2c;" (type_identifier "uint") (pointer_declarator "*******local_2c" (* "*") (pointer_declarator "******local_2c" (* "*") (pointer_declarator "*****local_2c" (* "*") (pointer_declarator "****local_2c" (* "*") (pointer_declarator "***local_2c" (* "*") (pointer_declarator "**local_2c" (* "*") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")))))))) (; ";")) (expression_statement "puVar4 = PTR___stack_chk_guard_0003c314;" (assignment_expression "puVar4 = PTR___stack_chk_guard_0003c314" (identifier "puVar4") (= "=") (identifier "PTR___stack_chk_guard_0003c314")) (; ";")) (expression_statement "local_2c = *(uint ********)PTR___stack_chk_guard_0003c314;" (assignment_expression "local_2c = *(uint ********)PTR___stack_chk_guard_0003c314" (identifier "local_2c") (= "=") (pointer_expression "*(uint ********)PTR___stack_chk_guard_0003c314" (* "*") (cast_expression "(uint ********)PTR___stack_chk_guard_0003c314" (( "(") (type_descriptor "uint ********" (type_identifier "uint") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (identifier "PTR___stack_chk_guard_0003c314")))) (; ";")) (expression_statement "pppppppuVar24 = param_3;" (assignment_expression "pppppppuVar24 = param_3" (identifier "pppppppuVar24") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pppppppuVar40 = (uint *******)((int)param_2 - param_1[6]);" (assignment_expression "pppppppuVar40 = (uint *******)((int)param_2 - param_1[6])" (identifier "pppppppuVar40") (= "=") (cast_expression "(uint *******)((int)param_2 - param_1[6])" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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_2 - param_1[6])" (( "(") (binary_expression "(int)param_2 - param_1[6]" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (- "-") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) () ")")))) (; ";")) (if_statement "if ((int)param_2 < param_1[6]) {\n    if (1 < param_1[0x14]) {\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    pppppppuVar24 = (uint *******)0x6;\n    if (((uint)param_3 & 1) != 0) {\n      pppppppuVar24 = (uint *******)0x4;\n    }\n    param_1[0xc] = param_1[0xb];\n    param_1[0xe] = param_1[0xd];\n    param_1[7] = 0;\n    param_1[6] = 0;\n    param_1[8] = 0;\n    *(undefined1 *)(param_1 + 0x13) = 0;\n    param_1[0xf] = (int)pppppppuVar24;\n    pppppppuVar40 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n      goto LAB_0001d010;\n    }\n    if (param_2 == (uint *******)0x0) goto LAB_0001d128;\nLAB_0001d018:\n    iVar25 = param_1[8];\n    unaff_s2 = (uint *******)param_1[7];\n    if ((int)pppppppuVar40 < iVar25) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);\n        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);\n        param_1[0xf] = iVar25;\n        if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        cVar15 = *(char *)((int)param_1 + 0x4b);\n        if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        param_1[7] = (int)pppppppuVar24;\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        param_1[8] = param_1[8] - (int)pppppppuVar40;\n      }\n      else {\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }\nLAB_0001d090:\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      if (cVar15 == '\0') {\nLAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);\n        param_1[1] = (int)pppppppuVar40;\n      }\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n      if (pppppppuVar22 == (uint *******)0x0) goto LAB_0001d0b4;\nLAB_0001d148:\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }\n      pppppppuVar28 = (uint *******)param_1[0x14];\n      unaff_s8 = (uint *******)param_1[6];\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      param_1[7] = 0;\n      if (pppppppuVar22 == (uint *******)0x0) {\n        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }\n      uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];\n      param_1[8] = 0;\n      if (param_1[0x10] != 0) {\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }\n      pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);\n      if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {\n        pppppppuVar24 = (uint *******)0x0;\n      }\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n      param_1[0xf] = (int)pppppppuVar24;\n      pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n      iVar25 = param_1[0xe] - (int)pppppppuVar40;\n      if (cVar15 == '\0') goto LAB_0001d098;\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n    }\n    if (cVar15 == '\0') {\n      param_1[7] = (int)pppppppuVar16;\n    }\n    else if (*(char *)(param_1 + 0x12) == '\0') {\n      pppppppuVar22 = (uint *******)param_1[0x10];\n      if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }\n    }\n    else {\n      FUN_000187d0(param_1);\n    }\nLAB_0001d0dc:\n    pppppppuVar16 = (uint *******)0x0;\n    param_1[10] = 0;\n  }\n  else {\nLAB_0001d010:\n    if (pppppppuVar40 != (uint *******)0x0) goto LAB_0001d018;\nLAB_0001d128:\n    pppppppuVar28 = (uint *******)param_1[0x14];\n    pppppppuVar16 = (uint *******)param_1[0xc];\n    pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n    param_1[6] = (int)param_2;\n    param_1[0xc] = (int)pppppppuVar16;\n    param_1[0xe] = param_1[0xe];\n    if (pppppppuVar22 != (uint *******)0x0) goto LAB_0001d148;\nLAB_0001d0b4:\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_000188b4(param_1);\n      goto LAB_0001d0dc;\n    }\n    pppppppuVar16 = (uint *******)FUN_00018b3c();\n    if (pppppppuVar16 == (uint *******)0x0) goto LAB_0001d0dc;\n  }" (if "if") (parenthesized_expression "((int)param_2 < param_1[6])" (( "(") (binary_expression "(int)param_2 < param_1[6]" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (< "<") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) () ")")) (compound_statement "{\n    if (1 < param_1[0x14]) {\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    pppppppuVar24 = (uint *******)0x6;\n    if (((uint)param_3 & 1) != 0) {\n      pppppppuVar24 = (uint *******)0x4;\n    }\n    param_1[0xc] = param_1[0xb];\n    param_1[0xe] = param_1[0xd];\n    param_1[7] = 0;\n    param_1[6] = 0;\n    param_1[8] = 0;\n    *(undefined1 *)(param_1 + 0x13) = 0;\n    param_1[0xf] = (int)pppppppuVar24;\n    pppppppuVar40 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n      goto LAB_0001d010;\n    }\n    if (param_2 == (uint *******)0x0) goto LAB_0001d128;\nLAB_0001d018:\n    iVar25 = param_1[8];\n    unaff_s2 = (uint *******)param_1[7];\n    if ((int)pppppppuVar40 < iVar25) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);\n        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);\n        param_1[0xf] = iVar25;\n        if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        cVar15 = *(char *)((int)param_1 + 0x4b);\n        if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        param_1[7] = (int)pppppppuVar24;\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        param_1[8] = param_1[8] - (int)pppppppuVar40;\n      }\n      else {\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }\nLAB_0001d090:\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      if (cVar15 == '\0') {\nLAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);\n        param_1[1] = (int)pppppppuVar40;\n      }\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n      if (pppppppuVar22 == (uint *******)0x0) goto LAB_0001d0b4;\nLAB_0001d148:\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }\n      pppppppuVar28 = (uint *******)param_1[0x14];\n      unaff_s8 = (uint *******)param_1[6];\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      param_1[7] = 0;\n      if (pppppppuVar22 == (uint *******)0x0) {\n        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }\n      uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];\n      param_1[8] = 0;\n      if (param_1[0x10] != 0) {\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }\n      pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);\n      if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {\n        pppppppuVar24 = (uint *******)0x0;\n      }\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n      param_1[0xf] = (int)pppppppuVar24;\n      pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n      iVar25 = param_1[0xe] - (int)pppppppuVar40;\n      if (cVar15 == '\0') goto LAB_0001d098;\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n    }\n    if (cVar15 == '\0') {\n      param_1[7] = (int)pppppppuVar16;\n    }\n    else if (*(char *)(param_1 + 0x12) == '\0') {\n      pppppppuVar22 = (uint *******)param_1[0x10];\n      if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }\n    }\n    else {\n      FUN_000187d0(param_1);\n    }\nLAB_0001d0dc:\n    pppppppuVar16 = (uint *******)0x0;\n    param_1[10] = 0;\n  }" ({ "{") (if_statement "if (1 < param_1[0x14]) {\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }" (if "if") (parenthesized_expression "(1 < param_1[0x14])" (( "(") (binary_expression "1 < param_1[0x14]" (number_literal "1") (< "<") (subscript_expression "param_1[0x14]" (identifier "param_1") ([ "[") (number_literal "0x14") (] "]"))) () ")")) (compound_statement "{\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }" ({ "{") (expression_statement "param_1[4] = 0;" (assignment_expression "param_1[4] = 0" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "pppppppuVar24 = (uint *******)0x6;" (assignment_expression "pppppppuVar24 = (uint *******)0x6" (identifier "pppppppuVar24") (= "=") (cast_expression "(uint *******)0x6" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x6"))) (; ";")) (if_statement "if (((uint)param_3 & 1) != 0) {\n      pppppppuVar24 = (uint *******)0x4;\n    }" (if "if") (parenthesized_expression "(((uint)param_3 & 1) != 0)" (( "(") (binary_expression "((uint)param_3 & 1) != 0" (parenthesized_expression "((uint)param_3 & 1)" (( "(") (binary_expression "(uint)param_3 & 1" (cast_expression "(uint)param_3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_3")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pppppppuVar24 = (uint *******)0x4;\n    }" ({ "{") (expression_statement "pppppppuVar24 = (uint *******)0x4;" (assignment_expression "pppppppuVar24 = (uint *******)0x4" (identifier "pppppppuVar24") (= "=") (cast_expression "(uint *******)0x4" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x4"))) (; ";")) (} "}"))) (expression_statement "param_1[0xc] = param_1[0xb];" (assignment_expression "param_1[0xc] = param_1[0xb]" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "param_1[0xe] = param_1[0xd];" (assignment_expression "param_1[0xe] = param_1[0xd]" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "param_1[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[6] = 0;" (assignment_expression "param_1[6] = 0" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[8] = 0;" (assignment_expression "param_1[8] = 0" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x13) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x13) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x13)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x13)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x13)" (( "(") (binary_expression "param_1 + 0x13" (identifier "param_1") (+ "+") (number_literal "0x13")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0xf] = (int)pppppppuVar24;" (assignment_expression "param_1[0xf] = (int)pppppppuVar24" (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24"))) (; ";")) (expression_statement "pppppppuVar40 = param_2;" (assignment_expression "pppppppuVar40 = param_2" (identifier "pppppppuVar40") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n      goto LAB_0001d010;\n    }" (if "if") (parenthesized_expression "(*(char *)((int)param_1 + 0x4b) == '\0')" (( "(") (binary_expression "*(char *)((int)param_1 + 0x4b) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x4b)" (* "*") (cast_expression "(char *)((int)param_1 + 0x4b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x4b)" (( "(") (binary_expression "(int)param_1 + 0x4b" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x4b")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      param_1[1] = *param_1;\n      goto LAB_0001d010;\n    }" ({ "{") (expression_statement "param_1[1] = *param_1;" (assignment_expression "param_1[1] = *param_1" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (goto_statement "goto LAB_0001d010;" (goto "goto") (statement_identifier "LAB_0001d010") (; ";")) (} "}"))) (if_statement "if (param_2 == (uint *******)0x0) goto LAB_0001d128;" (if "if") (parenthesized_expression "(param_2 == (uint *******)0x0)" (( "(") (binary_expression "param_2 == (uint *******)0x0" (identifier "param_2") (== "==") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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_0001d128;" (goto "goto") (statement_identifier "LAB_0001d128") (; ";"))) (labeled_statement "LAB_0001d018:\n    iVar25 = param_1[8];" (statement_identifier "LAB_0001d018") (: ":") (expression_statement "iVar25 = param_1[8];" (assignment_expression "iVar25 = param_1[8]" (identifier "iVar25") (= "=") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) (; ";"))) (expression_statement "unaff_s2 = (uint *******)param_1[7];" (assignment_expression "unaff_s2 = (uint *******)param_1[7]" (identifier "unaff_s2") (= "=") (cast_expression "(uint *******)param_1[7]" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")))) (; ";")) (if_statement "if ((int)pppppppuVar40 < iVar25) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);\n        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);\n        param_1[0xf] = iVar25;\n        if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        cVar15 = *(char *)((int)param_1 + 0x4b);\n        if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        param_1[7] = (int)pppppppuVar24;\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        param_1[8] = param_1[8] - (int)pppppppuVar40;\n      }\n      else {\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }\nLAB_0001d090:\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      if (cVar15 == '\0') {\nLAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);\n        param_1[1] = (int)pppppppuVar40;\n      }\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n      if (pppppppuVar22 == (uint *******)0x0) goto LAB_0001d0b4;\nLAB_0001d148:\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }\n      pppppppuVar28 = (uint *******)param_1[0x14];\n      unaff_s8 = (uint *******)param_1[6];\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      param_1[7] = 0;\n      if (pppppppuVar22 == (uint *******)0x0) {\n        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }\n      uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];\n      param_1[8] = 0;\n      if (param_1[0x10] != 0) {\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }\n      pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);\n      if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {\n        pppppppuVar24 = (uint *******)0x0;\n      }\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n      param_1[0xf] = (int)pppppppuVar24;\n      pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n      iVar25 = param_1[0xe] - (int)pppppppuVar40;\n      if (cVar15 == '\0') goto LAB_0001d098;\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n    }" (if "if") (parenthesized_expression "((int)pppppppuVar40 < iVar25)" (( "(") (binary_expression "(int)pppppppuVar40 < iVar25" (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40")) (< "<") (identifier "iVar25")) () ")")) (compound_statement "{\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);\n        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);\n        param_1[0xf] = iVar25;\n        if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        cVar15 = *(char *)((int)param_1 + 0x4b);\n        if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        param_1[7] = (int)pppppppuVar24;\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        param_1[8] = param_1[8] - (int)pppppppuVar40;\n      }\n      else {\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }\nLAB_0001d090:\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      if (cVar15 == '\0') {\nLAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);\n        param_1[1] = (int)pppppppuVar40;\n      }\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n      if (pppppppuVar22 == (uint *******)0x0) goto LAB_0001d0b4;\nLAB_0001d148:\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n    }" ({ "{") (if_statement "if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);\n        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);\n        param_1[0xf] = iVar25;\n        if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        cVar15 = *(char *)((int)param_1 + 0x4b);\n        if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        param_1[7] = (int)pppppppuVar24;\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        param_1[8] = param_1[8] - (int)pppppppuVar40;\n      }\n      else {\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x13) == '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x13) == '\0'" (pointer_expression "*(char *)(param_1 + 0x13)" (* "*") (cast_expression "(char *)(param_1 + 0x13)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x13)" (( "(") (binary_expression "param_1 + 0x13" (identifier "param_1") (+ "+") (number_literal "0x13")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);\n        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);\n        param_1[0xf] = iVar25;\n        if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        cVar15 = *(char *)((int)param_1 + 0x4b);\n        if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        param_1[7] = (int)pppppppuVar24;\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        param_1[8] = param_1[8] - (int)pppppppuVar40;\n      }" ({ "{") (expression_statement "iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);" (assignment_expression "iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3)" (identifier "iVar25") (= "=") (call_expression "FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3)" (identifier "FUN_0001cb50") (argument_list "(param_1,(byte *)((int)pppppppuVar40 + -1),param_3)" (( "(") (identifier "param_1") (, ",") (cast_expression "(byte *)((int)pppppppuVar40 + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppppuVar40 + -1)" (( "(") (binary_expression "(int)pppppppuVar40 + -1" (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40")) (+ "+") (number_literal "-1")) () ")"))) (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);" (assignment_expression "pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40)" (identifier "pppppppuVar24") (= "=") (cast_expression "(uint *******)((int)unaff_s2 - (int)pppppppuVar40)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)unaff_s2 - (int)pppppppuVar40)" (( "(") (binary_expression "(int)unaff_s2 - (int)pppppppuVar40" (cast_expression "(int)unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s2")) (- "-") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40"))) () ")")))) (; ";")) (expression_statement "param_1[0xf] = iVar25;" (assignment_expression "param_1[0xf] = iVar25" (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "iVar25")) (; ";")) (if_statement "if (1 < param_1[0x14]) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }" (if "if") (parenthesized_expression "(1 < param_1[0x14])" (( "(") (binary_expression "1 < param_1[0x14]" (number_literal "1") (< "<") (subscript_expression "param_1[0x14]" (identifier "param_1") ([ "[") (number_literal "0x14") (] "]"))) () ")")) (compound_statement "{\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }" ({ "{") (expression_statement "(*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);" (call_expression "(*(code *)PTR_memmove_0003c324)\n                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4)" (parenthesized_expression "(*(code *)PTR_memmove_0003c324)" (( "(") (pointer_expression "*(code *)PTR_memmove_0003c324" (* "*") (cast_expression "(code *)PTR_memmove_0003c324" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memmove_0003c324"))) () ")")) (argument_list "(param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4)" (( "(") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (, ",") (binary_expression "param_1[2] + (int)pppppppuVar40 * 4" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (binary_expression "(int)pppppppuVar40 * 4" (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40")) (* "*") (number_literal "4"))) (, ",") (binary_expression "(int)pppppppuVar24 * 4" (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24")) (* "*") (number_literal "4")) () ")"))) (; ";")) (expression_statement "pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);" (assignment_expression "pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40)" (identifier "pppppppuVar24") (= "=") (cast_expression "(uint *******)(param_1[7] - (int)pppppppuVar40)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[7] - (int)pppppppuVar40)" (( "(") (binary_expression "param_1[7] - (int)pppppppuVar40" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (- "-") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40"))) () ")")))) (; ";")) (} "}"))) (expression_statement "cVar15 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar15 = *(char *)((int)param_1 + 0x4b)" (identifier "cVar15") (= "=") (pointer_expression "*(char *)((int)param_1 + 0x4b)" (* "*") (cast_expression "(char *)((int)param_1 + 0x4b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x4b)" (( "(") (binary_expression "(int)param_1 + 0x4b" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x4b")) () ")"))))) (; ";")) (if_statement "if (cVar15 != '\0') {\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }" (if "if") (parenthesized_expression "(cVar15 != '\0')" (( "(") (binary_expression "cVar15 != '\0'" (identifier "cVar15") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n        }" ({ "{") (expression_statement "(*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));" (call_expression "(*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40))" (parenthesized_expression "(*(code *)PTR_memmove_0003c324)" (( "(") (pointer_expression "*(code *)PTR_memmove_0003c324" (* "*") (cast_expression "(code *)PTR_memmove_0003c324" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memmove_0003c324"))) () ")")) (argument_list "(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40))" (( "(") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (, ",") (cast_expression "(byte *)(param_1[1] + (int)pppppppuVar40)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[1] + (int)pppppppuVar40)" (( "(") (binary_expression "param_1[1] + (int)pppppppuVar40" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40"))) () ")"))) () ")"))) (; ";")) (expression_statement "cVar15 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar15 = *(char *)((int)param_1 + 0x4b)" (identifier "cVar15") (= "=") (pointer_expression "*(char *)((int)param_1 + 0x4b)" (* "*") (cast_expression "(char *)((int)param_1 + 0x4b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x4b)" (( "(") (binary_expression "(int)param_1 + 0x4b" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x4b")) () ")"))))) (; ";")) (expression_statement "pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);" (assignment_expression "pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40)" (identifier "pppppppuVar24") (= "=") (cast_expression "(uint *******)(param_1[7] - (int)pppppppuVar40)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[7] - (int)pppppppuVar40)" (( "(") (binary_expression "param_1[7] - (int)pppppppuVar40" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (- "-") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40"))) () ")")))) (; ";")) (} "}"))) (expression_statement "pppppppuVar28 = (uint *******)param_1[0x14];" (assignment_expression "pppppppuVar28 = (uint *******)param_1[0x14]" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)param_1[0x14]" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[0x14]" (identifier "param_1") ([ "[") (number_literal "0x14") (] "]")))) (; ";")) (expression_statement "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);" (assignment_expression "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40)" (identifier "pppppppuVar16") (= "=") (cast_expression "(uint *******)(param_1[0xc] - (int)pppppppuVar40)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[0xc] - (int)pppppppuVar40)" (( "(") (binary_expression "param_1[0xc] - (int)pppppppuVar40" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (- "-") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40"))) () ")")))) (; ";")) (expression_statement "param_1[7] = (int)pppppppuVar24;" (assignment_expression "param_1[7] = (int)pppppppuVar24" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24"))) (; ";")) (expression_statement "iVar25 = param_1[0xe] - (int)pppppppuVar40;" (assignment_expression "iVar25 = param_1[0xe] - (int)pppppppuVar40" (identifier "iVar25") (= "=") (binary_expression "param_1[0xe] - (int)pppppppuVar40" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (- "-") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40")))) (; ";")) (expression_statement "param_1[8] = param_1[8] - (int)pppppppuVar40;" (assignment_expression "param_1[8] = param_1[8] - (int)pppppppuVar40" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (binary_expression "param_1[8] - (int)pppppppuVar40" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (- "-") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40")))) (; ";")) (} "}")) (else_clause "else {\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }" (else "else") (compound_statement "{\n        unaff_s7 = (uint *******)param_1[3];\n        pbVar8 = (byte *)0x0;\n        pppppppuVar24 = unaff_s2;\n        do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);\n        if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }\n        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);\n        param_1[0xf] = iVar25;\n        if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }\n      }" ({ "{") (expression_statement "unaff_s7 = (uint *******)param_1[3];" (assignment_expression "unaff_s7 = (uint *******)param_1[3]" (identifier "unaff_s7") (= "=") (cast_expression "(uint *******)param_1[3]" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "pbVar8 = (byte *)0x0;" (assignment_expression "pbVar8 = (byte *)0x0" (identifier "pbVar8") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppuVar24 = unaff_s2;" (assignment_expression "pppppppuVar24 = unaff_s2" (identifier "pppppppuVar24") (= "=") (identifier "unaff_s2")) (; ";")) (do_statement "do {\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        } while ((int)pbVar8 < (int)pppppppuVar16);" (do "do") (compound_statement "{\n          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);\n          ppppppuVar20 = unaff_s7[(int)unaff_s3];\n          pppppppuVar16 = unaff_s3;\n          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;\n          pppppppuVar24 = pppppppuVar16;\n        }" ({ "{") (expression_statement "unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);" (assignment_expression "unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2)" (identifier "unaff_s3") (= "=") (cast_expression "(uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)(pbVar8 + (int)pppppppuVar24) / 2)" (( "(") (binary_expression "(int)(pbVar8 + (int)pppppppuVar24) / 2" (cast_expression "(int)(pbVar8 + (int)pppppppuVar24)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar8 + (int)pppppppuVar24)" (( "(") (binary_expression "pbVar8 + (int)pppppppuVar24" (identifier "pbVar8") (+ "+") (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24"))) () ")"))) (/ "/") (number_literal "2")) () ")")))) (; ";")) (expression_statement "ppppppuVar20 = unaff_s7[(int)unaff_s3];" (assignment_expression "ppppppuVar20 = unaff_s7[(int)unaff_s3]" (identifier "ppppppuVar20") (= "=") (subscript_expression "unaff_s7[(int)unaff_s3]" (identifier "unaff_s7") ([ "[") (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")) (] "]"))) (; ";")) (expression_statement "pppppppuVar16 = unaff_s3;" (assignment_expression "pppppppuVar16 = unaff_s3" (identifier "pppppppuVar16") (= "=") (identifier "unaff_s3")) (; ";")) (if_statement "if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;" (if "if") (parenthesized_expression "(((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20))" (( "(") (binary_expression "((int)ppppppuVar20 <= (int)pppppppuVar40) &&\n             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)" (parenthesized_expression "((int)ppppppuVar20 <= (int)pppppppuVar40)" (( "(") (binary_expression "(int)ppppppuVar20 <= (int)pppppppuVar40" (cast_expression "(int)ppppppuVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppuVar20")) (<= "<=") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40"))) () ")")) (&& "&&") (parenthesized_expression "(pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20)" (( "(") (comma_expression "pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20" (assignment_expression "pbVar8 = (byte *)((int)unaff_s3 + 1)" (identifier "pbVar8") (= "=") (cast_expression "(byte *)((int)unaff_s3 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s3 + 1)" (( "(") (binary_expression "(int)unaff_s3 + 1" (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")) (+ "+") (number_literal "1")) () ")")))) (, ",") (comma_expression "pppppppuVar16 = pppppppuVar24,\n             (int)pppppppuVar40 <= (int)ppppppuVar20" (assignment_expression "pppppppuVar16 = pppppppuVar24" (identifier "pppppppuVar16") (= "=") (identifier "pppppppuVar24")) (, ",") (binary_expression "(int)pppppppuVar40 <= (int)ppppppuVar20" (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40")) (<= "<=") (cast_expression "(int)ppppppuVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppuVar20"))))) () ")"))) () ")")) (goto_statement "goto LAB_0001d460;" (goto "goto") (statement_identifier "LAB_0001d460") (; ";"))) (expression_statement "pppppppuVar24 = pppppppuVar16;" (assignment_expression "pppppppuVar24 = pppppppuVar16" (identifier "pppppppuVar24") (= "=") (identifier "pppppppuVar16")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)pbVar8 < (int)pppppppuVar16)" (( "(") (binary_expression "(int)pbVar8 < (int)pppppppuVar16" (cast_expression "(int)pbVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar8")) (< "<") (cast_expression "(int)pppppppuVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar16"))) () ")")) (; ";")) (if_statement "if ((int)ppppppuVar20 < (int)pppppppuVar40) {\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }\n        else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }" (if "if") (parenthesized_expression "((int)ppppppuVar20 < (int)pppppppuVar40)" (( "(") (binary_expression "(int)ppppppuVar20 < (int)pppppppuVar40" (cast_expression "(int)ppppppuVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppuVar20")) (< "<") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40"))) () ")")) (compound_statement "{\n          pppppppuVar24 = unaff_s3;\n          unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n        }" ({ "{") (expression_statement "pppppppuVar24 = unaff_s3;" (assignment_expression "pppppppuVar24 = unaff_s3" (identifier "pppppppuVar24") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "unaff_s3 = (uint *******)((int)unaff_s3 + 1);" (assignment_expression "unaff_s3 = (uint *******)((int)unaff_s3 + 1)" (identifier "unaff_s3") (= "=") (cast_expression "(uint *******)((int)unaff_s3 + 1)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)unaff_s3 + 1)" (( "(") (binary_expression "(int)unaff_s3 + 1" (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (else_clause "else {\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }" (else "else") (compound_statement "{\nLAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);\n        }" ({ "{") (labeled_statement "LAB_0001d460:\n          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);" (statement_identifier "LAB_0001d460") (: ":") (expression_statement "pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);" (assignment_expression "pppppppuVar24 = (uint *******)((int)unaff_s3 + -1)" (identifier "pppppppuVar24") (= "=") (cast_expression "(uint *******)((int)unaff_s3 + -1)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)unaff_s3 + -1)" (( "(") (binary_expression "(int)unaff_s3 + -1" (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")) (+ "+") (number_literal "-1")) () ")")))) (; ";"))) (} "}")))) (expression_statement "iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);" (assignment_expression "iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3)" (identifier "iVar25") (= "=") (call_expression "FUN_0001cb50(param_1,pppppppuVar24,param_3)" (identifier "FUN_0001cb50") (argument_list "(param_1,pppppppuVar24,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "pppppppuVar24") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "param_1[0xf] = iVar25;" (assignment_expression "param_1[0xf] = iVar25" (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "iVar25")) (; ";")) (if_statement "if ((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }" (if "if") (parenthesized_expression "((((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40))" (( "(") (binary_expression "(((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&\n           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)" (parenthesized_expression "(((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3))" (( "(") (binary_expression "((int)pppppppuVar40 < (int)unaff_s2) &&\n            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)" (parenthesized_expression "((int)pppppppuVar40 < (int)unaff_s2)" (( "(") (binary_expression "(int)pppppppuVar40 < (int)unaff_s2" (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40")) (< "<") (cast_expression "(int)unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s2"))) () ")")) (&& "&&") (parenthesized_expression "(param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)" (( "(") (comma_expression "param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3" (assignment_expression "param_3 = (uint *******)((int)pppppppuVar40 * 4)" (identifier "param_3") (= "=") (cast_expression "(uint *******)((int)pppppppuVar40 * 4)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppuVar40 * 4)" (( "(") (binary_expression "(int)pppppppuVar40 * 4" (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40")) (* "*") (number_literal "4")) () ")")))) (, ",") (binary_expression "pppppppuVar40 == unaff_s3" (identifier "pppppppuVar40") (== "==") (identifier "unaff_s3"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)" (( "(") (binary_expression "(uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40" (cast_expression "(uint *******)unaff_s7[(int)pppppppuVar40]" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[(int)pppppppuVar40]" (identifier "unaff_s7") ([ "[") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40")) (] "]"))) (== "==") (identifier "pppppppuVar40")) () ")"))) () ")")) (compound_statement "{\n          (*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);\n          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);\n          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));\n          iVar25 = param_1[7];\n          param_1[7] = iVar25 - (int)pppppppuVar40;\n          param_1[8] = param_1[8] - (int)pppppppuVar40;\n          if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n          iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        }" ({ "{") (expression_statement "(*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);" (call_expression "(*(code *)PTR_memmove_0003c324)\n                    (param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4)" (parenthesized_expression "(*(code *)PTR_memmove_0003c324)" (( "(") (pointer_expression "*(code *)PTR_memmove_0003c324" (* "*") (cast_expression "(code *)PTR_memmove_0003c324" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memmove_0003c324"))) () ")")) (argument_list "(param_1[2],(byte *)(param_1[2] + (int)param_3),\n                     ((int)unaff_s2 - (int)pppppppuVar40) * 4)" (( "(") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (, ",") (cast_expression "(byte *)(param_1[2] + (int)param_3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[2] + (int)param_3)" (( "(") (binary_expression "param_1[2] + (int)param_3" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) () ")"))) (, ",") (binary_expression "((int)unaff_s2 - (int)pppppppuVar40) * 4" (parenthesized_expression "((int)unaff_s2 - (int)pppppppuVar40)" (( "(") (binary_expression "(int)unaff_s2 - (int)pppppppuVar40" (cast_expression "(int)unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s2")) (- "-") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40"))) () ")")) (* "*") (number_literal "4")) () ")"))) (; ";")) (expression_statement "pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);" (assignment_expression "pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40)" (identifier "pppppppuVar24") (= "=") (cast_expression "(uint *******)(param_1[7] - (int)pppppppuVar40)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[7] - (int)pppppppuVar40)" (( "(") (binary_expression "param_1[7] - (int)pppppppuVar40" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (- "-") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40"))) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));" (call_expression "(*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40))" (parenthesized_expression "(*(code *)PTR_memmove_0003c324)" (( "(") (pointer_expression "*(code *)PTR_memmove_0003c324" (* "*") (cast_expression "(code *)PTR_memmove_0003c324" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memmove_0003c324"))) () ")")) (argument_list "(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40))" (( "(") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (, ",") (cast_expression "(byte *)(param_1[1] + (int)pppppppuVar40)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[1] + (int)pppppppuVar40)" (( "(") (binary_expression "param_1[1] + (int)pppppppuVar40" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40"))) () ")"))) () ")"))) (; ";")) (expression_statement "iVar25 = param_1[7];" (assignment_expression "iVar25 = param_1[7]" (identifier "iVar25") (= "=") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "param_1[7] = iVar25 - (int)pppppppuVar40;" (assignment_expression "param_1[7] = iVar25 - (int)pppppppuVar40" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (binary_expression "iVar25 - (int)pppppppuVar40" (identifier "iVar25") (- "-") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40")))) (; ";")) (expression_statement "param_1[8] = param_1[8] - (int)pppppppuVar40;" (assignment_expression "param_1[8] = param_1[8] - (int)pppppppuVar40" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (binary_expression "param_1[8] - (int)pppppppuVar40" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (- "-") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40")))) (; ";")) (if_statement "if (0 < iVar25 - (int)pppppppuVar40) {\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }" (if "if") (parenthesized_expression "(0 < iVar25 - (int)pppppppuVar40)" (( "(") (binary_expression "0 < iVar25 - (int)pppppppuVar40" (number_literal "0") (< "<") (binary_expression "iVar25 - (int)pppppppuVar40" (identifier "iVar25") (- "-") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40")))) () ")")) (compound_statement "{\n            iVar25 = 0;\n            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);\n            pbVar8 = (byte *)(param_1[3] + (int)param_3);\n            do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);\n          }" ({ "{") (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" (identifier "iVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);" (assignment_expression "pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4)" (identifier "pppppppuVar24") (= "=") (cast_expression "(uint *******)((int)pppppppuVar40 * -4)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppuVar40 * -4)" (( "(") (binary_expression "(int)pppppppuVar40 * -4" (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40")) (* "*") (number_literal "-4")) () ")")))) (; ";")) (expression_statement "pbVar8 = (byte *)(param_1[3] + (int)param_3);" (assignment_expression "pbVar8 = (byte *)(param_1[3] + (int)param_3)" (identifier "pbVar8") (= "=") (cast_expression "(byte *)(param_1[3] + (int)param_3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[3] + (int)param_3)" (( "(") (binary_expression "param_1[3] + (int)param_3" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (+ "+") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) () ")")))) (; ";")) (do_statement "do {\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            } while (iVar25 < param_1[7]);" (do "do") (compound_statement "{\n              iVar25 = iVar25 + 1;\n              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;\n              pbVar8 = pbVar8 + 4;\n            }" ({ "{") (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" (identifier "iVar25") (= "=") (binary_expression "iVar25 + 1" (identifier "iVar25") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;" (assignment_expression "*(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40" (pointer_expression "*(int *)(pbVar8 + (int)pppppppuVar24)" (* "*") (cast_expression "(int *)(pbVar8 + (int)pppppppuVar24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar8 + (int)pppppppuVar24)" (( "(") (binary_expression "pbVar8 + (int)pppppppuVar24" (identifier "pbVar8") (+ "+") (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24"))) () ")")))) (= "=") (binary_expression "*(int *)pbVar8 - (int)pppppppuVar40" (pointer_expression "*(int *)pbVar8" (* "*") (cast_expression "(int *)pbVar8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar8"))) (- "-") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40")))) (; ";")) (expression_statement "pbVar8 = pbVar8 + 4;" (assignment_expression "pbVar8 = pbVar8 + 4" (identifier "pbVar8") (= "=") (binary_expression "pbVar8 + 4" (identifier "pbVar8") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar25 < param_1[7])" (( "(") (binary_expression "iVar25 < param_1[7]" (identifier "iVar25") (< "<") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) () ")")) (; ";")) (} "}"))) (expression_statement "pppppppuVar28 = (uint *******)param_1[0x14];" (assignment_expression "pppppppuVar28 = (uint *******)param_1[0x14]" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)param_1[0x14]" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[0x14]" (identifier "param_1") ([ "[") (number_literal "0x14") (] "]")))) (; ";")) (expression_statement "cVar15 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar15 = *(char *)((int)param_1 + 0x4b)" (identifier "cVar15") (= "=") (pointer_expression "*(char *)((int)param_1 + 0x4b)" (* "*") (cast_expression "(char *)((int)param_1 + 0x4b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x4b)" (( "(") (binary_expression "(int)param_1 + 0x4b" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x4b")) () ")"))))) (; ";")) (expression_statement "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);" (assignment_expression "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40)" (identifier "pppppppuVar16") (= "=") (cast_expression "(uint *******)(param_1[0xc] - (int)pppppppuVar40)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[0xc] - (int)pppppppuVar40)" (( "(") (binary_expression "param_1[0xc] - (int)pppppppuVar40" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (- "-") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40"))) () ")")))) (; ";")) (expression_statement "iVar25 = param_1[0xe] - (int)pppppppuVar40;" (assignment_expression "iVar25 = param_1[0xe] - (int)pppppppuVar40" (identifier "iVar25") (= "=") (binary_expression "param_1[0xe] - (int)pppppppuVar40" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (- "-") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40")))) (; ";")) (} "}")) (else_clause "else {\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }" (else "else") (compound_statement "{\n          *(undefined1 *)(param_1 + 0x13) = 0;\n          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);\n          iVar25 = param_1[0xd] - (int)param_2;\n          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);\n          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);\n          if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }\n          iVar5 = (int)unaff_s3 * 4;\n          if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }\n          pppppppuVar28 = (uint *******)param_1[0x14];\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          param_1[8] = (int)pppppppuVar24;\n        }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0x13) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x13) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x13)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x13)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x13)" (( "(") (binary_expression "param_1 + 0x13" (identifier "param_1") (+ "+") (number_literal "0x13")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);" (assignment_expression "pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2)" (identifier "pppppppuVar16") (= "=") (cast_expression "(uint *******)(param_1[0xb] - (int)param_2)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[0xb] - (int)param_2)" (( "(") (binary_expression "param_1[0xb] - (int)param_2" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (- "-") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")))) (; ";")) (expression_statement "iVar25 = param_1[0xd] - (int)param_2;" (assignment_expression "iVar25 = param_1[0xd] - (int)param_2" (identifier "iVar25") (= "=") (binary_expression "param_1[0xd] - (int)param_2" (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")) (- "-") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")))) (; ";")) (expression_statement "param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);" (assignment_expression "param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40)" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (cast_expression "(int)((int)pppppppuVar16 + (int)pppppppuVar40)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)pppppppuVar16 + (int)pppppppuVar40)" (( "(") (binary_expression "(int)pppppppuVar16 + (int)pppppppuVar40" (cast_expression "(int)pppppppuVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar16")) (+ "+") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40"))) () ")")))) (; ";")) (expression_statement "param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);" (assignment_expression "param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40)" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (cast_expression "(int)(iVar25 + (int)pppppppuVar40)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(iVar25 + (int)pppppppuVar40)" (( "(") (binary_expression "iVar25 + (int)pppppppuVar40" (identifier "iVar25") (+ "+") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40"))) () ")")))) (; ";")) (if_statement "if ((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }" (if "if") (parenthesized_expression "((0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)]))" (( "(") (binary_expression "(0 < (int)unaff_s3) &&\n             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])" (parenthesized_expression "(0 < (int)unaff_s3)" (( "(") (binary_expression "0 < (int)unaff_s3" (number_literal "0") (< "<") (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3"))) () ")")) (&& "&&") (parenthesized_expression "(pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])" (( "(") (binary_expression "pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)]" (identifier "pppppppuVar40") (== "==") (cast_expression "(uint *******)unaff_s7[(int)((int)unaff_s3 + -1)]" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[(int)((int)unaff_s3 + -1)]" (identifier "unaff_s7") ([ "[") (cast_expression "(int)((int)unaff_s3 + -1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)unaff_s3 + -1)" (( "(") (binary_expression "(int)unaff_s3 + -1" (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")) (+ "+") (number_literal "-1")) () ")"))) (] "]")))) () ")"))) () ")")) (compound_statement "{\n            pppppppuVar24 = unaff_s7 + (int)unaff_s3;\n            do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);\n          }" ({ "{") (expression_statement "pppppppuVar24 = unaff_s7 + (int)unaff_s3;" (assignment_expression "pppppppuVar24 = unaff_s7 + (int)unaff_s3" (identifier "pppppppuVar24") (= "=") (binary_expression "unaff_s7 + (int)unaff_s3" (identifier "unaff_s7") (+ "+") (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")))) (; ";")) (do_statement "do {\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);" (do "do") (compound_statement "{\n              unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n              if (unaff_s3 == (uint *******)0x0) break;\n              pppppppuVar22 = pppppppuVar24 + -2;\n              pppppppuVar24 = pppppppuVar24 + -1;\n            }" ({ "{") (expression_statement "unaff_s3 = (uint *******)((int)unaff_s3 + -1);" (assignment_expression "unaff_s3 = (uint *******)((int)unaff_s3 + -1)" (identifier "unaff_s3") (= "=") (cast_expression "(uint *******)((int)unaff_s3 + -1)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)unaff_s3 + -1)" (( "(") (binary_expression "(int)unaff_s3 + -1" (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (if_statement "if (unaff_s3 == (uint *******)0x0) break;" (if "if") (parenthesized_expression "(unaff_s3 == (uint *******)0x0)" (( "(") (binary_expression "unaff_s3 == (uint *******)0x0" (identifier "unaff_s3") (== "==") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pppppppuVar22 = pppppppuVar24 + -2;" (assignment_expression "pppppppuVar22 = pppppppuVar24 + -2" (identifier "pppppppuVar22") (= "=") (binary_expression "pppppppuVar24 + -2" (identifier "pppppppuVar24") (+ "+") (number_literal "-2"))) (; ";")) (expression_statement "pppppppuVar24 = pppppppuVar24 + -1;" (assignment_expression "pppppppuVar24 = pppppppuVar24 + -1" (identifier "pppppppuVar24") (= "=") (binary_expression "pppppppuVar24 + -1" (identifier "pppppppuVar24") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((uint *******)*pppppppuVar22 == pppppppuVar40)" (( "(") (binary_expression "(uint *******)*pppppppuVar22 == pppppppuVar40" (cast_expression "(uint *******)*pppppppuVar22" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*pppppppuVar22" (* "*") (identifier "pppppppuVar22"))) (== "==") (identifier "pppppppuVar40")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar5 = (int)unaff_s3 * 4;" (assignment_expression "iVar5 = (int)unaff_s3 * 4" (identifier "iVar5") (= "=") (binary_expression "(int)unaff_s3 * 4" (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")) (* "*") (number_literal "4"))) (; ";")) (if_statement "if ((int)unaff_s3 < (int)unaff_s2) {\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }\n          else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }" (if "if") (parenthesized_expression "((int)unaff_s3 < (int)unaff_s2)" (( "(") (binary_expression "(int)unaff_s3 < (int)unaff_s2" (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")) (< "<") (cast_expression "(int)unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s2"))) () ")")) (compound_statement "{\n            piVar6 = (int *)(param_1[2] + iVar5);\n            iVar35 = *piVar6;\n            while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }\nLAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);\n            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);\n            param_1[7] = (int)pppppppuVar24;\n            if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }\n          }" ({ "{") (expression_statement "piVar6 = (int *)(param_1[2] + iVar5);" (assignment_expression "piVar6 = (int *)(param_1[2] + iVar5)" (identifier "piVar6") (= "=") (cast_expression "(int *)(param_1[2] + iVar5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[2] + iVar5)" (( "(") (binary_expression "param_1[2] + iVar5" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (identifier "iVar5")) () ")")))) (; ";")) (expression_statement "iVar35 = *piVar6;" (assignment_expression "iVar35 = *piVar6" (identifier "iVar35") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (while_statement "while (iVar35 == -1) {\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }" (while "while") (parenthesized_expression "(iVar35 == -1)" (( "(") (binary_expression "iVar35 == -1" (identifier "iVar35") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n              unaff_s3 = (uint *******)((int)unaff_s3 + 1);\n              piVar6 = piVar6 + 1;\n              if (unaff_s3 == unaff_s2) goto LAB_0001d444;\n              iVar5 = (int)unaff_s3 * 4;\n              iVar35 = *piVar6;\n            }" ({ "{") (expression_statement "unaff_s3 = (uint *******)((int)unaff_s3 + 1);" (assignment_expression "unaff_s3 = (uint *******)((int)unaff_s3 + 1)" (identifier "unaff_s3") (= "=") (cast_expression "(uint *******)((int)unaff_s3 + 1)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)unaff_s3 + 1)" (( "(") (binary_expression "(int)unaff_s3 + 1" (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" (identifier "piVar6") (= "=") (binary_expression "piVar6 + 1" (identifier "piVar6") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (unaff_s3 == unaff_s2) goto LAB_0001d444;" (if "if") (parenthesized_expression "(unaff_s3 == unaff_s2)" (( "(") (binary_expression "unaff_s3 == unaff_s2" (identifier "unaff_s3") (== "==") (identifier "unaff_s2")) () ")")) (goto_statement "goto LAB_0001d444;" (goto "goto") (statement_identifier "LAB_0001d444") (; ";"))) (expression_statement "iVar5 = (int)unaff_s3 * 4;" (assignment_expression "iVar5 = (int)unaff_s3 * 4" (identifier "iVar5") (= "=") (binary_expression "(int)unaff_s3 * 4" (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")) (* "*") (number_literal "4"))) (; ";")) (expression_statement "iVar35 = *piVar6;" (assignment_expression "iVar35 = *piVar6" (identifier "iVar35") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (} "}"))) (labeled_statement "LAB_0001d4ac:\n            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);" (statement_identifier "LAB_0001d4ac") (: ":") (expression_statement "unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);" (assignment_expression "unaff_s7 = (uint *******)((int)unaff_s7 + iVar5)" (identifier "unaff_s7") (= "=") (cast_expression "(uint *******)((int)unaff_s7 + iVar5)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)unaff_s7 + iVar5)" (( "(") (binary_expression "(int)unaff_s7 + iVar5" (cast_expression "(int)unaff_s7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s7")) (+ "+") (identifier "iVar5")) () ")")))) (; ";"))) (expression_statement "pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);" (assignment_expression "pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40)" (identifier "pppppppuVar24") (= "=") (cast_expression "(uint *******)((int)*unaff_s7 - (int)pppppppuVar40)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)*unaff_s7 - (int)pppppppuVar40)" (( "(") (binary_expression "(int)*unaff_s7 - (int)pppppppuVar40" (cast_expression "(int)*unaff_s7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*unaff_s7" (* "*") (identifier "unaff_s7"))) (- "-") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40"))) () ")")))) (; ";")) (expression_statement "param_1[7] = (int)pppppppuVar24;" (assignment_expression "param_1[7] = (int)pppppppuVar24" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24"))) (; ";")) (if_statement "if (pppppppuVar24 != (uint *******)0x0) {\n              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }" (if "if") (parenthesized_expression "(pppppppuVar24 != (uint *******)0x0)" (( "(") (binary_expression "pppppppuVar24 != (uint *******)0x0" (identifier "pppppppuVar24") (!= "!=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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              if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }\n              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n              pppppppuVar24 = (uint *******)param_1[7];\n              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n              iVar25 = param_1[0xe] - (int)pppppppuVar40;\n            }" ({ "{") (if_statement "if (0 < (int)pppppppuVar24) {\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }" (if "if") (parenthesized_expression "(0 < (int)pppppppuVar24)" (( "(") (binary_expression "0 < (int)pppppppuVar24" (number_literal "0") (< "<") (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24"))) () ")")) (compound_statement "{\n                puVar9 = (undefined4 *)param_1[2];\n                iVar25 = 0;\n                do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);\n              }" ({ "{") (expression_statement "puVar9 = (undefined4 *)param_1[2];" (assignment_expression "puVar9 = (undefined4 *)param_1[2]" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)param_1[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" (identifier "iVar25") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                } while (iVar25 < param_1[7]);" (do "do") (compound_statement "{\n                  *puVar9 = 0xffffffff;\n                  iVar25 = iVar25 + 1;\n                  puVar9 = puVar9 + 1;\n                }" ({ "{") (expression_statement "*puVar9 = 0xffffffff;" (assignment_expression "*puVar9 = 0xffffffff" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" (identifier "iVar25") (= "=") (binary_expression "iVar25 + 1" (identifier "iVar25") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar25 < param_1[7])" (( "(") (binary_expression "iVar25 < param_1[7]" (identifier "iVar25") (< "<") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) () ")")) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_memset_0003c290)(param_1[1],0xff);" (call_expression "(*(code *)PTR_memset_0003c290)(param_1[1],0xff)" (parenthesized_expression "(*(code *)PTR_memset_0003c290)" (( "(") (pointer_expression "*(code *)PTR_memset_0003c290" (* "*") (cast_expression "(code *)PTR_memset_0003c290" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memset_0003c290"))) () ")")) (argument_list "(param_1[1],0xff)" (( "(") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0xff") () ")"))) (; ";")) (expression_statement "pppppppuVar24 = (uint *******)param_1[7];" (assignment_expression "pppppppuVar24 = (uint *******)param_1[7]" (identifier "pppppppuVar24") (= "=") (cast_expression "(uint *******)param_1[7]" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")))) (; ";")) (expression_statement "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);" (assignment_expression "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40)" (identifier "pppppppuVar16") (= "=") (cast_expression "(uint *******)(param_1[0xc] - (int)pppppppuVar40)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[0xc] - (int)pppppppuVar40)" (( "(") (binary_expression "param_1[0xc] - (int)pppppppuVar40" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (- "-") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40"))) () ")")))) (; ";")) (expression_statement "iVar25 = param_1[0xe] - (int)pppppppuVar40;" (assignment_expression "iVar25 = param_1[0xe] - (int)pppppppuVar40" (identifier "iVar25") (= "=") (binary_expression "param_1[0xe] - (int)pppppppuVar40" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (- "-") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40")))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }" (else "else") (compound_statement "{\n            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;\nLAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;\n            param_1[7] = 0;\n          }" ({ "{") (if_statement "if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;" (if "if") (parenthesized_expression "(unaff_s3 != unaff_s2)" (( "(") (binary_expression "unaff_s3 != unaff_s2" (identifier "unaff_s3") (!= "!=") (identifier "unaff_s2")) () ")")) (goto_statement "goto LAB_0001d4ac;" (goto "goto") (statement_identifier "LAB_0001d4ac") (; ";"))) (labeled_statement "LAB_0001d444:\n            pppppppuVar24 = (uint *******)0x0;" (statement_identifier "LAB_0001d444") (: ":") (expression_statement "pppppppuVar24 = (uint *******)0x0;" (assignment_expression "pppppppuVar24 = (uint *******)0x0" (identifier "pppppppuVar24") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "param_1[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "pppppppuVar28 = (uint *******)param_1[0x14];" (assignment_expression "pppppppuVar28 = (uint *******)param_1[0x14]" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)param_1[0x14]" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[0x14]" (identifier "param_1") ([ "[") (number_literal "0x14") (] "]")))) (; ";")) (expression_statement "cVar15 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar15 = *(char *)((int)param_1 + 0x4b)" (identifier "cVar15") (= "=") (pointer_expression "*(char *)((int)param_1 + 0x4b)" (* "*") (cast_expression "(char *)((int)param_1 + 0x4b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x4b)" (( "(") (binary_expression "(int)param_1 + 0x4b" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x4b")) () ")"))))) (; ";")) (expression_statement "param_1[8] = (int)pppppppuVar24;" (assignment_expression "param_1[8] = (int)pppppppuVar24" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24"))) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_0001d090:\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);" (statement_identifier "LAB_0001d090") (: ":") (expression_statement "pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);" (assignment_expression "pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2)" (identifier "pppppppuVar22") (= "=") (cast_expression "(uint *******)(uint)((int)pppppppuVar28 < 2)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(uint)((int)pppppppuVar28 < 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pppppppuVar28 < 2)" (( "(") (binary_expression "(int)pppppppuVar28 < 2" (cast_expression "(int)pppppppuVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar28")) (< "<") (number_literal "2")) () ")"))))) (; ";"))) (if_statement "if (cVar15 == '\0') {\nLAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);\n        param_1[1] = (int)pppppppuVar40;\n      }" (if "if") (parenthesized_expression "(cVar15 == '\0')" (( "(") (binary_expression "cVar15 == '\0'" (identifier "cVar15") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);\n        param_1[1] = (int)pppppppuVar40;\n      }" ({ "{") (labeled_statement "LAB_0001d098:\n        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);" (statement_identifier "LAB_0001d098") (: ":") (expression_statement "pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);" (assignment_expression "pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40)" (identifier "pppppppuVar40") (= "=") (cast_expression "(uint *******)(param_1[1] + (int)pppppppuVar40)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[1] + (int)pppppppuVar40)" (( "(") (binary_expression "param_1[1] + (int)pppppppuVar40" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40"))) () ")")))) (; ";"))) (expression_statement "param_1[1] = (int)pppppppuVar40;" (assignment_expression "param_1[1] = (int)pppppppuVar40" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40"))) (; ";")) (} "}"))) (expression_statement "param_1[6] = (int)param_2;" (assignment_expression "param_1[6] = (int)param_2" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) (; ";")) (expression_statement "param_1[0xc] = (int)pppppppuVar16;" (assignment_expression "param_1[0xc] = (int)pppppppuVar16" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (cast_expression "(int)pppppppuVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar16"))) (; ";")) (expression_statement "param_1[0xe] = iVar25;" (assignment_expression "param_1[0xe] = iVar25" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "iVar25")) (; ";")) (if_statement "if (pppppppuVar22 == (uint *******)0x0) goto LAB_0001d0b4;" (if "if") (parenthesized_expression "(pppppppuVar22 == (uint *******)0x0)" (( "(") (binary_expression "pppppppuVar22 == (uint *******)0x0" (identifier "pppppppuVar22") (== "==") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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_0001d0b4;" (goto "goto") (statement_identifier "LAB_0001d0b4") (; ";"))) (labeled_statement "LAB_0001d148:\n      cVar15 = *(char *)((int)param_1 + 0x4b);" (statement_identifier "LAB_0001d148") (: ":") (expression_statement "cVar15 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar15 = *(char *)((int)param_1 + 0x4b)" (identifier "cVar15") (= "=") (pointer_expression "*(char *)((int)param_1 + 0x4b)" (* "*") (cast_expression "(char *)((int)param_1 + 0x4b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x4b)" (( "(") (binary_expression "(int)param_1 + 0x4b" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x4b")) () ")"))))) (; ";"))) (} "}")) (else_clause "else {\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }\n      pppppppuVar28 = (uint *******)param_1[0x14];\n      unaff_s8 = (uint *******)param_1[6];\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      param_1[7] = 0;\n      if (pppppppuVar22 == (uint *******)0x0) {\n        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }\n      uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];\n      param_1[8] = 0;\n      if (param_1[0x10] != 0) {\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }\n      pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);\n      if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {\n        pppppppuVar24 = (uint *******)0x0;\n      }\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n      param_1[0xf] = (int)pppppppuVar24;\n      pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n      iVar25 = param_1[0xe] - (int)pppppppuVar40;\n      if (cVar15 == '\0') goto LAB_0001d098;\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n    }" (else "else") (compound_statement "{\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }\n      pppppppuVar28 = (uint *******)param_1[0x14];\n      unaff_s8 = (uint *******)param_1[6];\n      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n      param_1[7] = 0;\n      if (pppppppuVar22 == (uint *******)0x0) {\n        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }\n      uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];\n      param_1[8] = 0;\n      if (param_1[0x10] != 0) {\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }\n      pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);\n      if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {\n        pppppppuVar24 = (uint *******)0x0;\n      }\n      cVar15 = *(char *)((int)param_1 + 0x4b);\n      param_1[0xf] = (int)pppppppuVar24;\n      pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n      iVar25 = param_1[0xe] - (int)pppppppuVar40;\n      if (cVar15 == '\0') goto LAB_0001d098;\n      param_1[6] = (int)param_2;\n      param_1[0xc] = (int)pppppppuVar16;\n      param_1[0xe] = iVar25;\n    }" ({ "{") (if_statement "if (*(char *)(param_1 + 0x13) != '\0') {\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x13) != '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x13) != '\0'" (pointer_expression "*(char *)(param_1 + 0x13)" (* "*") (cast_expression "(char *)(param_1 + 0x13)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x13)" (( "(") (binary_expression "param_1 + 0x13" (identifier "param_1") (+ "+") (number_literal "0x13")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);\n        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);\n      }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0x13) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x13) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x13)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x13)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x13)" (( "(") (binary_expression "param_1 + 0x13" (identifier "param_1") (+ "+") (number_literal "0x13")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);" (assignment_expression "param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40)" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (cast_expression "(int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((param_1[0xb] - (int)param_2) + (int)pppppppuVar40)" (( "(") (binary_expression "(param_1[0xb] - (int)param_2) + (int)pppppppuVar40" (parenthesized_expression "(param_1[0xb] - (int)param_2)" (( "(") (binary_expression "param_1[0xb] - (int)param_2" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (- "-") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")) (+ "+") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40"))) () ")")))) (; ";")) (expression_statement "param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);" (assignment_expression "param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40)" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (cast_expression "(int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((param_1[0xd] - (int)param_2) + (int)pppppppuVar40)" (( "(") (binary_expression "(param_1[0xd] - (int)param_2) + (int)pppppppuVar40" (parenthesized_expression "(param_1[0xd] - (int)param_2)" (( "(") (binary_expression "param_1[0xd] - (int)param_2" (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")) (- "-") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")) (+ "+") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40"))) () ")")))) (; ";")) (} "}"))) (expression_statement "pppppppuVar28 = (uint *******)param_1[0x14];" (assignment_expression "pppppppuVar28 = (uint *******)param_1[0x14]" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)param_1[0x14]" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[0x14]" (identifier "param_1") ([ "[") (number_literal "0x14") (] "]")))) (; ";")) (expression_statement "unaff_s8 = (uint *******)param_1[6];" (assignment_expression "unaff_s8 = (uint *******)param_1[6]" (identifier "unaff_s8") (= "=") (cast_expression "(uint *******)param_1[6]" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);" (assignment_expression "pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2)" (identifier "pppppppuVar22") (= "=") (cast_expression "(uint *******)(uint)((int)pppppppuVar28 < 2)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(uint)((int)pppppppuVar28 < 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pppppppuVar28 < 2)" (( "(") (binary_expression "(int)pppppppuVar28 < 2" (cast_expression "(int)pppppppuVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar28")) (< "<") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "param_1[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (pppppppuVar22 == (uint *******)0x0) {\n        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }" (if "if") (parenthesized_expression "(pppppppuVar22 == (uint *******)0x0)" (( "(") (binary_expression "pppppppuVar22 == (uint *******)0x0" (identifier "pppppppuVar22") (== "==") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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        if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }\n        pppppppuVar16 = pppppppuVar24;\n        if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }\n        pppppppuVar28 = (uint *******)param_1[0x14];\n        param_1[8] = (int)unaff_s8;\n        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);\n        iVar25 = param_1[0xe] - (int)pppppppuVar40;\n        goto LAB_0001d090;\n      }" ({ "{") (if_statement "if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }\n        else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }" (if "if") (parenthesized_expression "(*(char *)((int)param_1 + 0x49) == '\0')" (( "(") (binary_expression "*(char *)((int)param_1 + 0x49) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x49)" (* "*") (cast_expression "(char *)((int)param_1 + 0x49)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x49)" (( "(") (binary_expression "(int)param_1 + 0x49" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x49")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);\n          if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }\n          pppppppuVar24 = param_3;\n          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));\n          param_1[0xf] = iVar25;\n        }" ({ "{") (labeled_statement "LAB_0001d228:\n          pbVar8 = (byte *)((int)unaff_s8 + iVar25);" (statement_identifier "LAB_0001d228") (: ":") (expression_statement "pbVar8 = (byte *)((int)unaff_s8 + iVar25);" (assignment_expression "pbVar8 = (byte *)((int)unaff_s8 + iVar25)" (identifier "pbVar8") (= "=") (cast_expression "(byte *)((int)unaff_s8 + iVar25)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s8 + iVar25)" (( "(") (binary_expression "(int)unaff_s8 + iVar25" (cast_expression "(int)unaff_s8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s8")) (+ "+") (identifier "iVar25")) () ")")))) (; ";"))) (if_statement "if ((int)pbVar8 < (int)param_2) {\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }\n          else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }" (if "if") (parenthesized_expression "((int)pbVar8 < (int)param_2)" (( "(") (binary_expression "(int)pbVar8 < (int)param_2" (cast_expression "(int)pbVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar8")) (< "<") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")) (compound_statement "{\n            unaff_s7 = (uint *******)&local_40;\n            do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;\n          }" ({ "{") (expression_statement "unaff_s7 = (uint *******)&local_40;" (assignment_expression "unaff_s7 = (uint *******)&local_40" (identifier "unaff_s7") (= "=") (cast_expression "(uint *******)&local_40" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&local_40" (& "&") (identifier "local_40")))) (; ";")) (do_statement "do {\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            } while ((int)pbVar8 < (int)param_2);" (do "do") (compound_statement "{\n              local_3c = param_1[4];\n              local_38 = param_1[5];\n              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);\n              pppppppuVar24 = pppppppuVar16;\n              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);\n              unaff_s3 = local_40;\n              if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }\n              pbVar8 = pbVar8 + iVar25;\n            }" ({ "{") (expression_statement "local_3c = param_1[4];" (assignment_expression "local_3c = param_1[4]" (identifier "local_3c") (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "local_38 = param_1[5];" (assignment_expression "local_38 = param_1[5]" (identifier "local_38") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);" (assignment_expression "pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8)" (identifier "pppppppuVar16") (= "=") (cast_expression "(uint *******)(param_1[0xb] - (int)pbVar8)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[0xb] - (int)pbVar8)" (( "(") (binary_expression "param_1[0xb] - (int)pbVar8" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (- "-") (cast_expression "(int)pbVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar8"))) () ")")))) (; ";")) (expression_statement "pppppppuVar24 = pppppppuVar16;" (assignment_expression "pppppppuVar24 = pppppppuVar16" (identifier "pppppppuVar24") (= "=") (identifier "pppppppuVar16")) (; ";")) (expression_statement "iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);" (assignment_expression "iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4)" (identifier "iVar25") (= "=") (call_expression "rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4)" (identifier "rpl_mbrtowc") (argument_list "(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4)" (( "(") (identifier "unaff_s7") (, ",") (binary_expression "pbVar8 + *param_1" (identifier "pbVar8") (+ "+") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (, ",") (identifier "pppppppuVar16") (, ",") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "unaff_s3 = local_40;" (assignment_expression "unaff_s3 = local_40" (identifier "unaff_s3") (= "=") (identifier "local_40")) (; ";")) (if_statement "if (0xfffffffc < iVar25 - 1U) {\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }" (if "if") (parenthesized_expression "(0xfffffffc < iVar25 - 1U)" (( "(") (binary_expression "0xfffffffc < iVar25 - 1U" (number_literal "0xfffffffc") (< "<") (binary_expression "iVar25 - 1U" (identifier "iVar25") (- "-") (number_literal "1U"))) () ")")) (compound_statement "{\n                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }\n                iVar25 = 1;\n                param_1[4] = local_3c;\n                param_1[5] = local_38;\n              }" ({ "{") (if_statement "if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {\n                  unaff_s3 = (uint *******)0x0;\n                }\n                else {\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }" (if "if") (parenthesized_expression "((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0))" (( "(") (binary_expression "(iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)" (parenthesized_expression "(iVar25 == 0)" (( "(") (binary_expression "iVar25 == 0" (identifier "iVar25") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(pppppppuVar16 == (uint *******)0x0)" (( "(") (binary_expression "pppppppuVar16 == (uint *******)0x0" (identifier "pppppppuVar16") (== "==") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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                  unaff_s3 = (uint *******)0x0;\n                }" ({ "{") (expression_statement "unaff_s3 = (uint *******)0x0;" (assignment_expression "unaff_s3 = (uint *******)0x0" (identifier "unaff_s3") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (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                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }" (else "else") (compound_statement "{\n                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];\n                }" ({ "{") (expression_statement "unaff_s3 = (uint *******)(uint)pbVar8[*param_1];" (assignment_expression "unaff_s3 = (uint *******)(uint)pbVar8[*param_1]" (identifier "unaff_s3") (= "=") (cast_expression "(uint *******)(uint)pbVar8[*param_1]" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (cast_expression "(uint)pbVar8[*param_1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar8[*param_1]" (identifier "pbVar8") ([ "[") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (] "]"))))) (; ";")) (} "}")))) (expression_statement "iVar25 = 1;" (assignment_expression "iVar25 = 1" (identifier "iVar25") (= "=") (number_literal "1")) (; ";")) (expression_statement "param_1[4] = local_3c;" (assignment_expression "param_1[4] = local_3c" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_3c")) (; ";")) (expression_statement "param_1[5] = local_38;" (assignment_expression "param_1[5] = local_38" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "local_38")) (; ";")) (} "}"))) (expression_statement "pbVar8 = pbVar8 + iVar25;" (assignment_expression "pbVar8 = pbVar8 + iVar25" (identifier "pbVar8") (= "=") (binary_expression "pbVar8 + iVar25" (identifier "pbVar8") (+ "+") (identifier "iVar25"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)pbVar8 < (int)param_2)" (( "(") (binary_expression "(int)pbVar8 < (int)param_2" (cast_expression "(int)pbVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar8")) (< "<") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")) (; ";")) (expression_statement "unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);" (assignment_expression "unaff_s8 = (uint *******)(pbVar8 + -(int)param_2)" (identifier "unaff_s8") (= "=") (cast_expression "(uint *******)(pbVar8 + -(int)param_2)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(pbVar8 + -(int)param_2)" (( "(") (binary_expression "pbVar8 + -(int)param_2" (identifier "pbVar8") (+ "+") (unary_expression "-(int)param_2" (- "-") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")))) () ")")))) (; ";")) (expression_statement "param_1[7] = (int)unaff_s8;" (assignment_expression "param_1[7] = (int)unaff_s8" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(int)unaff_s8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s8"))) (; ";")) (if_statement "if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;" (if "if") (parenthesized_expression "(unaff_s3 != (uint *******)0xffffffff)" (( "(") (binary_expression "unaff_s3 != (uint *******)0xffffffff" (identifier "unaff_s3") (!= "!=") (cast_expression "(uint *******)0xffffffff" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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_0001d2a4;" (goto "goto") (statement_identifier "LAB_0001d2a4") (; ";"))) (} "}")) (else_clause "else {\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }" (else "else") (compound_statement "{\n            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);\n            param_1[7] = (int)unaff_s8;\n          }" ({ "{") (expression_statement "unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);" (assignment_expression "unaff_s8 = (uint *******)(pbVar8 + -(int)param_2)" (identifier "unaff_s8") (= "=") (cast_expression "(uint *******)(pbVar8 + -(int)param_2)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(pbVar8 + -(int)param_2)" (( "(") (binary_expression "pbVar8 + -(int)param_2" (identifier "pbVar8") (+ "+") (unary_expression "-(int)param_2" (- "-") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")))) () ")")))) (; ";")) (expression_statement "param_1[7] = (int)unaff_s8;" (assignment_expression "param_1[7] = (int)unaff_s8" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(int)unaff_s8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s8"))) (; ";")) (} "}")))) (expression_statement "pppppppuVar24 = param_3;" (assignment_expression "pppppppuVar24 = param_3" (identifier "pppppppuVar24") (= "=") (identifier "param_3")) (; ";")) (expression_statement "iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));" (assignment_expression "iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1))" (identifier "iVar25") (= "=") (call_expression "FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1))" (identifier "FUN_0001cb50") (argument_list "(param_1,(byte *)((int)unaff_s2 + -1))" (( "(") (identifier "param_1") (, ",") (cast_expression "(byte *)((int)unaff_s2 + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s2 + -1)" (( "(") (binary_expression "(int)unaff_s2 + -1" (cast_expression "(int)unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s2")) (+ "+") (number_literal "-1")) () ")"))) () ")")))) (; ";")) (expression_statement "param_1[0xf] = iVar25;" (assignment_expression "param_1[0xf] = iVar25" (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "iVar25")) (; ";")) (} "}")) (else_clause "else {\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }" (else "else") (compound_statement "{\n          pppppppuVar16 = (uint *******)*param_1;\n          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));\n          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));\n          if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }\n          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n          bVar2 = *(byte *)unaff_s3;\n          while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }\n          iVar25 = param_1[0x10];\n          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));\n          pppppppuVar16 = unaff_s3;\n          if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }\n          local_3c = 0;\n          local_38 = 0;\n          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);\n          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;\n          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\n          unaff_s8 = (uint *******)(uVar34 - uVar26);\n          param_1[4] = 0;\n          param_1[5] = 0;\n          param_1[7] = (int)unaff_s8;\n          unaff_s3 = local_40;\n          if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }\nLAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }\n          param_1[0xf] = iVar25;\n        }" ({ "{") (expression_statement "pppppppuVar16 = (uint *******)*param_1;" (assignment_expression "pppppppuVar16 = (uint *******)*param_1" (identifier "pppppppuVar16") (= "=") (cast_expression "(uint *******)*param_1" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);" (assignment_expression "unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8)" (identifier "unaff_s7") (= "=") (cast_expression "(uint *******)((int)pppppppuVar16 + (int)unaff_s8)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppuVar16 + (int)unaff_s8)" (( "(") (binary_expression "(int)pppppppuVar16 + (int)unaff_s8" (cast_expression "(int)pppppppuVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar16")) (+ "+") (cast_expression "(int)unaff_s8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s8"))) () ")")))) (; ";")) (expression_statement "pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));" (assignment_expression "pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28))" (identifier "pppppppuVar24") (= "=") (cast_expression "(uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28))" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28))" (( "(") (binary_expression "(int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28)" (cast_expression "(int)unaff_s7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s7")) (+ "+") (parenthesized_expression "((int)pppppppuVar40 - (int)pppppppuVar28)" (( "(") (binary_expression "(int)pppppppuVar40 - (int)pppppppuVar28" (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40")) (- "-") (cast_expression "(int)pppppppuVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar28"))) () ")"))) () ")")))) (; ";")) (expression_statement "unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));" (assignment_expression "unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1))" (identifier "unaff_s3") (= "=") (cast_expression "(uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1))" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)unaff_s7 + (int)((int)pppppppuVar40 + -1))" (( "(") (binary_expression "(int)unaff_s7 + (int)((int)pppppppuVar40 + -1)" (cast_expression "(int)unaff_s7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s7")) (+ "+") (cast_expression "(int)((int)pppppppuVar40 + -1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)pppppppuVar40 + -1)" (( "(") (binary_expression "(int)pppppppuVar40 + -1" (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40")) (+ "+") (number_literal "-1")) () ")")))) () ")")))) (; ";")) (if_statement "if (pppppppuVar24 <= pppppppuVar16) {\n            pppppppuVar24 = pppppppuVar16;\n          }" (if "if") (parenthesized_expression "(pppppppuVar24 <= pppppppuVar16)" (( "(") (binary_expression "pppppppuVar24 <= pppppppuVar16" (identifier "pppppppuVar24") (<= "<=") (identifier "pppppppuVar16")) () ")")) (compound_statement "{\n            pppppppuVar24 = pppppppuVar16;\n          }" ({ "{") (expression_statement "pppppppuVar24 = pppppppuVar16;" (assignment_expression "pppppppuVar24 = pppppppuVar16" (identifier "pppppppuVar24") (= "=") (identifier "pppppppuVar16")) (; ";")) (} "}"))) (if_statement "if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;" (if "if") (parenthesized_expression "(unaff_s3 < pppppppuVar24)" (( "(") (binary_expression "unaff_s3 < pppppppuVar24" (identifier "unaff_s3") (< "<") (identifier "pppppppuVar24")) () ")")) (goto_statement "goto LAB_0001d228;" (goto "goto") (statement_identifier "LAB_0001d228") (; ";"))) (expression_statement "bVar2 = *(byte *)unaff_s3;" (assignment_expression "bVar2 = *(byte *)unaff_s3" (identifier "bVar2") (= "=") (pointer_expression "*(byte *)unaff_s3" (* "*") (cast_expression "(byte *)unaff_s3" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "unaff_s3")))) (; ";")) (while_statement "while ((bVar2 & 0xc0) == 0x80) {\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }" (while "while") (parenthesized_expression "((bVar2 & 0xc0) == 0x80)" (( "(") (binary_expression "(bVar2 & 0xc0) == 0x80" (parenthesized_expression "(bVar2 & 0xc0)" (( "(") (binary_expression "bVar2 & 0xc0" (identifier "bVar2") (& "&") (number_literal "0xc0")) () ")")) (== "==") (number_literal "0x80")) () ")")) (compound_statement "{\n            unaff_s3 = (uint *******)((int)unaff_s3 + -1);\n            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;\n            bVar2 = *(byte *)unaff_s3;\n          }" ({ "{") (expression_statement "unaff_s3 = (uint *******)((int)unaff_s3 + -1);" (assignment_expression "unaff_s3 = (uint *******)((int)unaff_s3 + -1)" (identifier "unaff_s3") (= "=") (cast_expression "(uint *******)((int)unaff_s3 + -1)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)unaff_s3 + -1)" (( "(") (binary_expression "(int)unaff_s3 + -1" (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (if_statement "if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;" (if "if") (parenthesized_expression "(unaff_s3 < pppppppuVar24)" (( "(") (binary_expression "unaff_s3 < pppppppuVar24" (identifier "unaff_s3") (< "<") (identifier "pppppppuVar24")) () ")")) (goto_statement "goto LAB_0001d228;" (goto "goto") (statement_identifier "LAB_0001d228") (; ";"))) (expression_statement "bVar2 = *(byte *)unaff_s3;" (assignment_expression "bVar2 = *(byte *)unaff_s3" (identifier "bVar2") (= "=") (pointer_expression "*(byte *)unaff_s3" (* "*") (cast_expression "(byte *)unaff_s3" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "unaff_s3")))) (; ";")) (} "}"))) (expression_statement "iVar25 = param_1[0x10];" (assignment_expression "iVar25 = param_1[0x10]" (identifier "iVar25") (= "=") (subscript_expression "param_1[0x10]" (identifier "param_1") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (expression_statement "pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));" (assignment_expression "pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3))" (identifier "pppppppuVar24") (= "=") (cast_expression "(uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3))" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3))" (( "(") (binary_expression "(int)unaff_s7 + (param_1[0xc] - (int)unaff_s3)" (cast_expression "(int)unaff_s7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s7")) (+ "+") (parenthesized_expression "(param_1[0xc] - (int)unaff_s3)" (( "(") (binary_expression "param_1[0xc] - (int)unaff_s3" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (- "-") (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3"))) () ")"))) () ")")))) (; ";")) (expression_statement "pppppppuVar16 = unaff_s3;" (assignment_expression "pppppppuVar16 = unaff_s3" (identifier "pppppppuVar16") (= "=") (identifier "unaff_s3")) (; ";")) (if_statement "if (iVar25 != 0) {\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }" (if "if") (parenthesized_expression "(iVar25 != 0)" (( "(") (binary_expression "iVar25 != 0" (identifier "iVar25") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            pppppppuVar22 = (uint *******)0x6;\n            if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }\n            pppppppuVar16 = appppppuStack_34;\n            if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }\n          }" ({ "{") (expression_statement "pppppppuVar22 = (uint *******)0x6;" (assignment_expression "pppppppuVar22 = (uint *******)0x6" (identifier "pppppppuVar22") (= "=") (cast_expression "(uint *******)0x6" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x6"))) (; ";")) (if_statement "if ((int)pppppppuVar24 < 7) {\n              pppppppuVar22 = pppppppuVar24;\n            }" (if "if") (parenthesized_expression "((int)pppppppuVar24 < 7)" (( "(") (binary_expression "(int)pppppppuVar24 < 7" (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24")) (< "<") (number_literal "7")) () ")")) (compound_statement "{\n              pppppppuVar22 = pppppppuVar24;\n            }" ({ "{") (expression_statement "pppppppuVar22 = pppppppuVar24;" (assignment_expression "pppppppuVar22 = pppppppuVar24" (identifier "pppppppuVar22") (= "=") (identifier "pppppppuVar24")) (; ";")) (} "}"))) (expression_statement "pppppppuVar16 = appppppuStack_34;" (assignment_expression "pppppppuVar16 = appppppuStack_34" (identifier "pppppppuVar16") (= "=") (identifier "appppppuStack_34")) (; ";")) (if_statement "if (0 < (int)pppppppuVar24) {\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }" (if "if") (parenthesized_expression "(0 < (int)pppppppuVar24)" (( "(") (binary_expression "0 < (int)pppppppuVar24" (number_literal "0") (< "<") (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24"))) () ")")) (compound_statement "{\n              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);\n              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);\n              do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);\n            }" ({ "{") (expression_statement "pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);" (assignment_expression "pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22)" (identifier "pbVar8") (= "=") (cast_expression "(byte *)((int)unaff_s3 + (int)pppppppuVar22)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s3 + (int)pppppppuVar22)" (( "(") (binary_expression "(int)unaff_s3 + (int)pppppppuVar22" (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")) (+ "+") (cast_expression "(int)pppppppuVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar22"))) () ")")))) (; ";")) (expression_statement "pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);" (assignment_expression "pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22)" (identifier "pppppppuVar22") (= "=") (cast_expression "(uint *******)((int)pppppppuVar16 + (int)pppppppuVar22)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppuVar16 + (int)pppppppuVar22)" (( "(") (binary_expression "(int)pppppppuVar16 + (int)pppppppuVar22" (cast_expression "(int)pppppppuVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar16")) (+ "+") (cast_expression "(int)pppppppuVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar22"))) () ")")))) (; ";")) (do_statement "do {\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              } while (pppppppuVar16 != pppppppuVar22);" (do "do") (compound_statement "{\n                pbVar1 = pbVar8 + -1;\n                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);\n                pbVar8 = pbVar8 + -1;\n                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);\n              }" ({ "{") (expression_statement "pbVar1 = pbVar8 + -1;" (assignment_expression "pbVar1 = pbVar8 + -1" (identifier "pbVar1") (= "=") (binary_expression "pbVar8 + -1" (identifier "pbVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);" (assignment_expression "pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1)" (identifier "pppppppuVar22") (= "=") (cast_expression "(uint *******)((int)pppppppuVar22 + -1)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppuVar22 + -1)" (( "(") (binary_expression "(int)pppppppuVar22 + -1" (cast_expression "(int)pppppppuVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar22")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "pbVar8 = pbVar8 + -1;" (assignment_expression "pbVar8 = pbVar8 + -1" (identifier "pbVar8") (= "=") (binary_expression "pbVar8 + -1" (identifier "pbVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);" (assignment_expression "*(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1)" (pointer_expression "*(byte *)pppppppuVar22" (* "*") (cast_expression "(byte *)pppppppuVar22" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppppppuVar22"))) (= "=") (pointer_expression "*(byte *)(iVar25 + (uint)*pbVar1)" (* "*") (cast_expression "(byte *)(iVar25 + (uint)*pbVar1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + (uint)*pbVar1)" (( "(") (binary_expression "iVar25 + (uint)*pbVar1" (identifier "iVar25") (+ "+") (binary_expression "(uint)*pbVar1" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar1"))) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppppuVar16 != pppppppuVar22)" (( "(") (binary_expression "pppppppuVar16 != pppppppuVar22" (identifier "pppppppuVar16") (!= "!=") (identifier "pppppppuVar22")) () ")")) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" (identifier "local_3c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" (identifier "local_38") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);" (assignment_expression "uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16)" (identifier "uVar34") (= "=") (call_expression "rpl_mbrtowc(&local_40,pppppppuVar16)" (identifier "rpl_mbrtowc") (argument_list "(&local_40,pppppppuVar16)" (( "(") (pointer_expression "&local_40" (& "&") (identifier "local_40")) (, ",") (identifier "pppppppuVar16") () ")")))) (; ";")) (expression_statement "uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;" (assignment_expression "uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3" (identifier "uVar26") (= "=") (binary_expression "(int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3" (cast_expression "(int)((int)unaff_s7 + (int)pppppppuVar40)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)unaff_s7 + (int)pppppppuVar40)" (( "(") (binary_expression "(int)unaff_s7 + (int)pppppppuVar40" (cast_expression "(int)unaff_s7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s7")) (+ "+") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40"))) () ")"))) (- "-") (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")))) (; ";")) (if_statement "if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }" (if "if") (parenthesized_expression "((uVar34 < uVar26) || (0xfffffffd < uVar34))" (( "(") (binary_expression "(uVar34 < uVar26) || (0xfffffffd < uVar34)" (parenthesized_expression "(uVar34 < uVar26)" (( "(") (binary_expression "uVar34 < uVar26" (identifier "uVar34") (< "<") (identifier "uVar26")) () ")")) (|| "||") (parenthesized_expression "(0xfffffffd < uVar34)" (( "(") (binary_expression "0xfffffffd < uVar34" (number_literal "0xfffffffd") (< "<") (identifier "uVar34")) () ")"))) () ")")) (compound_statement "{\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }" ({ "{") (expression_statement "unaff_s8 = (uint *******)param_1[6];" (assignment_expression "unaff_s8 = (uint *******)param_1[6]" (identifier "unaff_s8") (= "=") (cast_expression "(uint *******)param_1[6]" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "iVar25 = param_1[8];" (assignment_expression "iVar25 = param_1[8]" (identifier "iVar25") (= "=") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) (; ";")) (goto_statement "goto LAB_0001d228;" (goto "goto") (statement_identifier "LAB_0001d228") (; ";")) (} "}"))) (expression_statement "unaff_s8 = (uint *******)(uVar34 - uVar26);" (assignment_expression "unaff_s8 = (uint *******)(uVar34 - uVar26)" (identifier "unaff_s8") (= "=") (cast_expression "(uint *******)(uVar34 - uVar26)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(uVar34 - uVar26)" (( "(") (binary_expression "uVar34 - uVar26" (identifier "uVar34") (- "-") (identifier "uVar26")) () ")")))) (; ";")) (expression_statement "param_1[4] = 0;" (assignment_expression "param_1[4] = 0" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[7] = (int)unaff_s8;" (assignment_expression "param_1[7] = (int)unaff_s8" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(int)unaff_s8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s8"))) (; ";")) (expression_statement "unaff_s3 = local_40;" (assignment_expression "unaff_s3 = local_40" (identifier "unaff_s3") (= "=") (identifier "local_40")) (; ";")) (if_statement "if (local_40 == (uint *******)0xffffffff) {\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }" (if "if") (parenthesized_expression "(local_40 == (uint *******)0xffffffff)" (( "(") (binary_expression "local_40 == (uint *******)0xffffffff" (identifier "local_40") (== "==") (cast_expression "(uint *******)0xffffffff" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\n            unaff_s8 = (uint *******)param_1[6];\n            iVar25 = param_1[8];\n            goto LAB_0001d228;\n          }" ({ "{") (expression_statement "unaff_s8 = (uint *******)param_1[6];" (assignment_expression "unaff_s8 = (uint *******)param_1[6]" (identifier "unaff_s8") (= "=") (cast_expression "(uint *******)param_1[6]" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "iVar25 = param_1[8];" (assignment_expression "iVar25 = param_1[8]" (identifier "iVar25") (= "=") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) (; ";")) (goto_statement "goto LAB_0001d228;" (goto "goto") (statement_identifier "LAB_0001d228") (; ";")) (} "}"))) (labeled_statement "LAB_0001d2a4:\n          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }" (statement_identifier "LAB_0001d2a4") (: ":") (if_statement "if ((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))) {\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }\n          else {\n            iVar25 = 1;\n          }" (if "if") (parenthesized_expression "((*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f))))" (( "(") (binary_expression "(*(char *)((int)param_1 + 0x4e) == '\0') ||\n             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))" (parenthesized_expression "(*(char *)((int)param_1 + 0x4e) == '\0')" (( "(") (binary_expression "*(char *)((int)param_1 + 0x4e) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x4e)" (* "*") (cast_expression "(char *)((int)param_1 + 0x4e)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x4e)" (( "(") (binary_expression "(int)param_1 + 0x4e" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x4e")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)))" (( "(") (parenthesized_expression "(iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f))" (( "(") (comma_expression "iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)" (assignment_expression "iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3)" (identifier "iVar25") (= "=") (call_expression "(*(code *)PTR_iswalnum_0003c288)(unaff_s3)" (parenthesized_expression "(*(code *)PTR_iswalnum_0003c288)" (( "(") (pointer_expression "*(code *)PTR_iswalnum_0003c288" (* "*") (cast_expression "(code *)PTR_iswalnum_0003c288" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_iswalnum_0003c288"))) () ")")) (argument_list "(unaff_s3)" (( "(") (identifier "unaff_s3") () ")")))) (, ",") (binary_expression "iVar25 == 0 &&\n              (unaff_s3 != (uint *******)0x5f)" (binary_expression "iVar25 == 0" (identifier "iVar25") (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(unaff_s3 != (uint *******)0x5f)" (( "(") (binary_expression "unaff_s3 != (uint *******)0x5f" (identifier "unaff_s3") (!= "!=") (cast_expression "(uint *******)0x5f" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x5f"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n            iVar25 = 2;\n            if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }\n          }" ({ "{") (expression_statement "iVar25 = 2;" (assignment_expression "iVar25 = 2" (identifier "iVar25") (= "=") (number_literal "2")) (; ";")) (if_statement "if (unaff_s3 == (uint *******)0xa) {\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }\n            else {\n              iVar25 = 0;\n            }" (if "if") (parenthesized_expression "(unaff_s3 == (uint *******)0xa)" (( "(") (binary_expression "unaff_s3 == (uint *******)0xa" (identifier "unaff_s3") (== "==") (cast_expression "(uint *******)0xa" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xa"))) () ")")) (compound_statement "{\n              if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }\n            }" ({ "{") (if_statement "if (*(char *)((int)param_1 + 0x4d) == '\0') {\n                iVar25 = 0;\n              }" (if "if") (parenthesized_expression "(*(char *)((int)param_1 + 0x4d) == '\0')" (( "(") (binary_expression "*(char *)((int)param_1 + 0x4d) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x4d)" (* "*") (cast_expression "(char *)((int)param_1 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x4d)" (( "(") (binary_expression "(int)param_1 + 0x4d" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x4d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                iVar25 = 0;\n              }" ({ "{") (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" (identifier "iVar25") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              iVar25 = 0;\n            }" (else "else") (compound_statement "{\n              iVar25 = 0;\n            }" ({ "{") (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" (identifier "iVar25") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            iVar25 = 1;\n          }" (else "else") (compound_statement "{\n            iVar25 = 1;\n          }" ({ "{") (expression_statement "iVar25 = 1;" (assignment_expression "iVar25 = 1" (identifier "iVar25") (= "=") (number_literal "1")) (; ";")) (} "}"))))) (expression_statement "param_1[0xf] = iVar25;" (assignment_expression "param_1[0xf] = iVar25" (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "iVar25")) (; ";")) (} "}")))) (expression_statement "pppppppuVar16 = pppppppuVar24;" (assignment_expression "pppppppuVar16 = pppppppuVar24" (identifier "pppppppuVar16") (= "=") (identifier "pppppppuVar24")) (; ";")) (if_statement "if (unaff_s8 == (uint *******)0x0) {\nLAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }\n        else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }" (if "if") (parenthesized_expression "(unaff_s8 == (uint *******)0x0)" (( "(") (binary_expression "unaff_s8 == (uint *******)0x0" (identifier "unaff_s8") (== "==") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);\n          pppppppuVar24 = pppppppuVar16;\n        }" ({ "{") (labeled_statement "LAB_0001d2cc:\n          cVar15 = *(char *)((int)param_1 + 0x4b);" (statement_identifier "LAB_0001d2cc") (: ":") (expression_statement "cVar15 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar15 = *(char *)((int)param_1 + 0x4b)" (identifier "cVar15") (= "=") (pointer_expression "*(char *)((int)param_1 + 0x4b)" (* "*") (cast_expression "(char *)((int)param_1 + 0x4b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x4b)" (( "(") (binary_expression "(int)param_1 + 0x4b" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x4b")) () ")"))))) (; ";"))) (expression_statement "pppppppuVar24 = pppppppuVar16;" (assignment_expression "pppppppuVar24 = pppppppuVar16" (identifier "pppppppuVar24") (= "=") (identifier "pppppppuVar16")) (; ";")) (} "}")) (else_clause "else {\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }" (else "else") (compound_statement "{\n          iVar25 = 0;\n          pppppppuVar16 = unaff_s8;\n          if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }\n          if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }\n          unaff_s8 = (uint *******)param_1[7];\n          cVar15 = '\0';\n        }" ({ "{") (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" (identifier "iVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "pppppppuVar16 = unaff_s8;" (assignment_expression "pppppppuVar16 = unaff_s8" (identifier "pppppppuVar16") (= "=") (identifier "unaff_s8")) (; ";")) (if_statement "if (0 < (int)unaff_s8) {\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }" (if "if") (parenthesized_expression "(0 < (int)unaff_s8)" (( "(") (binary_expression "0 < (int)unaff_s8" (number_literal "0") (< "<") (cast_expression "(int)unaff_s8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s8"))) () ")")) (compound_statement "{\n            puVar9 = (undefined4 *)param_1[2];\n            do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);\n          }" ({ "{") (expression_statement "puVar9 = (undefined4 *)param_1[2];" (assignment_expression "puVar9 = (undefined4 *)param_1[2]" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)param_1[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (do_statement "do {\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            } while (iVar25 < (int)pppppppuVar16);" (do "do") (compound_statement "{\n              *puVar9 = 0xffffffff;\n              iVar25 = iVar25 + 1;\n              pppppppuVar16 = (uint *******)param_1[7];\n              puVar9 = puVar9 + 1;\n            }" ({ "{") (expression_statement "*puVar9 = 0xffffffff;" (assignment_expression "*puVar9 = 0xffffffff" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" (identifier "iVar25") (= "=") (binary_expression "iVar25 + 1" (identifier "iVar25") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppppuVar16 = (uint *******)param_1[7];" (assignment_expression "pppppppuVar16 = (uint *******)param_1[7]" (identifier "pppppppuVar16") (= "=") (cast_expression "(uint *******)param_1[7]" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")))) (; ";")) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar25 < (int)pppppppuVar16)" (( "(") (binary_expression "iVar25 < (int)pppppppuVar16" (identifier "iVar25") (< "<") (cast_expression "(int)pppppppuVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar16"))) () ")")) (; ";")) (} "}"))) (if_statement "if (*(char *)((int)param_1 + 0x4b) != '\0') {\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }" (if "if") (parenthesized_expression "(*(char *)((int)param_1 + 0x4b) != '\0')" (( "(") (binary_expression "*(char *)((int)param_1 + 0x4b) != '\0'" (pointer_expression "*(char *)((int)param_1 + 0x4b)" (* "*") (cast_expression "(char *)((int)param_1 + 0x4b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x4b)" (( "(") (binary_expression "(int)param_1 + 0x4b" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x4b")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);\n            unaff_s8 = (uint *******)param_1[7];\n            goto LAB_0001d2cc;\n          }" ({ "{") (expression_statement "(*(code *)PTR_memset_0003c290)(param_1[1],0xff);" (call_expression "(*(code *)PTR_memset_0003c290)(param_1[1],0xff)" (parenthesized_expression "(*(code *)PTR_memset_0003c290)" (( "(") (pointer_expression "*(code *)PTR_memset_0003c290" (* "*") (cast_expression "(code *)PTR_memset_0003c290" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memset_0003c290"))) () ")")) (argument_list "(param_1[1],0xff)" (( "(") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0xff") () ")"))) (; ";")) (expression_statement "unaff_s8 = (uint *******)param_1[7];" (assignment_expression "unaff_s8 = (uint *******)param_1[7]" (identifier "unaff_s8") (= "=") (cast_expression "(uint *******)param_1[7]" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")))) (; ";")) (goto_statement "goto LAB_0001d2cc;" (goto "goto") (statement_identifier "LAB_0001d2cc") (; ";")) (} "}"))) (expression_statement "unaff_s8 = (uint *******)param_1[7];" (assignment_expression "unaff_s8 = (uint *******)param_1[7]" (identifier "unaff_s8") (= "=") (cast_expression "(uint *******)param_1[7]" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")))) (; ";")) (expression_statement "cVar15 = '\0';" (assignment_expression "cVar15 = '\0'" (identifier "cVar15") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}")))) (expression_statement "pppppppuVar28 = (uint *******)param_1[0x14];" (assignment_expression "pppppppuVar28 = (uint *******)param_1[0x14]" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)param_1[0x14]" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[0x14]" (identifier "param_1") ([ "[") (number_literal "0x14") (] "]")))) (; ";")) (expression_statement "param_1[8] = (int)unaff_s8;" (assignment_expression "param_1[8] = (int)unaff_s8" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (cast_expression "(int)unaff_s8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s8"))) (; ";")) (expression_statement "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);" (assignment_expression "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40)" (identifier "pppppppuVar16") (= "=") (cast_expression "(uint *******)(param_1[0xc] - (int)pppppppuVar40)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[0xc] - (int)pppppppuVar40)" (( "(") (binary_expression "param_1[0xc] - (int)pppppppuVar40" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (- "-") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40"))) () ")")))) (; ";")) (expression_statement "iVar25 = param_1[0xe] - (int)pppppppuVar40;" (assignment_expression "iVar25 = param_1[0xe] - (int)pppppppuVar40" (identifier "iVar25") (= "=") (binary_expression "param_1[0xe] - (int)pppppppuVar40" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (- "-") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40")))) (; ";")) (goto_statement "goto LAB_0001d090;" (goto "goto") (statement_identifier "LAB_0001d090") (; ";")) (} "}"))) (expression_statement "uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];" (assignment_expression "uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1]" (identifier "uVar34") (= "=") (subscript_expression "(uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1]" (call_expression "(uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)" (( "(") (binary_expression "(byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8" (cast_expression "(byte *)(*param_1 + (int)pppppppuVar40)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + (int)pppppppuVar40)" (( "(") (binary_expression "*param_1 + (int)pppppppuVar40" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40"))) () ")"))) (+ "+") (cast_expression "(int)unaff_s8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s8"))) () ")"))) ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "param_1[8] = 0;" (assignment_expression "param_1[8] = 0" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_1[0x10] != 0) {\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }" (if "if") (parenthesized_expression "(param_1[0x10] != 0)" (( "(") (binary_expression "param_1[0x10] != 0" (subscript_expression "param_1[0x10]" (identifier "param_1") ([ "[") (number_literal "0x10") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);\n      }" ({ "{") (expression_statement "uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);" (assignment_expression "uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34)" (identifier "uVar34") (= "=") (binary_expression "(uint)*(byte *)(param_1[0x10] + uVar34)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(param_1[0x10] + uVar34)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0x10] + uVar34)" (( "(") (binary_expression "param_1[0x10] + uVar34" (subscript_expression "param_1[0x10]" (identifier "param_1") ([ "[") (number_literal "0x10") (] "]")) (+ "+") (identifier "uVar34")) () ")"))))) (; ";")) (} "}"))) (expression_statement "pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);" (assignment_expression "pppppppuVar24 =\n           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1)" (identifier "pppppppuVar24") (= "=") (cast_expression "(uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1)" (( "(") (binary_expression "*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1" (binary_expression "*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f)" (pointer_expression "*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4)" (* "*") (cast_expression "(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0x11] + ((int)uVar34 >> 5) * 4)" (( "(") (binary_expression "param_1[0x11] + ((int)uVar34 >> 5) * 4" (subscript_expression "param_1[0x11]" (identifier "param_1") ([ "[") (number_literal "0x11") (] "]")) (+ "+") (binary_expression "((int)uVar34 >> 5) * 4" (parenthesized_expression "((int)uVar34 >> 5)" (( "(") (binary_expression "(int)uVar34 >> 5" (cast_expression "(int)uVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar34")) (>> ">>") (number_literal "5")) () ")")) (* "*") (number_literal "4"))) () ")")))) (>> ">>") (parenthesized_expression "(uVar34 & 0x1f)" (( "(") (binary_expression "uVar34 & 0x1f" (identifier "uVar34") (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {\n        pppppppuVar24 = (uint *******)0x0;\n      }" (if "if") (parenthesized_expression "(((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0'))" (( "(") (binary_expression "((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&\n         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')" (parenthesized_expression "((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10))" (( "(") (binary_expression "(pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)" (parenthesized_expression "(pppppppuVar24 == (uint *******)0x0)" (( "(") (binary_expression "pppppppuVar24 == (uint *******)0x0" (identifier "pppppppuVar24") (== "==") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(uVar34 == 10)" (( "(") (binary_expression "uVar34 == 10" (identifier "uVar34") (== "==") (number_literal "10")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')" (( "(") (comma_expression "pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0'" (assignment_expression "pppppppuVar24 = (uint *******)0x2" (identifier "pppppppuVar24") (= "=") (cast_expression "(uint *******)0x2" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x2"))) (, ",") (binary_expression "*(char *)((int)param_1 + 0x4d) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x4d)" (* "*") (cast_expression "(char *)((int)param_1 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x4d)" (( "(") (binary_expression "(int)param_1 + 0x4d" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x4d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n        pppppppuVar24 = (uint *******)0x0;\n      }" ({ "{") (expression_statement "pppppppuVar24 = (uint *******)0x0;" (assignment_expression "pppppppuVar24 = (uint *******)0x0" (identifier "pppppppuVar24") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (expression_statement "cVar15 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar15 = *(char *)((int)param_1 + 0x4b)" (identifier "cVar15") (= "=") (pointer_expression "*(char *)((int)param_1 + 0x4b)" (* "*") (cast_expression "(char *)((int)param_1 + 0x4b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x4b)" (( "(") (binary_expression "(int)param_1 + 0x4b" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x4b")) () ")"))))) (; ";")) (expression_statement "param_1[0xf] = (int)pppppppuVar24;" (assignment_expression "param_1[0xf] = (int)pppppppuVar24" (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24"))) (; ";")) (expression_statement "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);" (assignment_expression "pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40)" (identifier "pppppppuVar16") (= "=") (cast_expression "(uint *******)(param_1[0xc] - (int)pppppppuVar40)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[0xc] - (int)pppppppuVar40)" (( "(") (binary_expression "param_1[0xc] - (int)pppppppuVar40" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (- "-") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40"))) () ")")))) (; ";")) (expression_statement "iVar25 = param_1[0xe] - (int)pppppppuVar40;" (assignment_expression "iVar25 = param_1[0xe] - (int)pppppppuVar40" (identifier "iVar25") (= "=") (binary_expression "param_1[0xe] - (int)pppppppuVar40" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (- "-") (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40")))) (; ";")) (if_statement "if (cVar15 == '\0') goto LAB_0001d098;" (if "if") (parenthesized_expression "(cVar15 == '\0')" (( "(") (binary_expression "cVar15 == '\0'" (identifier "cVar15") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0001d098;" (goto "goto") (statement_identifier "LAB_0001d098") (; ";"))) (expression_statement "param_1[6] = (int)param_2;" (assignment_expression "param_1[6] = (int)param_2" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) (; ";")) (expression_statement "param_1[0xc] = (int)pppppppuVar16;" (assignment_expression "param_1[0xc] = (int)pppppppuVar16" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (cast_expression "(int)pppppppuVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar16"))) (; ";")) (expression_statement "param_1[0xe] = iVar25;" (assignment_expression "param_1[0xe] = iVar25" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "iVar25")) (; ";")) (} "}")))) (if_statement "if (cVar15 == '\0') {\n      param_1[7] = (int)pppppppuVar16;\n    }\n    else if (*(char *)(param_1 + 0x12) == '\0') {\n      pppppppuVar22 = (uint *******)param_1[0x10];\n      if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }\n    }\n    else {\n      FUN_000187d0(param_1);\n    }" (if "if") (parenthesized_expression "(cVar15 == '\0')" (( "(") (binary_expression "cVar15 == '\0'" (identifier "cVar15") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      param_1[7] = (int)pppppppuVar16;\n    }" ({ "{") (expression_statement "param_1[7] = (int)pppppppuVar16;" (assignment_expression "param_1[7] = (int)pppppppuVar16" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(int)pppppppuVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar16"))) (; ";")) (} "}")) (else_clause "else if (*(char *)(param_1 + 0x12) == '\0') {\n      pppppppuVar22 = (uint *******)param_1[0x10];\n      if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }\n    }\n    else {\n      FUN_000187d0(param_1);\n    }" (else "else") (if_statement "if (*(char *)(param_1 + 0x12) == '\0') {\n      pppppppuVar22 = (uint *******)param_1[0x10];\n      if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }\n    }\n    else {\n      FUN_000187d0(param_1);\n    }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x12) == '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x12) == '\0'" (pointer_expression "*(char *)(param_1 + 0x12)" (* "*") (cast_expression "(char *)(param_1 + 0x12)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x12)" (( "(") (binary_expression "param_1 + 0x12" (identifier "param_1") (+ "+") (number_literal "0x12")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      pppppppuVar22 = (uint *******)param_1[0x10];\n      if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }\n    }" ({ "{") (expression_statement "pppppppuVar22 = (uint *******)param_1[0x10];" (assignment_expression "pppppppuVar22 = (uint *******)param_1[0x10]" (identifier "pppppppuVar22") (= "=") (cast_expression "(uint *******)param_1[0x10]" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[0x10]" (identifier "param_1") ([ "[") (number_literal "0x10") (] "]")))) (; ";")) (if_statement "if (pppppppuVar22 != (uint *******)0x0) {\n        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }" (if "if") (parenthesized_expression "(pppppppuVar22 != (uint *******)0x0)" (( "(") (binary_expression "pppppppuVar22 != (uint *******)0x0" (identifier "pppppppuVar22") (!= "!=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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        pppppppuVar24 = (uint *******)param_1[9];\n        pppppppuVar18 = (uint *******)param_1[7];\n        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }\n        if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }\n      }" ({ "{") (expression_statement "pppppppuVar24 = (uint *******)param_1[9];" (assignment_expression "pppppppuVar24 = (uint *******)param_1[9]" (identifier "pppppppuVar24") (= "=") (cast_expression "(uint *******)param_1[9]" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")))) (; ";")) (expression_statement "pppppppuVar18 = (uint *******)param_1[7];" (assignment_expression "pppppppuVar18 = (uint *******)param_1[7]" (identifier "pppppppuVar18") (= "=") (cast_expression "(uint *******)param_1[7]" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")))) (; ";")) (if_statement "if ((int)pppppppuVar24 <= (int)pppppppuVar16) {\n          pppppppuVar16 = pppppppuVar24;\n        }" (if "if") (parenthesized_expression "((int)pppppppuVar24 <= (int)pppppppuVar16)" (( "(") (binary_expression "(int)pppppppuVar24 <= (int)pppppppuVar16" (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24")) (<= "<=") (cast_expression "(int)pppppppuVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar16"))) () ")")) (compound_statement "{\n          pppppppuVar16 = pppppppuVar24;\n        }" ({ "{") (expression_statement "pppppppuVar16 = pppppppuVar24;" (assignment_expression "pppppppuVar16 = pppppppuVar24" (identifier "pppppppuVar16") (= "=") (identifier "pppppppuVar24")) (; ";")) (} "}"))) (if_statement "if ((int)pppppppuVar18 < (int)pppppppuVar16) {\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }\n        else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }" (if "if") (parenthesized_expression "((int)pppppppuVar18 < (int)pppppppuVar16)" (( "(") (binary_expression "(int)pppppppuVar18 < (int)pppppppuVar16" (cast_expression "(int)pppppppuVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar18")) (< "<") (cast_expression "(int)pppppppuVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar16"))) () ")")) (compound_statement "{\n          while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }\n          param_1[7] = (int)pppppppuVar16;\n          param_1[8] = (int)pppppppuVar16;\n        }" ({ "{") (while_statement "while( true ) {\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);\n            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);\n            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);\n            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);\n            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;\n            if (pppppppuVar16 == pppppppuVar18) break;\n            param_2 = (uint *******)param_1[6];\n            pppppppuVar22 = (uint *******)param_1[0x10];\n          }" ({ "{") (expression_statement "pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);" (assignment_expression "pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18)" (identifier "pppppppuVar24") (= "=") (cast_expression "(uint *******)(param_1[1] + (int)pppppppuVar18)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[1] + (int)pppppppuVar18)" (( "(") (binary_expression "param_1[1] + (int)pppppppuVar18" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (cast_expression "(int)pppppppuVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar18"))) () ")")))) (; ";")) (expression_statement "param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);" (assignment_expression "param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2)" (identifier "param_2") (= "=") (cast_expression "(uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2)" (( "(") (binary_expression "(byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2" (cast_expression "(byte *)(*param_1 + (int)pppppppuVar18)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + (int)pppppppuVar18)" (( "(") (binary_expression "*param_1 + (int)pppppppuVar18" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (cast_expression "(int)pppppppuVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar18"))) () ")"))) (+ "+") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")))) (; ";")) (expression_statement "pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);" (assignment_expression "pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1)" (identifier "pppppppuVar18") (= "=") (cast_expression "(uint *******)((int)pppppppuVar18 + 1)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppuVar18 + 1)" (( "(") (binary_expression "(int)pppppppuVar18 + 1" (cast_expression "(int)pppppppuVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar18")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);" (assignment_expression "pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2)" (identifier "pppppppuVar22") (= "=") (cast_expression "(uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppuVar22 + (uint)*(byte *)param_2)" (( "(") (binary_expression "(int)pppppppuVar22 + (uint)*(byte *)param_2" (cast_expression "(int)pppppppuVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar22")) (+ "+") (binary_expression "(uint)*(byte *)param_2" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)param_2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2")))) () ")")))) (; ";")) (expression_statement "*(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;" (assignment_expression "*(byte *)pppppppuVar24 = *(byte *)pppppppuVar22" (pointer_expression "*(byte *)pppppppuVar24" (* "*") (cast_expression "(byte *)pppppppuVar24" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppppppuVar24"))) (= "=") (pointer_expression "*(byte *)pppppppuVar22" (* "*") (cast_expression "(byte *)pppppppuVar22" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppppppuVar22")))) (; ";")) (if_statement "if (pppppppuVar16 == pppppppuVar18) break;" (if "if") (parenthesized_expression "(pppppppuVar16 == pppppppuVar18)" (( "(") (binary_expression "pppppppuVar16 == pppppppuVar18" (identifier "pppppppuVar16") (== "==") (identifier "pppppppuVar18")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "param_2 = (uint *******)param_1[6];" (assignment_expression "param_2 = (uint *******)param_1[6]" (identifier "param_2") (= "=") (cast_expression "(uint *******)param_1[6]" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "pppppppuVar22 = (uint *******)param_1[0x10];" (assignment_expression "pppppppuVar22 = (uint *******)param_1[0x10]" (identifier "pppppppuVar22") (= "=") (cast_expression "(uint *******)param_1[0x10]" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[0x10]" (identifier "param_1") ([ "[") (number_literal "0x10") (] "]")))) (; ";")) (} "}"))) (expression_statement "param_1[7] = (int)pppppppuVar16;" (assignment_expression "param_1[7] = (int)pppppppuVar16" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(int)pppppppuVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar16"))) (; ";")) (expression_statement "param_1[8] = (int)pppppppuVar16;" (assignment_expression "param_1[8] = (int)pppppppuVar16" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (cast_expression "(int)pppppppuVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar16"))) (; ";")) (} "}")) (else_clause "else {\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }" (else "else") (compound_statement "{\n          param_1[7] = (int)pppppppuVar18;\n          param_1[8] = (int)pppppppuVar18;\n        }" ({ "{") (expression_statement "param_1[7] = (int)pppppppuVar18;" (assignment_expression "param_1[7] = (int)pppppppuVar18" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(int)pppppppuVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar18"))) (; ";")) (expression_statement "param_1[8] = (int)pppppppuVar18;" (assignment_expression "param_1[8] = (int)pppppppuVar18" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (cast_expression "(int)pppppppuVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar18"))) (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else {\n      FUN_000187d0(param_1);\n    }" (else "else") (compound_statement "{\n      FUN_000187d0(param_1);\n    }" ({ "{") (expression_statement "FUN_000187d0(param_1);" (call_expression "FUN_000187d0(param_1)" (identifier "FUN_000187d0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (} "}")))))) (labeled_statement "LAB_0001d0dc:\n    pppppppuVar16 = (uint *******)0x0;" (statement_identifier "LAB_0001d0dc") (: ":") (expression_statement "pppppppuVar16 = (uint *******)0x0;" (assignment_expression "pppppppuVar16 = (uint *******)0x0" (identifier "pppppppuVar16") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\nLAB_0001d010:\n    if (pppppppuVar40 != (uint *******)0x0) goto LAB_0001d018;\nLAB_0001d128:\n    pppppppuVar28 = (uint *******)param_1[0x14];\n    pppppppuVar16 = (uint *******)param_1[0xc];\n    pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n    param_1[6] = (int)param_2;\n    param_1[0xc] = (int)pppppppuVar16;\n    param_1[0xe] = param_1[0xe];\n    if (pppppppuVar22 != (uint *******)0x0) goto LAB_0001d148;\nLAB_0001d0b4:\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_000188b4(param_1);\n      goto LAB_0001d0dc;\n    }\n    pppppppuVar16 = (uint *******)FUN_00018b3c();\n    if (pppppppuVar16 == (uint *******)0x0) goto LAB_0001d0dc;\n  }" (else "else") (compound_statement "{\nLAB_0001d010:\n    if (pppppppuVar40 != (uint *******)0x0) goto LAB_0001d018;\nLAB_0001d128:\n    pppppppuVar28 = (uint *******)param_1[0x14];\n    pppppppuVar16 = (uint *******)param_1[0xc];\n    pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);\n    param_1[6] = (int)param_2;\n    param_1[0xc] = (int)pppppppuVar16;\n    param_1[0xe] = param_1[0xe];\n    if (pppppppuVar22 != (uint *******)0x0) goto LAB_0001d148;\nLAB_0001d0b4:\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_000188b4(param_1);\n      goto LAB_0001d0dc;\n    }\n    pppppppuVar16 = (uint *******)FUN_00018b3c();\n    if (pppppppuVar16 == (uint *******)0x0) goto LAB_0001d0dc;\n  }" ({ "{") (labeled_statement "LAB_0001d010:\n    if (pppppppuVar40 != (uint *******)0x0) goto LAB_0001d018;" (statement_identifier "LAB_0001d010") (: ":") (if_statement "if (pppppppuVar40 != (uint *******)0x0) goto LAB_0001d018;" (if "if") (parenthesized_expression "(pppppppuVar40 != (uint *******)0x0)" (( "(") (binary_expression "pppppppuVar40 != (uint *******)0x0" (identifier "pppppppuVar40") (!= "!=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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_0001d018;" (goto "goto") (statement_identifier "LAB_0001d018") (; ";")))) (labeled_statement "LAB_0001d128:\n    pppppppuVar28 = (uint *******)param_1[0x14];" (statement_identifier "LAB_0001d128") (: ":") (expression_statement "pppppppuVar28 = (uint *******)param_1[0x14];" (assignment_expression "pppppppuVar28 = (uint *******)param_1[0x14]" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)param_1[0x14]" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[0x14]" (identifier "param_1") ([ "[") (number_literal "0x14") (] "]")))) (; ";"))) (expression_statement "pppppppuVar16 = (uint *******)param_1[0xc];" (assignment_expression "pppppppuVar16 = (uint *******)param_1[0xc]" (identifier "pppppppuVar16") (= "=") (cast_expression "(uint *******)param_1[0xc]" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (expression_statement "pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);" (assignment_expression "pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2)" (identifier "pppppppuVar22") (= "=") (cast_expression "(uint *******)(uint)((int)pppppppuVar28 < 2)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(uint)((int)pppppppuVar28 < 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pppppppuVar28 < 2)" (( "(") (binary_expression "(int)pppppppuVar28 < 2" (cast_expression "(int)pppppppuVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar28")) (< "<") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "param_1[6] = (int)param_2;" (assignment_expression "param_1[6] = (int)param_2" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) (; ";")) (expression_statement "param_1[0xc] = (int)pppppppuVar16;" (assignment_expression "param_1[0xc] = (int)pppppppuVar16" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (cast_expression "(int)pppppppuVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar16"))) (; ";")) (expression_statement "param_1[0xe] = param_1[0xe];" (assignment_expression "param_1[0xe] = param_1[0xe]" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (if_statement "if (pppppppuVar22 != (uint *******)0x0) goto LAB_0001d148;" (if "if") (parenthesized_expression "(pppppppuVar22 != (uint *******)0x0)" (( "(") (binary_expression "pppppppuVar22 != (uint *******)0x0" (identifier "pppppppuVar22") (!= "!=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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_0001d148;" (goto "goto") (statement_identifier "LAB_0001d148") (; ";"))) (labeled_statement "LAB_0001d0b4:\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_000188b4(param_1);\n      goto LAB_0001d0dc;\n    }" (statement_identifier "LAB_0001d0b4") (: ":") (if_statement "if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_000188b4(param_1);\n      goto LAB_0001d0dc;\n    }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x12) == '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x12) == '\0'" (pointer_expression "*(char *)(param_1 + 0x12)" (* "*") (cast_expression "(char *)(param_1 + 0x12)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x12)" (( "(") (binary_expression "param_1 + 0x12" (identifier "param_1") (+ "+") (number_literal "0x12")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      FUN_000188b4(param_1);\n      goto LAB_0001d0dc;\n    }" ({ "{") (expression_statement "FUN_000188b4(param_1);" (call_expression "FUN_000188b4(param_1)" (identifier "FUN_000188b4") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (goto_statement "goto LAB_0001d0dc;" (goto "goto") (statement_identifier "LAB_0001d0dc") (; ";")) (} "}")))) (expression_statement "pppppppuVar16 = (uint *******)FUN_00018b3c();" (assignment_expression "pppppppuVar16 = (uint *******)FUN_00018b3c()" (identifier "pppppppuVar16") (= "=") (cast_expression "(uint *******)FUN_00018b3c()" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_00018b3c()" (identifier "FUN_00018b3c") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (pppppppuVar16 == (uint *******)0x0) goto LAB_0001d0dc;" (if "if") (parenthesized_expression "(pppppppuVar16 == (uint *******)0x0)" (( "(") (binary_expression "pppppppuVar16 == (uint *******)0x0" (identifier "pppppppuVar16") (== "==") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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_0001d0dc;" (goto "goto") (statement_identifier "LAB_0001d0dc") (; ";"))) (} "}")))) (if_statement "if (local_2c == *(uint ********)puVar4) {\n    return pppppppuVar16;\n  }" (if "if") (parenthesized_expression "(local_2c == *(uint ********)puVar4)" (( "(") (binary_expression "local_2c == *(uint ********)puVar4" (identifier "local_2c") (== "==") (pointer_expression "*(uint ********)puVar4" (* "*") (cast_expression "(uint ********)puVar4" (( "(") (type_descriptor "uint ********" (type_identifier "uint") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (identifier "puVar4")))) () ")")) (compound_statement "{\n    return pppppppuVar16;\n  }" ({ "{") (return_statement "return pppppppuVar16;" (return "return") (identifier "pppppppuVar16") (; ";")) (} "}"))) (expression_statement "pcVar46 = FUN_0001d8a0;" (assignment_expression "pcVar46 = FUN_0001d8a0" (identifier "pcVar46") (= "=") (identifier "FUN_0001d8a0")) (; ";")) (expression_statement "pppppppuVar16 = local_2c;" (assignment_expression "pppppppuVar16 = local_2c" (identifier "pppppppuVar16") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar43 = PTR___stack_chk_fail_0003c2f4;" (assignment_expression "puVar43 = PTR___stack_chk_fail_0003c2f4" (identifier "puVar43") (= "=") (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 "puVar45 = puVar43 + 0x26830;" (assignment_expression "puVar45 = puVar43 + 0x26830" (identifier "puVar45") (= "=") (binary_expression "puVar43 + 0x26830" (identifier "puVar43") (+ "+") (number_literal "0x26830"))) (; ";")) (expression_statement "puStack_9c = *(undefined4 **)(puVar43 + 0x1ea74);" (assignment_expression "puStack_9c = *(undefined4 **)(puVar43 + 0x1ea74)" (identifier "puStack_9c") (= "=") (pointer_expression "*(undefined4 **)(puVar43 + 0x1ea74)" (* "*") (cast_expression "(undefined4 **)(puVar43 + 0x1ea74)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar43 + 0x1ea74)" (( "(") (binary_expression "puVar43 + 0x1ea74" (identifier "puVar43") (+ "+") (number_literal "0x1ea74")) () ")"))))) (; ";")) (expression_statement "ppppppuStack_98 = (uint ******)0x0;" (assignment_expression "ppppppuStack_98 = (uint ******)0x0" (identifier "ppppppuStack_98") (= "=") (cast_expression "(uint ******)0x0" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uStack_94 = 0;" (assignment_expression "uStack_94 = 0" (identifier "uStack_94") (= "=") (number_literal "0")) (; ";")) (expression_statement "ppppppuStack_90 = (uint ******)0x0;" (assignment_expression "ppppppuStack_90 = (uint ******)0x0" (identifier "ppppppuStack_90") (= "=") (cast_expression "(uint ******)0x0" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppppppuVar20 = pppppppuVar16[7] + (int)pppppppuVar22 * 3;" (assignment_expression "ppppppuVar20 = pppppppuVar16[7] + (int)pppppppuVar22 * 3" (identifier "ppppppuVar20") (= "=") (binary_expression "pppppppuVar16[7] + (int)pppppppuVar22 * 3" (subscript_expression "pppppppuVar16[7]" (identifier "pppppppuVar16") ([ "[") (number_literal "7") (] "]")) (+ "+") (binary_expression "(int)pppppppuVar22 * 3" (cast_expression "(int)pppppppuVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar22")) (* "*") (number_literal "3")))) (; ";")) (expression_statement "puStack_78 = puVar4;" (assignment_expression "puStack_78 = puVar4" (identifier "puStack_78") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "pppppppuStack_8c = (uint *******)*puStack_9c;" (assignment_expression "pppppppuStack_8c = (uint *******)*puStack_9c" (identifier "pppppppuStack_8c") (= "=") (cast_expression "(uint *******)*puStack_9c" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*puStack_9c" (* "*") (identifier "puStack_9c")))) (; ";")) (expression_statement "pppppuVar31 = ppppppuVar20[1];" (assignment_expression "pppppuVar31 = ppppppuVar20[1]" (identifier "pppppuVar31") (= "=") (subscript_expression "ppppppuVar20[1]" (identifier "ppppppuVar20") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar43 + 0x1e948);" (assignment_expression "iVar25 = *(int *)(puVar43 + 0x1e948)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar43 + 0x1e948)" (* "*") (cast_expression "(int *)(puVar43 + 0x1e948)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar43 + 0x1e948)" (( "(") (binary_expression "puVar43 + 0x1e948" (identifier "puVar43") (+ "+") (number_literal "0x1e948")) () ")"))))) (; ";")) (expression_statement "pppppppuVar18 = pppppppuVar22;" (assignment_expression "pppppppuVar18 = pppppppuVar22" (identifier "pppppppuVar18") (= "=") (identifier "pppppppuVar22")) (; ";")) (expression_statement "puStack_a8 = puVar45;" (assignment_expression "puStack_a8 = puVar45" (identifier "puStack_a8") (= "=") (identifier "puVar45")) (; ";")) (expression_statement "pppppppuStack_a0 = pppppppuVar28;" (assignment_expression "pppppppuStack_a0 = pppppppuVar28" (identifier "pppppppuStack_a0") (= "=") (identifier "pppppppuVar28")) (; ";")) (expression_statement "piStack_88 = param_1;" (assignment_expression "piStack_88 = param_1" (identifier "piStack_88") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pppppppuStack_84 = pppppppuVar40;" (assignment_expression "pppppppuStack_84 = pppppppuVar40" (identifier "pppppppuStack_84") (= "=") (identifier "pppppppuVar40")) (; ";")) (expression_statement "pppppppuStack_80 = unaff_s2;" (assignment_expression "pppppppuStack_80 = unaff_s2" (identifier "pppppppuStack_80") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "pppppppuStack_7c = unaff_s3;" (assignment_expression "pppppppuStack_7c = unaff_s3" (identifier "pppppppuStack_7c") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "pppppppuStack_74 = param_2;" (assignment_expression "pppppppuStack_74 = param_2" (identifier "pppppppuStack_74") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pppppppuStack_70 = param_3;" (assignment_expression "pppppppuStack_70 = param_3" (identifier "pppppppuStack_70") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pppppppuStack_6c = unaff_s7;" (assignment_expression "pppppppuStack_6c = unaff_s7" (identifier "pppppppuStack_6c") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "pppppppuStack_68 = unaff_s8;" (assignment_expression "pppppppuStack_68 = unaff_s8" (identifier "pppppppuStack_68") (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "pcStack_64 = pcVar46;" (assignment_expression "pcStack_64 = pcVar46" (identifier "pcStack_64") (= "=") (identifier "pcVar46")) (; ";")) (if_statement "if (0 < (int)pppppuVar31) {\n    pppppppuVar40 = &ppppppuStack_98;\n    param_1 = (int *)0x0;\n    param_2 = (uint *******)(ppppppuVar20 + 2);\n    iVar25 = iVar25 + -0x5d30;\n    param_3 = (uint *******)(*(int *)(puVar43 + 0x1e948) + -20000);\n    do {\n      pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1];\n      if ((pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)) {\n        iVar35 = (int)pppppppuVar28 * 0xc;\n        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;\n        pppppuVar38 = ppppppuVar36[2];\n        pppppppuVar18 = param_2;\n        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);\n        if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }\n      param_1 = (int *)((int)param_1 + 1);\n    } while ((int)param_1 < (int)pppppuVar31);\n    unaff_s2 = pppppppuVar22;\n    unaff_s3 = pppppppuVar24;\n    unaff_s7 = pppppppuVar40;\n    unaff_s8 = pppppppuVar16;\n    if (0 < (int)pppppuVar31) {\n      iVar5 = 0;\n      pppppppuVar22 = pppppppuVar24 + 1;\n      pppppppuVar16 = pppppppuVar24 + 2;\n      pppppppuVar40 = &ppppppuStack_90;\n      do {\n        pppppppuVar19 = pppppppuVar40;\n        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);\n        pppppppuVar28 = pppppppuVar16;\n        if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }\n        iVar5 = iVar5 + 1;\n        pppppppuVar18 = pppppppuVar40;\n        pppppppuVar16 = pppppppuVar28;\n        pppppppuVar40 = pppppppuVar19;\n        puVar45 = puStack_a8;\n      } while (iVar5 < (int)pppppuVar31);\n    }\n  }" (if "if") (parenthesized_expression "(0 < (int)pppppuVar31)" (( "(") (binary_expression "0 < (int)pppppuVar31" (number_literal "0") (< "<") (cast_expression "(int)pppppuVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppuVar31"))) () ")")) (compound_statement "{\n    pppppppuVar40 = &ppppppuStack_98;\n    param_1 = (int *)0x0;\n    param_2 = (uint *******)(ppppppuVar20 + 2);\n    iVar25 = iVar25 + -0x5d30;\n    param_3 = (uint *******)(*(int *)(puVar43 + 0x1e948) + -20000);\n    do {\n      pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1];\n      if ((pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)) {\n        iVar35 = (int)pppppppuVar28 * 0xc;\n        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;\n        pppppuVar38 = ppppppuVar36[2];\n        pppppppuVar18 = param_2;\n        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);\n        if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }\n      param_1 = (int *)((int)param_1 + 1);\n    } while ((int)param_1 < (int)pppppuVar31);\n    unaff_s2 = pppppppuVar22;\n    unaff_s3 = pppppppuVar24;\n    unaff_s7 = pppppppuVar40;\n    unaff_s8 = pppppppuVar16;\n    if (0 < (int)pppppuVar31) {\n      iVar5 = 0;\n      pppppppuVar22 = pppppppuVar24 + 1;\n      pppppppuVar16 = pppppppuVar24 + 2;\n      pppppppuVar40 = &ppppppuStack_90;\n      do {\n        pppppppuVar19 = pppppppuVar40;\n        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);\n        pppppppuVar28 = pppppppuVar16;\n        if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }\n        iVar5 = iVar5 + 1;\n        pppppppuVar18 = pppppppuVar40;\n        pppppppuVar16 = pppppppuVar28;\n        pppppppuVar40 = pppppppuVar19;\n        puVar45 = puStack_a8;\n      } while (iVar5 < (int)pppppuVar31);\n    }\n  }" ({ "{") (expression_statement "pppppppuVar40 = &ppppppuStack_98;" (assignment_expression "pppppppuVar40 = &ppppppuStack_98" (identifier "pppppppuVar40") (= "=") (pointer_expression "&ppppppuStack_98" (& "&") (identifier "ppppppuStack_98"))) (; ";")) (expression_statement "param_1 = (int *)0x0;" (assignment_expression "param_1 = (int *)0x0" (identifier "param_1") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "param_2 = (uint *******)(ppppppuVar20 + 2);" (assignment_expression "param_2 = (uint *******)(ppppppuVar20 + 2)" (identifier "param_2") (= "=") (cast_expression "(uint *******)(ppppppuVar20 + 2)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(ppppppuVar20 + 2)" (( "(") (binary_expression "ppppppuVar20 + 2" (identifier "ppppppuVar20") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "iVar25 = iVar25 + -0x5d30;" (assignment_expression "iVar25 = iVar25 + -0x5d30" (identifier "iVar25") (= "=") (binary_expression "iVar25 + -0x5d30" (identifier "iVar25") (+ "+") (number_literal "-0x5d30"))) (; ";")) (expression_statement "param_3 = (uint *******)(*(int *)(puVar43 + 0x1e948) + -20000);" (assignment_expression "param_3 = (uint *******)(*(int *)(puVar43 + 0x1e948) + -20000)" (identifier "param_3") (= "=") (cast_expression "(uint *******)(*(int *)(puVar43 + 0x1e948) + -20000)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(int *)(puVar43 + 0x1e948) + -20000)" (( "(") (binary_expression "*(int *)(puVar43 + 0x1e948) + -20000" (pointer_expression "*(int *)(puVar43 + 0x1e948)" (* "*") (cast_expression "(int *)(puVar43 + 0x1e948)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar43 + 0x1e948)" (( "(") (binary_expression "puVar43 + 0x1e948" (identifier "puVar43") (+ "+") (number_literal "0x1e948")) () ")")))) (+ "+") (number_literal "-20000")) () ")")))) (; ";")) (do_statement "do {\n      pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1];\n      if ((pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)) {\n        iVar35 = (int)pppppppuVar28 * 0xc;\n        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;\n        pppppuVar38 = ppppppuVar36[2];\n        pppppppuVar18 = param_2;\n        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);\n        if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }\n      param_1 = (int *)((int)param_1 + 1);\n    } while ((int)param_1 < (int)pppppuVar31);" (do "do") (compound_statement "{\n      pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1];\n      if ((pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)) {\n        iVar35 = (int)pppppppuVar28 * 0xc;\n        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;\n        pppppuVar38 = ppppppuVar36[2];\n        pppppppuVar18 = param_2;\n        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);\n        if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }\n      param_1 = (int *)((int)param_1 + 1);\n    }" ({ "{") (expression_statement "pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1];" (assignment_expression "pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1]" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)ppppppuVar20[2][(int)param_1]" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "ppppppuVar20[2][(int)param_1]" (subscript_expression "ppppppuVar20[2]" (identifier "ppppppuVar20") ([ "[") (number_literal "2") (] "]")) ([ "[") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (] "]")))) (; ";")) (if_statement "if ((pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)) {\n        iVar35 = (int)pppppppuVar28 * 0xc;\n        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;\n        pppppuVar38 = ppppppuVar36[2];\n        pppppppuVar18 = param_2;\n        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);\n        if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "((pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0))" (( "(") (binary_expression "(pppppppuVar22 != pppppppuVar28) &&\n         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)" (parenthesized_expression "(pppppppuVar22 != pppppppuVar28)" (( "(") (binary_expression "pppppppuVar22 != pppppppuVar28" (identifier "pppppppuVar22") (!= "!=") (identifier "pppppppuVar28")) () ")")) (&& "&&") (parenthesized_expression "(((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)" (( "(") (binary_expression "((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0" (parenthesized_expression "((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000)" (( "(") (binary_expression "(uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000" (subscript_expression "(uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1]" (call_expression "(uint)(*pppppppuVar16)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*pppppppuVar16)" (( "(") (pointer_expression "*pppppppuVar16" (* "*") (identifier "pppppppuVar16")) () ")"))) ([ "[") (binary_expression "(int)pppppppuVar28 * 2 + 1" (binary_expression "(int)pppppppuVar28 * 2" (cast_expression "(int)pppppppuVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar28")) (* "*") (number_literal "2")) (+ "+") (number_literal "1")) (] "]")) (& "&") (number_literal "0x8000000")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        iVar35 = (int)pppppppuVar28 * 0xc;\n        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;\n        pppppuVar38 = ppppppuVar36[2];\n        pppppppuVar18 = param_2;\n        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);\n        if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "iVar35 = (int)pppppppuVar28 * 0xc;" (assignment_expression "iVar35 = (int)pppppppuVar28 * 0xc" (identifier "iVar35") (= "=") (binary_expression "(int)pppppppuVar28 * 0xc" (cast_expression "(int)pppppppuVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar28")) (* "*") (number_literal "0xc"))) (; ";")) (expression_statement "ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;" (assignment_expression "ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3" (identifier "ppppppuVar36") (= "=") (binary_expression "pppppppuVar16[5] + (int)pppppppuVar28 * 3" (subscript_expression "pppppppuVar16[5]" (identifier "pppppppuVar16") ([ "[") (number_literal "5") (] "]")) (+ "+") (binary_expression "(int)pppppppuVar28 * 3" (cast_expression "(int)pppppppuVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar28")) (* "*") (number_literal "3")))) (; ";")) (expression_statement "pppppuVar38 = ppppppuVar36[2];" (assignment_expression "pppppuVar38 = ppppppuVar36[2]" (identifier "pppppuVar38") (= "=") (subscript_expression "ppppppuVar36[2]" (identifier "ppppppuVar36") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pppppppuVar18 = param_2;" (assignment_expression "pppppppuVar18 = param_2" (identifier "pppppppuVar18") (= "=") (identifier "param_2")) (; ";")) (expression_statement "iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);" (assignment_expression "iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38)" (identifier "iVar5") (= "=") (call_expression "FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38)" (identifier "FUN_0001a2d0") (argument_list "(pppppuVar31,param_2,*pppppuVar38)" (( "(") (identifier "pppppuVar31") (, ",") (identifier "param_2") (, ",") (pointer_expression "*pppppuVar38" (* "*") (identifier "pppppuVar38")) () ")")))) (; ";")) (if_statement "if ((int)ppppppuVar36[1] < 2) {\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }\n        else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }" (if "if") (parenthesized_expression "((int)ppppppuVar36[1] < 2)" (( "(") (binary_expression "(int)ppppppuVar36[1] < 2" (cast_expression "(int)ppppppuVar36[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppppppuVar36[1]" (identifier "ppppppuVar36") ([ "[") (number_literal "1") (] "]"))) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n          puVar45 = puStack_a8;\n          if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }\n        }" ({ "{") (expression_statement "puVar45 = puStack_a8;" (assignment_expression "puVar45 = puStack_a8" (identifier "puVar45") (= "=") (identifier "puStack_a8")) (; ";")) (if_statement "if (iVar5 == 0) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) goto LAB_0001d960;\n          }" ({ "{") (expression_statement "pppppppuVar18 = pppppppuVar24 + 2;" (assignment_expression "pppppppuVar18 = pppppppuVar24 + 2" (identifier "pppppppuVar18") (= "=") (binary_expression "pppppppuVar24 + 2" (identifier "pppppppuVar24") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar5 = FUN_0001a2d0(pppppppuVar24[1]);" (assignment_expression "iVar5 = FUN_0001a2d0(pppppppuVar24[1])" (identifier "iVar5") (= "=") (call_expression "FUN_0001a2d0(pppppppuVar24[1])" (identifier "FUN_0001a2d0") (argument_list "(pppppppuVar24[1])" (( "(") (subscript_expression "pppppppuVar24[1]" (identifier "pppppppuVar24") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (expression_statement "puVar45 = puStack_a8;" (assignment_expression "puVar45 = puStack_a8" (identifier "puVar45") (= "=") (identifier "puStack_a8")) (; ";")) (if_statement "if (iVar5 != 0) goto LAB_0001d960;" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001d960;" (goto "goto") (statement_identifier "LAB_0001d960") (; ";"))) (} "}"))) (} "}")) (else_clause "else if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }" (else "else") (if_statement "if ((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }\n        else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }" (if "if") (parenthesized_expression "((iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0))" (( "(") (binary_expression "(iVar5 == 0) &&\n                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)" (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)" (( "(") (comma_expression "iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0" (assignment_expression "iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2)" (identifier "iVar5") (= "=") (call_expression "FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2)" (identifier "FUN_0001a2d0") (argument_list "(pppppppuVar24[1],pppppppuVar24 + 2)" (( "(") (subscript_expression "pppppppuVar24[1]" (identifier "pppppppuVar24") ([ "[") (number_literal "1") (] "]")) (, ",") (binary_expression "pppppppuVar24 + 2" (identifier "pppppppuVar24") (+ "+") (number_literal "2")) () ")")))) (, ",") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\nLAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];\nLAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;\n          pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;\n          if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }\n          pppppuVar31 = ppppppuVar20[1];\n          puVar45 = puStack_a8;\n        }" ({ "{") (labeled_statement "LAB_0001d960:\n          ppppppuVar36 = pppppppuVar16[7];" (statement_identifier "LAB_0001d960") (: ":") (expression_statement "ppppppuVar36 = pppppppuVar16[7];" (assignment_expression "ppppppuVar36 = pppppppuVar16[7]" (identifier "ppppppuVar36") (= "=") (subscript_expression "pppppppuVar16[7]" (identifier "pppppppuVar16") ([ "[") (number_literal "7") (] "]"))) (; ";"))) (labeled_statement "LAB_0001d964:\n          pppppppuVar18 = pppppppuStack_a0;" (statement_identifier "LAB_0001d964") (: ":") (expression_statement "pppppppuVar18 = pppppppuStack_a0;" (assignment_expression "pppppppuVar18 = pppppppuStack_a0" (identifier "pppppppuVar18") (= "=") (identifier "pppppppuStack_a0")) (; ";"))) (expression_statement "pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)\n          ;" (assignment_expression "pppppppuVar28 =\n               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)" (identifier "FUN_0001b1e0") (argument_list "(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)" (( "(") (identifier "pppppppuVar40") (, ",") (identifier "pppppppuStack_a0") (, ",") (binary_expression "(int)ppppppuVar36 + iVar35" (cast_expression "(int)ppppppuVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppuVar36")) (+ "+") (identifier "iVar35")) () ")"))))) (; ";")) (if_statement "if (pppppppuVar28 != (uint *******)0x0) {\n            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }" (if "if") (parenthesized_expression "(pppppppuVar28 != (uint *******)0x0)" (( "(") (binary_expression "pppppppuVar28 != (uint *******)0x0" (identifier "pppppppuVar28") (!= "!=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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            pppppppuStack_a0 = pppppppuVar28;\n            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);\n            pppppppuVar28 = pppppppuStack_a0;\n            goto LAB_0001db20;\n          }" ({ "{") (expression_statement "pppppppuStack_a0 = pppppppuVar28;" (assignment_expression "pppppppuStack_a0 = pppppppuVar28" (identifier "pppppppuStack_a0") (= "=") (identifier "pppppppuVar28")) (; ";")) (expression_statement "(**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);" (call_expression "(**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90)" (parenthesized_expression "(**(code **)(puStack_a8 + -0x7db0))" (( "(") (pointer_expression "**(code **)(puStack_a8 + -0x7db0)" (* "*") (pointer_expression "*(code **)(puStack_a8 + -0x7db0)" (* "*") (cast_expression "(code **)(puStack_a8 + -0x7db0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_a8 + -0x7db0)" (( "(") (binary_expression "puStack_a8 + -0x7db0" (identifier "puStack_a8") (+ "+") (number_literal "-0x7db0")) () ")"))))) () ")")) (argument_list "(ppppppuStack_90)" (( "(") (identifier "ppppppuStack_90") () ")"))) (; ";")) (expression_statement "pppppppuVar28 = pppppppuStack_a0;" (assignment_expression "pppppppuVar28 = pppppppuStack_a0" (identifier "pppppppuVar28") (= "=") (identifier "pppppppuStack_a0")) (; ";")) (goto_statement "goto LAB_0001db20;" (goto "goto") (statement_identifier "LAB_0001db20") (; ";")) (} "}"))) (expression_statement "pppppuVar31 = ppppppuVar20[1];" (assignment_expression "pppppuVar31 = ppppppuVar20[1]" (identifier "pppppuVar31") (= "=") (subscript_expression "ppppppuVar20[1]" (identifier "ppppppuVar20") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar45 = puStack_a8;" (assignment_expression "puVar45 = puStack_a8" (identifier "puVar45") (= "=") (identifier "puStack_a8")) (; ";")) (} "}")) (else_clause "else {\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }" (else "else") (compound_statement "{\n          pppppppuVar18 = param_2;\n          puVar45 = puStack_a8;\n          if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }\n        }" ({ "{") (expression_statement "pppppppuVar18 = param_2;" (assignment_expression "pppppppuVar18 = param_2" (identifier "pppppppuVar18") (= "=") (identifier "param_2")) (; ";")) (expression_statement "puVar45 = puStack_a8;" (assignment_expression "puVar45 = puStack_a8" (identifier "puVar45") (= "=") (identifier "puStack_a8")) (; ";")) (if_statement "if ((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)) {\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }" (if "if") (parenthesized_expression "((0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0))" (( "(") (binary_expression "(0 < (int)pppppuVar38[1]) &&\n             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)" (parenthesized_expression "(0 < (int)pppppuVar38[1])" (( "(") (binary_expression "0 < (int)pppppuVar38[1]" (number_literal "0") (< "<") (cast_expression "(int)pppppuVar38[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppuVar38[1]" (identifier "pppppuVar38") ([ "[") (number_literal "1") (] "]")))) () ")")) (&& "&&") (parenthesized_expression "(iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0)" (( "(") (comma_expression "iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,\n             iVar5 == 0" (assignment_expression "iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1])" (identifier "iVar5") (= "=") (call_expression "FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1])" (identifier "FUN_0001a2d0") (argument_list "(pppppuVar31,param_2,pppppuVar38[1])" (( "(") (identifier "pppppuVar31") (, ",") (identifier "param_2") (, ",") (subscript_expression "pppppuVar38[1]" (identifier "pppppuVar38") ([ "[") (number_literal "1") (] "]")) () ")")))) (, ",") (comma_expression "puVar45 = puStack_a8,\n             iVar5 == 0" (assignment_expression "puVar45 = puStack_a8" (identifier "puVar45") (= "=") (identifier "puStack_a8")) (, ",") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\n            pppppppuVar18 = pppppppuVar24 + 2;\n            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);\n            puVar45 = puStack_a8;\n            if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }\n          }" ({ "{") (expression_statement "pppppppuVar18 = pppppppuVar24 + 2;" (assignment_expression "pppppppuVar18 = pppppppuVar24 + 2" (identifier "pppppppuVar18") (= "=") (binary_expression "pppppppuVar24 + 2" (identifier "pppppppuVar24") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar5 = FUN_0001a2d0(pppppppuVar24[1]);" (assignment_expression "iVar5 = FUN_0001a2d0(pppppppuVar24[1])" (identifier "iVar5") (= "=") (call_expression "FUN_0001a2d0(pppppppuVar24[1])" (identifier "FUN_0001a2d0") (argument_list "(pppppppuVar24[1])" (( "(") (subscript_expression "pppppppuVar24[1]" (identifier "pppppppuVar24") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (expression_statement "puVar45 = puStack_a8;" (assignment_expression "puVar45 = puStack_a8" (identifier "puVar45") (= "=") (identifier "puStack_a8")) (; ";")) (if_statement "if (iVar5 != 0) {\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              ppppppuVar36 = pppppppuVar16[7];\n              goto LAB_0001d964;\n            }" ({ "{") (expression_statement "ppppppuVar36 = pppppppuVar16[7];" (assignment_expression "ppppppuVar36 = pppppppuVar16[7]" (identifier "ppppppuVar36") (= "=") (subscript_expression "pppppppuVar16[7]" (identifier "pppppppuVar16") ([ "[") (number_literal "7") (] "]"))) (; ";")) (goto_statement "goto LAB_0001d964;" (goto "goto") (statement_identifier "LAB_0001d964") (; ";")) (} "}"))) (} "}"))) (} "}")))))) (} "}"))) (expression_statement "param_1 = (int *)((int)param_1 + 1);" (assignment_expression "param_1 = (int *)((int)param_1 + 1)" (identifier "param_1") (= "=") (cast_expression "(int *)((int)param_1 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 1)" (( "(") (binary_expression "(int)param_1 + 1" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)param_1 < (int)pppppuVar31)" (( "(") (binary_expression "(int)param_1 < (int)pppppuVar31" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (< "<") (cast_expression "(int)pppppuVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppuVar31"))) () ")")) (; ";")) (expression_statement "unaff_s2 = pppppppuVar22;" (assignment_expression "unaff_s2 = pppppppuVar22" (identifier "unaff_s2") (= "=") (identifier "pppppppuVar22")) (; ";")) (expression_statement "unaff_s3 = pppppppuVar24;" (assignment_expression "unaff_s3 = pppppppuVar24" (identifier "unaff_s3") (= "=") (identifier "pppppppuVar24")) (; ";")) (expression_statement "unaff_s7 = pppppppuVar40;" (assignment_expression "unaff_s7 = pppppppuVar40" (identifier "unaff_s7") (= "=") (identifier "pppppppuVar40")) (; ";")) (expression_statement "unaff_s8 = pppppppuVar16;" (assignment_expression "unaff_s8 = pppppppuVar16" (identifier "unaff_s8") (= "=") (identifier "pppppppuVar16")) (; ";")) (if_statement "if (0 < (int)pppppuVar31) {\n      iVar5 = 0;\n      pppppppuVar22 = pppppppuVar24 + 1;\n      pppppppuVar16 = pppppppuVar24 + 2;\n      pppppppuVar40 = &ppppppuStack_90;\n      do {\n        pppppppuVar19 = pppppppuVar40;\n        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);\n        pppppppuVar28 = pppppppuVar16;\n        if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }\n        iVar5 = iVar5 + 1;\n        pppppppuVar18 = pppppppuVar40;\n        pppppppuVar16 = pppppppuVar28;\n        pppppppuVar40 = pppppppuVar19;\n        puVar45 = puStack_a8;\n      } while (iVar5 < (int)pppppuVar31);\n    }" (if "if") (parenthesized_expression "(0 < (int)pppppuVar31)" (( "(") (binary_expression "0 < (int)pppppuVar31" (number_literal "0") (< "<") (cast_expression "(int)pppppuVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppuVar31"))) () ")")) (compound_statement "{\n      iVar5 = 0;\n      pppppppuVar22 = pppppppuVar24 + 1;\n      pppppppuVar16 = pppppppuVar24 + 2;\n      pppppppuVar40 = &ppppppuStack_90;\n      do {\n        pppppppuVar19 = pppppppuVar40;\n        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);\n        pppppppuVar28 = pppppppuVar16;\n        if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }\n        iVar5 = iVar5 + 1;\n        pppppppuVar18 = pppppppuVar40;\n        pppppppuVar16 = pppppppuVar28;\n        pppppppuVar40 = pppppppuVar19;\n        puVar45 = puStack_a8;\n      } while (iVar5 < (int)pppppuVar31);\n    }" ({ "{") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "pppppppuVar22 = pppppppuVar24 + 1;" (assignment_expression "pppppppuVar22 = pppppppuVar24 + 1" (identifier "pppppppuVar22") (= "=") (binary_expression "pppppppuVar24 + 1" (identifier "pppppppuVar24") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppppuVar16 = pppppppuVar24 + 2;" (assignment_expression "pppppppuVar16 = pppppppuVar24 + 2" (identifier "pppppppuVar16") (= "=") (binary_expression "pppppppuVar24 + 2" (identifier "pppppppuVar24") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "pppppppuVar40 = &ppppppuStack_90;" (assignment_expression "pppppppuVar40 = &ppppppuStack_90" (identifier "pppppppuVar40") (= "=") (pointer_expression "&ppppppuStack_90" (& "&") (identifier "ppppppuStack_90"))) (; ";")) (do_statement "do {\n        pppppppuVar19 = pppppppuVar40;\n        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);\n        pppppppuVar28 = pppppppuVar16;\n        if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }\n        iVar5 = iVar5 + 1;\n        pppppppuVar18 = pppppppuVar40;\n        pppppppuVar16 = pppppppuVar28;\n        pppppppuVar40 = pppppppuVar19;\n        puVar45 = puStack_a8;\n      } while (iVar5 < (int)pppppuVar31);" (do "do") (compound_statement "{\n        pppppppuVar19 = pppppppuVar40;\n        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);\n        pppppppuVar28 = pppppppuVar16;\n        if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }\n        iVar5 = iVar5 + 1;\n        pppppppuVar18 = pppppppuVar40;\n        pppppppuVar16 = pppppppuVar28;\n        pppppppuVar40 = pppppppuVar19;\n        puVar45 = puStack_a8;\n      }" ({ "{") (expression_statement "pppppppuVar19 = pppppppuVar40;" (assignment_expression "pppppppuVar19 = pppppppuVar40" (identifier "pppppppuVar19") (= "=") (identifier "pppppppuVar40")) (; ";")) (expression_statement "iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);" (assignment_expression "iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5])" (identifier "iVar35") (= "=") (call_expression "FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5])" (identifier "FUN_0001a2d0") (argument_list "(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5])" (( "(") (identifier "uStack_94") (, ",") (identifier "pppppppuVar40") (, ",") (subscript_expression "ppppppuVar20[2][iVar5]" (subscript_expression "ppppppuVar20[2]" (identifier "ppppppuVar20") ([ "[") (number_literal "2") (] "]")) ([ "[") (identifier "iVar5") (] "]")) () ")")))) (; ";")) (expression_statement "pppppppuVar28 = pppppppuVar16;" (assignment_expression "pppppppuVar28 = pppppppuVar16" (identifier "pppppppuVar28") (= "=") (identifier "pppppppuVar16")) (; ";")) (if_statement "if (iVar35 == 0) {\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }" (if "if") (parenthesized_expression "(iVar35 == 0)" (( "(") (binary_expression "iVar35 == 0" (identifier "iVar35") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          ppppppuVar36 = pppppppuVar24[1];\n          pppppppuVar18 = pppppppuVar16;\n          iVar35 = FUN_0001a2d0(ppppppuVar36);\n          pppppppuVar40 = pppppppuVar16;\n          pppppppuVar28 = pppppppuVar18;\n          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }\n        }" ({ "{") (expression_statement "ppppppuVar36 = pppppppuVar24[1];" (assignment_expression "ppppppuVar36 = pppppppuVar24[1]" (identifier "ppppppuVar36") (= "=") (subscript_expression "pppppppuVar24[1]" (identifier "pppppppuVar24") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pppppppuVar18 = pppppppuVar16;" (assignment_expression "pppppppuVar18 = pppppppuVar16" (identifier "pppppppuVar18") (= "=") (identifier "pppppppuVar16")) (; ";")) (expression_statement "iVar35 = FUN_0001a2d0(ppppppuVar36);" (assignment_expression "iVar35 = FUN_0001a2d0(ppppppuVar36)" (identifier "iVar35") (= "=") (call_expression "FUN_0001a2d0(ppppppuVar36)" (identifier "FUN_0001a2d0") (argument_list "(ppppppuVar36)" (( "(") (identifier "ppppppuVar36") () ")")))) (; ";")) (expression_statement "pppppppuVar40 = pppppppuVar16;" (assignment_expression "pppppppuVar40 = pppppppuVar16" (identifier "pppppppuVar40") (= "=") (identifier "pppppppuVar16")) (; ";")) (expression_statement "pppppppuVar28 = pppppppuVar18;" (assignment_expression "pppppppuVar28 = pppppppuVar18" (identifier "pppppppuVar28") (= "=") (identifier "pppppppuVar18")) (; ";")) (if_statement "if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }" (if "if") (parenthesized_expression "((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36))" (( "(") (binary_expression "(-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)" (parenthesized_expression "(-1 < iVar35 + -1)" (( "(") (binary_expression "-1 < iVar35 + -1" (number_literal "-1") (< "<") (binary_expression "iVar35 + -1" (identifier "iVar35") (+ "+") (number_literal "-1"))) () ")")) (&& "&&") (parenthesized_expression "(iVar35 + -1 < (int)ppppppuVar36)" (( "(") (binary_expression "iVar35 + -1 < (int)ppppppuVar36" (binary_expression "iVar35 + -1" (identifier "iVar35") (+ "+") (number_literal "-1")) (< "<") (cast_expression "(int)ppppppuVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppuVar36"))) () ")"))) () ")")) (compound_statement "{\n            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);\n            FUN_0001a534(pppppppuVar22);\n            pppppuVar31 = ppppppuVar20[1];\n            pppppppuVar40 = pppppppuVar18;\n          }" ({ "{") (expression_statement "pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);" (assignment_expression "pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1)" (subscript_expression "pppppppuVar24[1]" (identifier "pppppppuVar24") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(uint ******)((int)ppppppuVar36 - 1)" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)ppppppuVar36 - 1)" (( "(") (binary_expression "(int)ppppppuVar36 - 1" (cast_expression "(int)ppppppuVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppuVar36")) (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "FUN_0001a534(pppppppuVar22);" (call_expression "FUN_0001a534(pppppppuVar22)" (identifier "FUN_0001a534") (argument_list "(pppppppuVar22)" (( "(") (identifier "pppppppuVar22") () ")"))) (; ";")) (expression_statement "pppppuVar31 = ppppppuVar20[1];" (assignment_expression "pppppuVar31 = ppppppuVar20[1]" (identifier "pppppuVar31") (= "=") (subscript_expression "ppppppuVar20[1]" (identifier "ppppppuVar20") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pppppppuVar40 = pppppppuVar18;" (assignment_expression "pppppppuVar40 = pppppppuVar18" (identifier "pppppppuVar40") (= "=") (identifier "pppppppuVar18")) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppppuVar18 = pppppppuVar40;" (assignment_expression "pppppppuVar18 = pppppppuVar40" (identifier "pppppppuVar18") (= "=") (identifier "pppppppuVar40")) (; ";")) (expression_statement "pppppppuVar16 = pppppppuVar28;" (assignment_expression "pppppppuVar16 = pppppppuVar28" (identifier "pppppppuVar16") (= "=") (identifier "pppppppuVar28")) (; ";")) (expression_statement "pppppppuVar40 = pppppppuVar19;" (assignment_expression "pppppppuVar40 = pppppppuVar19" (identifier "pppppppuVar40") (= "=") (identifier "pppppppuVar19")) (; ";")) (expression_statement "puVar45 = puStack_a8;" (assignment_expression "puVar45 = puStack_a8" (identifier "puVar45") (= "=") (identifier "puStack_a8")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar5 < (int)pppppuVar31)" (( "(") (binary_expression "iVar5 < (int)pppppuVar31" (identifier "iVar5") (< "<") (cast_expression "(int)pppppuVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppuVar31"))) () ")")) (; ";")) (} "}"))) (} "}"))) (expression_statement "(**(code **)(puVar45 + -0x7db0))(ppppppuStack_90);" (call_expression "(**(code **)(puVar45 + -0x7db0))(ppppppuStack_90)" (parenthesized_expression "(**(code **)(puVar45 + -0x7db0))" (( "(") (pointer_expression "**(code **)(puVar45 + -0x7db0)" (* "*") (pointer_expression "*(code **)(puVar45 + -0x7db0)" (* "*") (cast_expression "(code **)(puVar45 + -0x7db0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar45 + -0x7db0)" (( "(") (binary_expression "puVar45 + -0x7db0" (identifier "puVar45") (+ "+") (number_literal "-0x7db0")) () ")"))))) () ")")) (argument_list "(ppppppuStack_90)" (( "(") (identifier "ppppppuStack_90") () ")"))) (; ";")) (expression_statement "pppppppuVar28 = (uint *******)0x0;" (assignment_expression "pppppppuVar28 = (uint *******)0x0" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppuVar22 = unaff_s2;" (assignment_expression "pppppppuVar22 = unaff_s2" (identifier "pppppppuVar22") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "pppppppuVar24 = unaff_s3;" (assignment_expression "pppppppuVar24 = unaff_s3" (identifier "pppppppuVar24") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "pppppppuVar40 = unaff_s7;" (assignment_expression "pppppppuVar40 = unaff_s7" (identifier "pppppppuVar40") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "pppppppuVar16 = unaff_s8;" (assignment_expression "pppppppuVar16 = unaff_s8" (identifier "pppppppuVar16") (= "=") (identifier "unaff_s8")) (; ";")) (labeled_statement "LAB_0001db20:\n  if (pppppppuStack_8c == (uint *******)*puStack_9c) {\n    return pppppppuVar28;\n  }" (statement_identifier "LAB_0001db20") (: ":") (if_statement "if (pppppppuStack_8c == (uint *******)*puStack_9c) {\n    return pppppppuVar28;\n  }" (if "if") (parenthesized_expression "(pppppppuStack_8c == (uint *******)*puStack_9c)" (( "(") (binary_expression "pppppppuStack_8c == (uint *******)*puStack_9c" (identifier "pppppppuStack_8c") (== "==") (cast_expression "(uint *******)*puStack_9c" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*puStack_9c" (* "*") (identifier "puStack_9c")))) () ")")) (compound_statement "{\n    return pppppppuVar28;\n  }" ({ "{") (return_statement "return pppppppuVar28;" (return "return") (identifier "pppppppuVar28") (; ";")) (} "}")))) (expression_statement "pcVar46 = *(code **)(puStack_a8 + -0x7ddc);" (assignment_expression "pcVar46 = *(code **)(puStack_a8 + -0x7ddc)" (identifier "pcVar46") (= "=") (pointer_expression "*(code **)(puStack_a8 + -0x7ddc)" (* "*") (cast_expression "(code **)(puStack_a8 + -0x7ddc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_a8 + -0x7ddc)" (( "(") (binary_expression "puStack_a8 + -0x7ddc" (identifier "puStack_a8") (+ "+") (number_literal "-0x7ddc")) () ")"))))) (; ";")) (expression_statement "uVar47 = 0x1db90;" (assignment_expression "uVar47 = 0x1db90" (identifier "uVar47") (= "=") (number_literal "0x1db90")) (; ";")) (expression_statement "pppppppuVar19 = pppppppuStack_8c;" (assignment_expression "pppppppuVar19 = pppppppuStack_8c" (identifier "pppppppuVar19") (= "=") (identifier "pppppppuStack_8c")) (; ";")) (expression_statement "(*pcVar46)();" (call_expression "(*pcVar46)()" (parenthesized_expression "(*pcVar46)" (( "(") (pointer_expression "*pcVar46" (* "*") (identifier "pcVar46")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar6 = *(int **)(pcVar46 + 0x1e784);" (assignment_expression "piVar6 = *(int **)(pcVar46 + 0x1e784)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(pcVar46 + 0x1e784)" (* "*") (cast_expression "(int **)(pcVar46 + 0x1e784)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x1e784)" (( "(") (binary_expression "pcVar46 + 0x1e784" (identifier "pcVar46") (+ "+") (number_literal "0x1e784")) () ")"))))) (; ";")) (expression_statement "piStack_e4 = (int *)*piVar6;" (assignment_expression "piStack_e4 = (int *)*piVar6" (identifier "piStack_e4") (= "=") (cast_expression "(int *)*piVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar6" (* "*") (identifier "piVar6")))) (; ";")) (expression_statement "pppppppuVar28 = pppppppuVar18;" (assignment_expression "pppppppuVar28 = pppppppuVar18" (identifier "pppppppuVar28") (= "=") (identifier "pppppppuVar18")) (; ";")) (expression_statement "piStack_e0 = param_1;" (assignment_expression "piStack_e0 = param_1" (identifier "piStack_e0") (= "=") (identifier "param_1")) (; ";")) (expression_statement "ppppppuStack_dc = ppppppuVar20;" (assignment_expression "ppppppuStack_dc = ppppppuVar20" (identifier "ppppppuStack_dc") (= "=") (identifier "ppppppuVar20")) (; ";")) (expression_statement "pppppppuStack_d8 = pppppppuVar22;" (assignment_expression "pppppppuStack_d8 = pppppppuVar22" (identifier "pppppppuStack_d8") (= "=") (identifier "pppppppuVar22")) (; ";")) (expression_statement "pppppppuStack_d4 = pppppppuVar24;" (assignment_expression "pppppppuStack_d4 = pppppppuVar24" (identifier "pppppppuStack_d4") (= "=") (identifier "pppppppuVar24")) (; ";")) (expression_statement "iStack_d0 = iVar25;" (assignment_expression "iStack_d0 = iVar25" (identifier "iStack_d0") (= "=") (identifier "iVar25")) (; ";")) (expression_statement "pppppppuStack_cc = param_2;" (assignment_expression "pppppppuStack_cc = param_2" (identifier "pppppppuStack_cc") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pppppppuStack_c8 = param_3;" (assignment_expression "pppppppuStack_c8 = param_3" (identifier "pppppppuStack_c8") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pppppppuStack_c4 = pppppppuVar40;" (assignment_expression "pppppppuStack_c4 = pppppppuVar40" (identifier "pppppppuStack_c4") (= "=") (identifier "pppppppuVar40")) (; ";")) (expression_statement "pppppppuStack_c0 = pppppppuVar16;" (assignment_expression "pppppppuStack_c0 = pppppppuVar16" (identifier "pppppppuStack_c0") (= "=") (identifier "pppppppuVar16")) (; ";")) (expression_statement "uStack_bc = uVar47;" (assignment_expression "uStack_bc = uVar47" (identifier "uStack_bc") (= "=") (identifier "uVar47")) (; ";")) (expression_statement "iVar25 = (**(code **)(pcVar46 + 0x1e724))(0x2c00);" (assignment_expression "iVar25 = (**(code **)(pcVar46 + 0x1e724))(0x2c00)" (identifier "iVar25") (= "=") (call_expression "(**(code **)(pcVar46 + 0x1e724))(0x2c00)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e724))" (( "(") (pointer_expression "**(code **)(pcVar46 + 0x1e724)" (* "*") (pointer_expression "*(code **)(pcVar46 + 0x1e724)" (* "*") (cast_expression "(code **)(pcVar46 + 0x1e724)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x1e724)" (( "(") (binary_expression "pcVar46 + 0x1e724" (identifier "pcVar46") (+ "+") (number_literal "0x1e724")) () ")"))))) () ")")) (argument_list "(0x2c00)" (( "(") (number_literal "0x2c00") () ")")))) (; ";")) (if_statement "if (iVar25 == 0) goto LAB_0001dffc;" (if "if") (parenthesized_expression "(iVar25 == 0)" (( "(") (binary_expression "iVar25 == 0" (identifier "iVar25") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001dffc;" (goto "goto") (statement_identifier "LAB_0001dffc") (; ";"))) (expression_statement "ppppppuVar20 = pppppppuVar18[2];" (assignment_expression "ppppppuVar20 = pppppppuVar18[2]" (identifier "ppppppuVar20") (= "=") (subscript_expression "pppppppuVar18[2]" (identifier "pppppppuVar18") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pppppppuVar18[0xb] = (uint ******)0x0;" (assignment_expression "pppppppuVar18[0xb] = (uint ******)0x0" (subscript_expression "pppppppuVar18[0xb]" (identifier "pppppppuVar18") ([ "[") (number_literal "0xb") (] "]")) (= "=") (cast_expression "(uint ******)0x0" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar7 = (uint *)(iVar25 + 0xc00);" (assignment_expression "puVar7 = (uint *)(iVar25 + 0xc00)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(iVar25 + 0xc00)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 0xc00)" (( "(") (binary_expression "iVar25 + 0xc00" (identifier "iVar25") (+ "+") (number_literal "0xc00")) () ")")))) (; ";")) (expression_statement "pppppppuVar18[0xc] = (uint ******)0x0;" (assignment_expression "pppppppuVar18[0xc] = (uint ******)0x0" (subscript_expression "pppppppuVar18[0xc]" (identifier "pppppppuVar18") ([ "[") (number_literal "0xc") (] "]")) (= "=") (cast_expression "(uint ******)0x0" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppuStack_144 = (uint *******)0x0;" (assignment_expression "pppppppuStack_144 = (uint *******)0x0" (identifier "pppppppuStack_144") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uStack_140 = 0;" (assignment_expression "uStack_140 = 0" (identifier "uStack_140") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_13c = 0;" (assignment_expression "uStack_13c = 0" (identifier "uStack_13c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_138 = 0;" (assignment_expression "uStack_138 = 0" (identifier "uStack_138") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_134 = 0;" (assignment_expression "uStack_134 = 0" (identifier "uStack_134") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_130 = 0;" (assignment_expression "uStack_130 = 0" (identifier "uStack_130") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_12c = 0;" (assignment_expression "uStack_12c = 0" (identifier "uStack_12c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_128 = 0;" (assignment_expression "uStack_128 = 0" (identifier "uStack_128") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < (int)ppppppuVar20) {\n    iVar5 = *(int *)(pcVar46 + 0x1e658);\n    iStack_184 = 0;\n    iVar35 = *(int *)(pcVar46 + 0x1e658);\n    pppppppuVar24 = (uint *******)0x0;\nLAB_0001dc74:\n    ppppppuVar36 = *pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2;\n    bVar2 = *(byte *)(ppppppuVar36 + 1);\n    uVar34 = (uint)((int)ppppppuVar36[1] << 8) >> 0x16;\n    if (bVar2 == 1) {\n      pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5));\n      pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f));\n      *pppppppuVar40 = (uint ******)pppppppuVar28;\nLAB_0001e060:\n      pppppppuVar40 = pppppppuStack_144;\n      if (uVar34 == 0) goto LAB_0001e15c;\n      if ((uVar34 & 0x20) == 0) {\n        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }\n        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      else {\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      pppppppuStack_144 = (uint *******)0x0;\n      uStack_140 = 0;\n      uStack_13c = 0;\n      uStack_138 = 0;\n      uStack_134 = 0;\n      uStack_130 = 0;\n      uStack_12c = 0;\n      uStack_128 = 0;\n    }\n    else {\n      if (bVar2 == 3) {\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }\n      if (bVar2 == 5) {\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      pppppppuVar28 = (uint *******)0xffffffff;\n      if (bVar2 == 7) {\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }\nLAB_0001dcc8:\n    iStack_184 = iStack_184 + 1;\n    if ((int)ppppppuVar20 <= iStack_184) goto code_r0x0001dcdc;\n    goto LAB_0001dc74;\n  }" (if "if") (parenthesized_expression "(0 < (int)ppppppuVar20)" (( "(") (binary_expression "0 < (int)ppppppuVar20" (number_literal "0") (< "<") (cast_expression "(int)ppppppuVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppuVar20"))) () ")")) (compound_statement "{\n    iVar5 = *(int *)(pcVar46 + 0x1e658);\n    iStack_184 = 0;\n    iVar35 = *(int *)(pcVar46 + 0x1e658);\n    pppppppuVar24 = (uint *******)0x0;\nLAB_0001dc74:\n    ppppppuVar36 = *pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2;\n    bVar2 = *(byte *)(ppppppuVar36 + 1);\n    uVar34 = (uint)((int)ppppppuVar36[1] << 8) >> 0x16;\n    if (bVar2 == 1) {\n      pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5));\n      pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f));\n      *pppppppuVar40 = (uint ******)pppppppuVar28;\nLAB_0001e060:\n      pppppppuVar40 = pppppppuStack_144;\n      if (uVar34 == 0) goto LAB_0001e15c;\n      if ((uVar34 & 0x20) == 0) {\n        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }\n        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      else {\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      pppppppuStack_144 = (uint *******)0x0;\n      uStack_140 = 0;\n      uStack_13c = 0;\n      uStack_138 = 0;\n      uStack_134 = 0;\n      uStack_130 = 0;\n      uStack_12c = 0;\n      uStack_128 = 0;\n    }\n    else {\n      if (bVar2 == 3) {\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }\n      if (bVar2 == 5) {\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      pppppppuVar28 = (uint *******)0xffffffff;\n      if (bVar2 == 7) {\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }\nLAB_0001dcc8:\n    iStack_184 = iStack_184 + 1;\n    if ((int)ppppppuVar20 <= iStack_184) goto code_r0x0001dcdc;\n    goto LAB_0001dc74;\n  }" ({ "{") (expression_statement "iVar5 = *(int *)(pcVar46 + 0x1e658);" (assignment_expression "iVar5 = *(int *)(pcVar46 + 0x1e658)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(pcVar46 + 0x1e658)" (* "*") (cast_expression "(int *)(pcVar46 + 0x1e658)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar46 + 0x1e658)" (( "(") (binary_expression "pcVar46 + 0x1e658" (identifier "pcVar46") (+ "+") (number_literal "0x1e658")) () ")"))))) (; ";")) (expression_statement "iStack_184 = 0;" (assignment_expression "iStack_184 = 0" (identifier "iStack_184") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar35 = *(int *)(pcVar46 + 0x1e658);" (assignment_expression "iVar35 = *(int *)(pcVar46 + 0x1e658)" (identifier "iVar35") (= "=") (pointer_expression "*(int *)(pcVar46 + 0x1e658)" (* "*") (cast_expression "(int *)(pcVar46 + 0x1e658)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar46 + 0x1e658)" (( "(") (binary_expression "pcVar46 + 0x1e658" (identifier "pcVar46") (+ "+") (number_literal "0x1e658")) () ")"))))) (; ";")) (expression_statement "pppppppuVar24 = (uint *******)0x0;" (assignment_expression "pppppppuVar24 = (uint *******)0x0" (identifier "pppppppuVar24") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_0001dc74:\n    ppppppuVar36 = *pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2;" (statement_identifier "LAB_0001dc74") (: ":") (expression_statement "ppppppuVar36 = *pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2;" (assignment_expression "ppppppuVar36 = *pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2" (identifier "ppppppuVar36") (= "=") (binary_expression "*pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2" (pointer_expression "*pppppppuVar19" (* "*") (identifier "pppppppuVar19")) (+ "+") (binary_expression "(int)pppppppuVar18[3][iStack_184] * 2" (cast_expression "(int)pppppppuVar18[3][iStack_184]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppuVar18[3][iStack_184]" (subscript_expression "pppppppuVar18[3]" (identifier "pppppppuVar18") ([ "[") (number_literal "3") (] "]")) ([ "[") (identifier "iStack_184") (] "]"))) (* "*") (number_literal "2")))) (; ";"))) (expression_statement "bVar2 = *(byte *)(ppppppuVar36 + 1);" (assignment_expression "bVar2 = *(byte *)(ppppppuVar36 + 1)" (identifier "bVar2") (= "=") (pointer_expression "*(byte *)(ppppppuVar36 + 1)" (* "*") (cast_expression "(byte *)(ppppppuVar36 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppppuVar36 + 1)" (( "(") (binary_expression "ppppppuVar36 + 1" (identifier "ppppppuVar36") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "uVar34 = (uint)((int)ppppppuVar36[1] << 8) >> 0x16;" (assignment_expression "uVar34 = (uint)((int)ppppppuVar36[1] << 8) >> 0x16" (identifier "uVar34") (= "=") (binary_expression "(uint)((int)ppppppuVar36[1] << 8) >> 0x16" (call_expression "(uint)((int)ppppppuVar36[1] << 8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)ppppppuVar36[1] << 8)" (( "(") (binary_expression "(int)ppppppuVar36[1] << 8" (cast_expression "(int)ppppppuVar36[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppppppuVar36[1]" (identifier "ppppppuVar36") ([ "[") (number_literal "1") (] "]"))) (<< "<<") (number_literal "8")) () ")"))) (>> ">>") (number_literal "0x16"))) (; ";")) (if_statement "if (bVar2 == 1) {\n      pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5));\n      pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f));\n      *pppppppuVar40 = (uint ******)pppppppuVar28;\nLAB_0001e060:\n      pppppppuVar40 = pppppppuStack_144;\n      if (uVar34 == 0) goto LAB_0001e15c;\n      if ((uVar34 & 0x20) == 0) {\n        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }\n        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      else {\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      pppppppuStack_144 = (uint *******)0x0;\n      uStack_140 = 0;\n      uStack_13c = 0;\n      uStack_138 = 0;\n      uStack_134 = 0;\n      uStack_130 = 0;\n      uStack_12c = 0;\n      uStack_128 = 0;\n    }\n    else {\n      if (bVar2 == 3) {\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }\n      if (bVar2 == 5) {\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      pppppppuVar28 = (uint *******)0xffffffff;\n      if (bVar2 == 7) {\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }" (if "if") (parenthesized_expression "(bVar2 == 1)" (( "(") (binary_expression "bVar2 == 1" (identifier "bVar2") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5));\n      pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f));\n      *pppppppuVar40 = (uint ******)pppppppuVar28;\nLAB_0001e060:\n      pppppppuVar40 = pppppppuStack_144;\n      if (uVar34 == 0) goto LAB_0001e15c;\n      if ((uVar34 & 0x20) == 0) {\n        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }\n        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      else {\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      pppppppuStack_144 = (uint *******)0x0;\n      uStack_140 = 0;\n      uStack_13c = 0;\n      uStack_138 = 0;\n      uStack_134 = 0;\n      uStack_130 = 0;\n      uStack_12c = 0;\n      uStack_128 = 0;\n    }" ({ "{") (expression_statement "pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5));" (assignment_expression "pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))" (identifier "pppppppuVar40") (= "=") (cast_expression "(uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))" (( "(") (binary_expression "&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5)" (pointer_expression "&pppppppuStack_144" (& "&") (identifier "pppppppuStack_144")) (+ "+") (parenthesized_expression "((int)(uint)*(byte *)ppppppuVar36 >> 5)" (( "(") (binary_expression "(int)(uint)*(byte *)ppppppuVar36 >> 5" (binary_expression "(int)(uint)*(byte *)ppppppuVar36" (cast_expression "(int)(uint)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)ppppppuVar36" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppppuVar36"))) (>> ">>") (number_literal "5")) () ")"))) () ")")))) (; ";")) (expression_statement "pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f));" (assignment_expression "pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f))" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f))" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f))" (( "(") (binary_expression "(uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f)" (binary_expression "(uint)*pppppppuVar40" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pppppppuVar40")) (| "|") (binary_expression "1 << (*(byte *)ppppppuVar36 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(*(byte *)ppppppuVar36 & 0x1f)" (( "(") (binary_expression "*(byte *)ppppppuVar36 & 0x1f" (pointer_expression "*(byte *)ppppppuVar36" (* "*") (cast_expression "(byte *)ppppppuVar36" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppppuVar36"))) (& "&") (number_literal "0x1f")) () ")")))) () ")")))) (; ";")) (expression_statement "*pppppppuVar40 = (uint ******)pppppppuVar28;" (assignment_expression "*pppppppuVar40 = (uint ******)pppppppuVar28" (pointer_expression "*pppppppuVar40" (* "*") (identifier "pppppppuVar40")) (= "=") (cast_expression "(uint ******)pppppppuVar28" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "pppppppuVar28"))) (; ";")) (labeled_statement "LAB_0001e060:\n      pppppppuVar40 = pppppppuStack_144;" (statement_identifier "LAB_0001e060") (: ":") (expression_statement "pppppppuVar40 = pppppppuStack_144;" (assignment_expression "pppppppuVar40 = pppppppuStack_144" (identifier "pppppppuVar40") (= "=") (identifier "pppppppuStack_144")) (; ";"))) (if_statement "if (uVar34 == 0) goto LAB_0001e15c;" (if "if") (parenthesized_expression "(uVar34 == 0)" (( "(") (binary_expression "uVar34 == 0" (identifier "uVar34") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001e15c;" (goto "goto") (statement_identifier "LAB_0001e15c") (; ";"))) (if_statement "if ((uVar34 & 0x20) == 0) {\n        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }\n        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        pppppppuStack_144 = (uint *******)0x0;\n      }\n      else {\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }" (if "if") (parenthesized_expression "((uVar34 & 0x20) == 0)" (( "(") (binary_expression "(uVar34 & 0x20) == 0" (parenthesized_expression "(uVar34 & 0x20)" (( "(") (binary_expression "uVar34 & 0x20" (identifier "uVar34") (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;\nLAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }\n        if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }\n        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }\n        pppppppuStack_144 = (uint *******)0x0;\n      }" ({ "{") (if_statement "if ((uVar34 & 0x80) != 0) goto LAB_0001e428;" (if "if") (parenthesized_expression "((uVar34 & 0x80) != 0)" (( "(") (binary_expression "(uVar34 & 0x80) != 0" (parenthesized_expression "(uVar34 & 0x80)" (( "(") (binary_expression "uVar34 & 0x80" (identifier "uVar34") (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001e428;" (goto "goto") (statement_identifier "LAB_0001e428") (; ";"))) (labeled_statement "LAB_0001e07c:\n        if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }" (statement_identifier "LAB_0001e07c") (: ":") (if_statement "if ((uVar34 & 4) != 0) {\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }" (if "if") (parenthesized_expression "((uVar34 & 4) != 0)" (( "(") (binary_expression "(uVar34 & 4) != 0" (parenthesized_expression "(uVar34 & 4)" (( "(") (binary_expression "uVar34 & 4" (identifier "uVar34") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }\n          if (uVar26 == 0) goto LAB_0001dcc8;\n        }" ({ "{") (if_statement "if (bVar2 == 1) {\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }" (if "if") (parenthesized_expression "(bVar2 == 1)" (( "(") (binary_expression "bVar2 == 1" (identifier "bVar2") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }" ({ "{") (if_statement "if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;" (if "if") (parenthesized_expression "(((uint)ppppppuVar36[1] & 0x200) == 0)" (( "(") (binary_expression "((uint)ppppppuVar36[1] & 0x200) == 0" (parenthesized_expression "((uint)ppppppuVar36[1] & 0x200)" (( "(") (binary_expression "(uint)ppppppuVar36[1] & 0x200" (cast_expression "(uint)ppppppuVar36[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppppppuVar36[1]" (identifier "ppppppuVar36") ([ "[") (number_literal "1") (] "]"))) (& "&") (number_literal "0x200")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001e428;" (goto "goto") (statement_identifier "LAB_0001e428") (; ";"))) (expression_statement "ppppppuVar13 = pppppppuVar19[0x17];" (assignment_expression "ppppppuVar13 = pppppppuVar19[0x17]" (identifier "ppppppuVar13") (= "=") (subscript_expression "pppppppuVar19[0x17]" (identifier "pppppppuVar19") ([ "[") (number_literal "0x17") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }" (else "else") (compound_statement "{\n            ppppppuVar13 = pppppppuVar19[0x17];\n          }" ({ "{") (expression_statement "ppppppuVar13 = pppppppuVar19[0x17];" (assignment_expression "ppppppuVar13 = pppppppuVar19[0x17]" (identifier "ppppppuVar13") (= "=") (subscript_expression "pppppppuVar19[0x17]" (identifier "pppppppuVar19") ([ "[") (number_literal "0x17") (] "]"))) (; ";")) (} "}")))) (if_statement "if ((int)ppppppuVar13 < 2) {\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }" (if "if") (parenthesized_expression "((int)ppppppuVar13 < 2)" (( "(") (binary_expression "(int)ppppppuVar13 < 2" (cast_expression "(int)ppppppuVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppuVar13")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }" ({ "{") (expression_statement "pppppppuVar16 = pppppppuVar19 + 0x18;" (assignment_expression "pppppppuVar16 = pppppppuVar19 + 0x18" (identifier "pppppppuVar16") (= "=") (binary_expression "pppppppuVar19 + 0x18" (identifier "pppppppuVar19") (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" (identifier "uVar26") (= "=") (number_literal "0")) (; ";")) (expression_statement "pppppppuVar40 = (uint *******)&pppppppuStack_144;" (assignment_expression "pppppppuVar40 = (uint *******)&pppppppuStack_144" (identifier "pppppppuVar40") (= "=") (cast_expression "(uint *******)&pppppppuStack_144" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&pppppppuStack_144" (& "&") (identifier "pppppppuStack_144")))) (; ";")) (do_statement "do {\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);" (do "do") (compound_statement "{\n              pppppppuVar22 = pppppppuVar40 + 1;\n              ppppppuVar13 = *pppppppuVar16;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);\n              *pppppppuVar40 = (uint ******)pppppppuVar28;\n              uVar26 = uVar26 | (uint)pppppppuVar28;\n              pppppppuVar40 = pppppppuVar22;\n            }" ({ "{") (expression_statement "pppppppuVar22 = pppppppuVar40 + 1;" (assignment_expression "pppppppuVar22 = pppppppuVar40 + 1" (identifier "pppppppuVar22") (= "=") (binary_expression "pppppppuVar40 + 1" (identifier "pppppppuVar40") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppppppuVar13 = *pppppppuVar16;" (assignment_expression "ppppppuVar13 = *pppppppuVar16" (identifier "ppppppuVar13") (= "=") (pointer_expression "*pppppppuVar16" (* "*") (identifier "pppppppuVar16"))) (; ";")) (expression_statement "pppppppuVar16 = pppppppuVar16 + 1;" (assignment_expression "pppppppuVar16 = pppppppuVar16 + 1" (identifier "pppppppuVar16") (= "=") (binary_expression "pppppppuVar16 + 1" (identifier "pppppppuVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);" (assignment_expression "pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13)" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((uint)*pppppppuVar40 & (uint)ppppppuVar13)" (( "(") (binary_expression "(uint)*pppppppuVar40 & (uint)ppppppuVar13" (binary_expression "(uint)*pppppppuVar40" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pppppppuVar40")) (& "&") (cast_expression "(uint)ppppppuVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar13"))) () ")")))) (; ";")) (expression_statement "*pppppppuVar40 = (uint ******)pppppppuVar28;" (assignment_expression "*pppppppuVar40 = (uint ******)pppppppuVar28" (pointer_expression "*pppppppuVar40" (* "*") (identifier "pppppppuVar40")) (= "=") (cast_expression "(uint ******)pppppppuVar28" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "pppppppuVar28"))) (; ";")) (expression_statement "uVar26 = uVar26 | (uint)pppppppuVar28;" (assignment_expression "uVar26 = uVar26 | (uint)pppppppuVar28" (identifier "uVar26") (= "=") (binary_expression "uVar26 | (uint)pppppppuVar28" (identifier "uVar26") (| "|") (cast_expression "(uint)pppppppuVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppuVar28")))) (; ";")) (expression_statement "pppppppuVar40 = pppppppuVar22;" (assignment_expression "pppppppuVar40 = pppppppuVar22" (identifier "pppppppuVar40") (= "=") (identifier "pppppppuVar22")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(&ppppppuStack_124 != pppppppuVar22)" (( "(") (binary_expression "&ppppppuStack_124 != pppppppuVar22" (pointer_expression "&ppppppuStack_124" (& "&") (identifier "ppppppuStack_124")) (!= "!=") (identifier "pppppppuVar22")) () ")")) (; ";")) (} "}")) (else_clause "else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }" (else "else") (compound_statement "{\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar16 = pppppppuVar19 + 0x18;\n            uVar26 = 0;\n            pppppppuVar40 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);\n          }" ({ "{") (expression_statement "ppppppuVar13 = pppppppuVar19[0xf];" (assignment_expression "ppppppuVar13 = pppppppuVar19[0xf]" (identifier "ppppppuVar13") (= "=") (subscript_expression "pppppppuVar19[0xf]" (identifier "pppppppuVar19") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (expression_statement "pppppppuVar16 = pppppppuVar19 + 0x18;" (assignment_expression "pppppppuVar16 = pppppppuVar19 + 0x18" (identifier "pppppppuVar16") (= "=") (binary_expression "pppppppuVar19 + 0x18" (identifier "pppppppuVar19") (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" (identifier "uVar26") (= "=") (number_literal "0")) (; ";")) (expression_statement "pppppppuVar40 = (uint *******)&pppppppuStack_144;" (assignment_expression "pppppppuVar40 = (uint *******)&pppppppuStack_144" (identifier "pppppppuVar40") (= "=") (cast_expression "(uint *******)&pppppppuStack_144" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&pppppppuStack_144" (& "&") (identifier "pppppppuStack_144")))) (; ";")) (do_statement "do {\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            } while (&ppppppuStack_124 != pppppppuVar28);" (do "do") (compound_statement "{\n              pppppppuVar28 = pppppppuVar40 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar16;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar16 = pppppppuVar16 + 1;\n              ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);\n              *pppppppuVar40 = ppppppuVar32;\n              uVar26 = uVar26 | (uint)ppppppuVar32;\n              pppppppuVar40 = pppppppuVar28;\n            }" ({ "{") (expression_statement "pppppppuVar28 = pppppppuVar40 + 1;" (assignment_expression "pppppppuVar28 = pppppppuVar40 + 1" (identifier "pppppppuVar28") (= "=") (binary_expression "pppppppuVar40 + 1" (identifier "pppppppuVar40") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppuVar31 = *ppppppuVar13;" (assignment_expression "pppppuVar31 = *ppppppuVar13" (identifier "pppppuVar31") (= "=") (pointer_expression "*ppppppuVar13" (* "*") (identifier "ppppppuVar13"))) (; ";")) (expression_statement "ppppppuVar32 = *pppppppuVar16;" (assignment_expression "ppppppuVar32 = *pppppppuVar16" (identifier "ppppppuVar32") (= "=") (pointer_expression "*pppppppuVar16" (* "*") (identifier "pppppppuVar16"))) (; ";")) (expression_statement "ppppppuVar13 = ppppppuVar13 + 1;" (assignment_expression "ppppppuVar13 = ppppppuVar13 + 1" (identifier "ppppppuVar13") (= "=") (binary_expression "ppppppuVar13 + 1" (identifier "ppppppuVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppppuVar16 = pppppppuVar16 + 1;" (assignment_expression "pppppppuVar16 = pppppppuVar16 + 1" (identifier "pppppppuVar16") (= "=") (binary_expression "pppppppuVar16 + 1" (identifier "pppppppuVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);" (assignment_expression "ppppppuVar32 = (uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40)" (identifier "ppppppuVar32") (= "=") (cast_expression "(uint ******)\n                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40)" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40)" (( "(") (binary_expression "(~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40" (parenthesized_expression "(~(uint)pppppuVar31 | (uint)ppppppuVar32)" (( "(") (binary_expression "~(uint)pppppuVar31 | (uint)ppppppuVar32" (unary_expression "~(uint)pppppuVar31" (~ "~") (cast_expression "(uint)pppppuVar31" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppuVar31"))) (| "|") (cast_expression "(uint)ppppppuVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar32"))) () ")")) (& "&") (binary_expression "(uint)*pppppppuVar40" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pppppppuVar40"))) () ")")))) (; ";")) (expression_statement "*pppppppuVar40 = ppppppuVar32;" (assignment_expression "*pppppppuVar40 = ppppppuVar32" (pointer_expression "*pppppppuVar40" (* "*") (identifier "pppppppuVar40")) (= "=") (identifier "ppppppuVar32")) (; ";")) (expression_statement "uVar26 = uVar26 | (uint)ppppppuVar32;" (assignment_expression "uVar26 = uVar26 | (uint)ppppppuVar32" (identifier "uVar26") (= "=") (binary_expression "uVar26 | (uint)ppppppuVar32" (identifier "uVar26") (| "|") (cast_expression "(uint)ppppppuVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar32")))) (; ";")) (expression_statement "pppppppuVar40 = pppppppuVar28;" (assignment_expression "pppppppuVar40 = pppppppuVar28" (identifier "pppppppuVar40") (= "=") (identifier "pppppppuVar28")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(&ppppppuStack_124 != pppppppuVar28)" (( "(") (binary_expression "&ppppppuStack_124 != pppppppuVar28" (pointer_expression "&ppppppuStack_124" (& "&") (identifier "ppppppuStack_124")) (!= "!=") (identifier "pppppppuVar28")) () ")")) (; ";")) (} "}")))) (if_statement "if (uVar26 == 0) goto LAB_0001dcc8;" (if "if") (parenthesized_expression "(uVar26 == 0)" (( "(") (binary_expression "uVar26 == 0" (identifier "uVar26") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001dcc8;" (goto "goto") (statement_identifier "LAB_0001dcc8") (; ";"))) (} "}")))) (if_statement "if ((uVar34 & 8) == 0) {\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }" (if "if") (parenthesized_expression "((uVar34 & 8) == 0)" (( "(") (binary_expression "(uVar34 & 8) == 0" (parenthesized_expression "(uVar34 & 8)" (( "(") (binary_expression "uVar34 & 8" (identifier "uVar34") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }\n          iStack_178 = (int)pppppppuVar24 * 2;\n          if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }\n          ppppppuVar20 = pppppppuVar18[2];\n          goto LAB_0001dcc8;\n        }" ({ "{") (labeled_statement "LAB_0001e15c:\n          pppppppuVar40 = (uint *******)0x0;" (statement_identifier "LAB_0001e15c") (: ":") (expression_statement "pppppppuVar40 = (uint *******)0x0;" (assignment_expression "pppppppuVar40 = (uint *******)0x0" (identifier "pppppppuVar40") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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 (0 < (int)pppppppuVar24) {\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }" (if "if") (parenthesized_expression "(0 < (int)pppppppuVar24)" (( "(") (binary_expression "0 < (int)pppppppuVar24" (number_literal "0") (< "<") (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24"))) () ")")) (compound_statement "{\n            pppppppuVar40 = (uint *******)0x0;\n            puVar14 = puVar7;\n            do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);\n          }" ({ "{") (expression_statement "pppppppuVar40 = (uint *******)0x0;" (assignment_expression "pppppppuVar40 = (uint *******)0x0" (identifier "pppppppuVar40") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar14 = puVar7;" (assignment_expression "puVar14 = puVar7" (identifier "puVar14") (= "=") (identifier "puVar7")) (; ";")) (do_statement "do {\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            } while ((int)pppppppuVar40 < (int)pppppppuVar24);" (do "do") (compound_statement "{\n              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);\n              if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }\n              puVar14 = puVar14 + 8;\n              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);\n            }" ({ "{") (expression_statement "pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);" (assignment_expression "pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20)" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)((int)pppppppuVar40 * 0x20)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppuVar40 * 0x20)" (( "(") (binary_expression "(int)pppppppuVar40 * 0x20" (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40")) (* "*") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if ((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }" (if "if") (parenthesized_expression "((bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0))" (( "(") (binary_expression "(bVar2 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)" (parenthesized_expression "(bVar2 != 1)" (( "(") (binary_expression "bVar2 != 1" (identifier "bVar2") (!= "!=") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)" (( "(") (binary_expression "((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0" (parenthesized_expression "((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1)" (( "(") (binary_expression "(puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f) & 1" (binary_expression "(puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>\n                   (*(byte *)ppppppuVar36 & 0x1f)" (subscript_expression "(puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8]" (parenthesized_expression "(puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))" (( "(") (binary_expression "puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5)" (identifier "puVar7") (+ "+") (parenthesized_expression "((int)(uint)*(byte *)ppppppuVar36 >> 5)" (( "(") (binary_expression "(int)(uint)*(byte *)ppppppuVar36 >> 5" (binary_expression "(int)(uint)*(byte *)ppppppuVar36" (cast_expression "(int)(uint)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)ppppppuVar36" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppppuVar36"))) (>> ">>") (number_literal "5")) () ")"))) () ")")) ([ "[") (binary_expression "(int)pppppppuVar40 * 8" (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40")) (* "*") (number_literal "8")) (] "]")) (>> ">>") (parenthesized_expression "(*(byte *)ppppppuVar36 & 0x1f)" (( "(") (binary_expression "*(byte *)ppppppuVar36 & 0x1f" (pointer_expression "*(byte *)ppppppuVar36" (* "*") (cast_expression "(byte *)ppppppuVar36" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppppuVar36"))) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                uVar34 = 0;\n                pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                pppppppuVar22 = &ppppppuStack_124;\n                puVar33 = puVar14;\n                do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);\n                pppppppuVar28 = (uint *******)&pppppppuStack_144;\n                if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }\n              }" ({ "{") (expression_statement "uVar34 = 0;" (assignment_expression "uVar34 = 0" (identifier "uVar34") (= "=") (number_literal "0")) (; ";")) (expression_statement "pppppppuVar16 = (uint *******)&pppppppuStack_144;" (assignment_expression "pppppppuVar16 = (uint *******)&pppppppuStack_144" (identifier "pppppppuVar16") (= "=") (cast_expression "(uint *******)&pppppppuStack_144" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&pppppppuStack_144" (& "&") (identifier "pppppppuStack_144")))) (; ";")) (expression_statement "pppppppuVar22 = &ppppppuStack_124;" (assignment_expression "pppppppuVar22 = &ppppppuStack_124" (identifier "pppppppuVar22") (= "=") (pointer_expression "&ppppppuStack_124" (& "&") (identifier "ppppppuStack_124"))) (; ";")) (expression_statement "puVar33 = puVar14;" (assignment_expression "puVar33 = puVar14" (identifier "puVar33") (= "=") (identifier "puVar14")) (; ";")) (do_statement "do {\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                } while (&ppppppuStack_124 != pppppppuVar28);" (do "do") (compound_statement "{\n                  pppppppuVar28 = pppppppuVar16 + 1;\n                  uVar26 = *puVar33;\n                  ppppppuVar20 = *pppppppuVar16;\n                  puVar33 = puVar33 + 1;\n                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);\n                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;\n                  pppppppuVar16 = pppppppuVar28;\n                  pppppppuVar22 = pppppppuVar22 + 1;\n                }" ({ "{") (expression_statement "pppppppuVar28 = pppppppuVar16 + 1;" (assignment_expression "pppppppuVar28 = pppppppuVar16 + 1" (identifier "pppppppuVar28") (= "=") (binary_expression "pppppppuVar16 + 1" (identifier "pppppppuVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar26 = *puVar33;" (assignment_expression "uVar26 = *puVar33" (identifier "uVar26") (= "=") (pointer_expression "*puVar33" (* "*") (identifier "puVar33"))) (; ";")) (expression_statement "ppppppuVar20 = *pppppppuVar16;" (assignment_expression "ppppppuVar20 = *pppppppuVar16" (identifier "ppppppuVar20") (= "=") (pointer_expression "*pppppppuVar16" (* "*") (identifier "pppppppuVar16"))) (; ";")) (expression_statement "puVar33 = puVar33 + 1;" (assignment_expression "puVar33 = puVar33 + 1" (identifier "puVar33") (= "=") (binary_expression "puVar33 + 1" (identifier "puVar33") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);" (assignment_expression "*pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26)" (pointer_expression "*pppppppuVar22" (* "*") (identifier "pppppppuVar22")) (= "=") (cast_expression "(uint ******)((uint)ppppppuVar20 & uVar26)" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((uint)ppppppuVar20 & uVar26)" (( "(") (binary_expression "(uint)ppppppuVar20 & uVar26" (cast_expression "(uint)ppppppuVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar20")) (& "&") (identifier "uVar26")) () ")")))) (; ";")) (expression_statement "uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;" (assignment_expression "uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26" (identifier "uVar34") (= "=") (binary_expression "uVar34 | (uint)ppppppuVar20 & uVar26" (identifier "uVar34") (| "|") (binary_expression "(uint)ppppppuVar20 & uVar26" (cast_expression "(uint)ppppppuVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar20")) (& "&") (identifier "uVar26")))) (; ";")) (expression_statement "pppppppuVar16 = pppppppuVar28;" (assignment_expression "pppppppuVar16 = pppppppuVar28" (identifier "pppppppuVar16") (= "=") (identifier "pppppppuVar28")) (; ";")) (expression_statement "pppppppuVar22 = pppppppuVar22 + 1;" (assignment_expression "pppppppuVar22 = pppppppuVar22 + 1" (identifier "pppppppuVar22") (= "=") (binary_expression "pppppppuVar22 + 1" (identifier "pppppppuVar22") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(&ppppppuStack_124 != pppppppuVar28)" (( "(") (binary_expression "&ppppppuStack_124 != pppppppuVar28" (pointer_expression "&ppppppuStack_124" (& "&") (identifier "ppppppuStack_124")) (!= "!=") (identifier "pppppppuVar28")) () ")")) (; ";")) (expression_statement "pppppppuVar28 = (uint *******)&pppppppuStack_144;" (assignment_expression "pppppppuVar28 = (uint *******)&pppppppuStack_144" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)&pppppppuStack_144" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&pppppppuStack_144" (& "&") (identifier "pppppppuStack_144")))) (; ";")) (if_statement "if (uVar34 != 0) {\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }" (if "if") (parenthesized_expression "(uVar34 != 0)" (( "(") (binary_expression "uVar34 != 0" (identifier "uVar34") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  uVar26 = 0;\n                  uVar34 = 0;\n                  pppppppuVar16 = (uint *******)&pppppppuStack_144;\n                  puVar33 = puVar14;\n                  ppiVar37 = &piStack_104;\n                  do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);\n                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);\n                  if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }\n                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];\n                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);\n                  if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }\n                  if (uVar26 == 0) break;\n                }" ({ "{") (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" (identifier "uVar26") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar34 = 0;" (assignment_expression "uVar34 = 0" (identifier "uVar34") (= "=") (number_literal "0")) (; ";")) (expression_statement "pppppppuVar16 = (uint *******)&pppppppuStack_144;" (assignment_expression "pppppppuVar16 = (uint *******)&pppppppuStack_144" (identifier "pppppppuVar16") (= "=") (cast_expression "(uint *******)&pppppppuStack_144" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&pppppppuStack_144" (& "&") (identifier "pppppppuStack_144")))) (; ";")) (expression_statement "puVar33 = puVar14;" (assignment_expression "puVar33 = puVar14" (identifier "puVar33") (= "=") (identifier "puVar14")) (; ";")) (expression_statement "ppiVar37 = &piStack_104;" (assignment_expression "ppiVar37 = &piStack_104" (identifier "ppiVar37") (= "=") (pointer_expression "&piStack_104" (& "&") (identifier "piStack_104"))) (; ";")) (do_statement "do {\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  } while (puVar14 + 8 != puVar33);" (do "do") (compound_statement "{\n                    uVar29 = *puVar33;\n                    puVar33 = puVar33 + 1;\n                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);\n                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);\n                    *ppiVar37 = piVar39;\n                    *pppppppuVar16 = ppppppuVar20;\n                    uVar34 = uVar34 | (uint)piVar39;\n                    uVar26 = uVar26 | (uint)ppppppuVar20;\n                    pppppppuVar16 = pppppppuVar16 + 1;\n                    ppiVar37 = ppiVar37 + 1;\n                  }" ({ "{") (expression_statement "uVar29 = *puVar33;" (assignment_expression "uVar29 = *puVar33" (identifier "uVar29") (= "=") (pointer_expression "*puVar33" (* "*") (identifier "puVar33"))) (; ";")) (expression_statement "puVar33 = puVar33 + 1;" (assignment_expression "puVar33 = puVar33 + 1" (identifier "puVar33") (= "=") (binary_expression "puVar33 + 1" (identifier "puVar33") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);" (assignment_expression "piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29)" (identifier "piVar39") (= "=") (cast_expression "(int *)(~(uint)*pppppppuVar16 & uVar29)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(~(uint)*pppppppuVar16 & uVar29)" (( "(") (binary_expression "~(uint)*pppppppuVar16 & uVar29" (binary_expression "~(uint)*pppppppuVar16" (unary_expression "~(uint)" (~ "~") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "pppppppuVar16")) (& "&") (identifier "uVar29")) () ")")))) (; ";")) (expression_statement "ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);" (assignment_expression "ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16)" (identifier "ppppppuVar20") (= "=") (cast_expression "(uint ******)(~uVar29 & (uint)*pppppppuVar16)" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(~uVar29 & (uint)*pppppppuVar16)" (( "(") (binary_expression "~uVar29 & (uint)*pppppppuVar16" (unary_expression "~uVar29" (~ "~") (identifier "uVar29")) (& "&") (binary_expression "(uint)*pppppppuVar16" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pppppppuVar16"))) () ")")))) (; ";")) (expression_statement "*ppiVar37 = piVar39;" (assignment_expression "*ppiVar37 = piVar39" (pointer_expression "*ppiVar37" (* "*") (identifier "ppiVar37")) (= "=") (identifier "piVar39")) (; ";")) (expression_statement "*pppppppuVar16 = ppppppuVar20;" (assignment_expression "*pppppppuVar16 = ppppppuVar20" (pointer_expression "*pppppppuVar16" (* "*") (identifier "pppppppuVar16")) (= "=") (identifier "ppppppuVar20")) (; ";")) (expression_statement "uVar34 = uVar34 | (uint)piVar39;" (assignment_expression "uVar34 = uVar34 | (uint)piVar39" (identifier "uVar34") (= "=") (binary_expression "uVar34 | (uint)piVar39" (identifier "uVar34") (| "|") (cast_expression "(uint)piVar39" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar39")))) (; ";")) (expression_statement "uVar26 = uVar26 | (uint)ppppppuVar20;" (assignment_expression "uVar26 = uVar26 | (uint)ppppppuVar20" (identifier "uVar26") (= "=") (binary_expression "uVar26 | (uint)ppppppuVar20" (identifier "uVar26") (| "|") (cast_expression "(uint)ppppppuVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar20")))) (; ";")) (expression_statement "pppppppuVar16 = pppppppuVar16 + 1;" (assignment_expression "pppppppuVar16 = pppppppuVar16 + 1" (identifier "pppppppuVar16") (= "=") (binary_expression "pppppppuVar16 + 1" (identifier "pppppppuVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppiVar37 = ppiVar37 + 1;" (assignment_expression "ppiVar37 = ppiVar37 + 1" (identifier "ppiVar37") (= "=") (binary_expression "ppiVar37 + 1" (identifier "ppiVar37") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar14 + 8 != puVar33)" (( "(") (binary_expression "puVar14 + 8 != puVar33" (binary_expression "puVar14 + 8" (identifier "puVar14") (+ "+") (number_literal "8")) (!= "!=") (identifier "puVar33")) () ")")) (; ";")) (expression_statement "pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);" (assignment_expression "pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc)" (identifier "pppppppuVar16") (= "=") (cast_expression "(uint *******)(iVar25 + (int)pppppppuVar40 * 0xc)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(iVar25 + (int)pppppppuVar40 * 0xc)" (( "(") (binary_expression "iVar25 + (int)pppppppuVar40 * 0xc" (identifier "iVar25") (+ "+") (binary_expression "(int)pppppppuVar40 * 0xc" (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40")) (* "*") (number_literal "0xc"))) () ")")))) (; ";")) (if_statement "if (uVar34 != 0) {\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }" (if "if") (parenthesized_expression "(uVar34 != 0)" (( "(") (binary_expression "uVar34 != 0" (identifier "uVar34") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    iStack_178 = (int)pppppppuVar24 * 2;\n                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;\n                    *puVar33 = (uint)piStack_104;\n                    puVar33[1] = uStack_100;\n                    puVar33[2] = uStack_fc;\n                    puVar33[3] = uStack_f8;\n                    puVar33[4] = uStack_f4;\n                    puVar33[5] = uStack_f0;\n                    puVar33[6] = uStack_ec;\n                    puVar33[7] = uStack_e8;\n                    puVar14[1] = uStack_120;\n                    puVar14[2] = uStack_11c;\n                    *puVar14 = (uint)ppppppuStack_124;\n                    puVar14[3] = uStack_118;\n                    puVar14[4] = uStack_114;\n                    puVar14[5] = uStack_110;\n                    puVar14[6] = uStack_10c;\n                    puVar14[7] = uStack_108;\n                    pppppppuVar28 = pppppppuVar16;\n                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);\n                    if (iVar41 != 0) goto LAB_0001e458;\n                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n                  }" ({ "{") (expression_statement "iStack_178 = (int)pppppppuVar24 * 2;" (assignment_expression "iStack_178 = (int)pppppppuVar24 * 2" (identifier "iStack_178") (= "=") (binary_expression "(int)pppppppuVar24 * 2" (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24")) (* "*") (number_literal "2"))) (; ";")) (expression_statement "puVar33 = puVar7 + (int)pppppppuVar24 * 8;" (assignment_expression "puVar33 = puVar7 + (int)pppppppuVar24 * 8" (identifier "puVar33") (= "=") (binary_expression "puVar7 + (int)pppppppuVar24 * 8" (identifier "puVar7") (+ "+") (binary_expression "(int)pppppppuVar24 * 8" (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24")) (* "*") (number_literal "8")))) (; ";")) (expression_statement "*puVar33 = (uint)piStack_104;" (assignment_expression "*puVar33 = (uint)piStack_104" (pointer_expression "*puVar33" (* "*") (identifier "puVar33")) (= "=") (cast_expression "(uint)piStack_104" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piStack_104"))) (; ";")) (expression_statement "puVar33[1] = uStack_100;" (assignment_expression "puVar33[1] = uStack_100" (subscript_expression "puVar33[1]" (identifier "puVar33") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uStack_100")) (; ";")) (expression_statement "puVar33[2] = uStack_fc;" (assignment_expression "puVar33[2] = uStack_fc" (subscript_expression "puVar33[2]" (identifier "puVar33") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uStack_fc")) (; ";")) (expression_statement "puVar33[3] = uStack_f8;" (assignment_expression "puVar33[3] = uStack_f8" (subscript_expression "puVar33[3]" (identifier "puVar33") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uStack_f8")) (; ";")) (expression_statement "puVar33[4] = uStack_f4;" (assignment_expression "puVar33[4] = uStack_f4" (subscript_expression "puVar33[4]" (identifier "puVar33") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uStack_f4")) (; ";")) (expression_statement "puVar33[5] = uStack_f0;" (assignment_expression "puVar33[5] = uStack_f0" (subscript_expression "puVar33[5]" (identifier "puVar33") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uStack_f0")) (; ";")) (expression_statement "puVar33[6] = uStack_ec;" (assignment_expression "puVar33[6] = uStack_ec" (subscript_expression "puVar33[6]" (identifier "puVar33") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uStack_ec")) (; ";")) (expression_statement "puVar33[7] = uStack_e8;" (assignment_expression "puVar33[7] = uStack_e8" (subscript_expression "puVar33[7]" (identifier "puVar33") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uStack_e8")) (; ";")) (expression_statement "puVar14[1] = uStack_120;" (assignment_expression "puVar14[1] = uStack_120" (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uStack_120")) (; ";")) (expression_statement "puVar14[2] = uStack_11c;" (assignment_expression "puVar14[2] = uStack_11c" (subscript_expression "puVar14[2]" (identifier "puVar14") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uStack_11c")) (; ";")) (expression_statement "*puVar14 = (uint)ppppppuStack_124;" (assignment_expression "*puVar14 = (uint)ppppppuStack_124" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (cast_expression "(uint)ppppppuStack_124" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuStack_124"))) (; ";")) (expression_statement "puVar14[3] = uStack_118;" (assignment_expression "puVar14[3] = uStack_118" (subscript_expression "puVar14[3]" (identifier "puVar14") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uStack_118")) (; ";")) (expression_statement "puVar14[4] = uStack_114;" (assignment_expression "puVar14[4] = uStack_114" (subscript_expression "puVar14[4]" (identifier "puVar14") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uStack_114")) (; ";")) (expression_statement "puVar14[5] = uStack_110;" (assignment_expression "puVar14[5] = uStack_110" (subscript_expression "puVar14[5]" (identifier "puVar14") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uStack_110")) (; ";")) (expression_statement "puVar14[6] = uStack_10c;" (assignment_expression "puVar14[6] = uStack_10c" (subscript_expression "puVar14[6]" (identifier "puVar14") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uStack_10c")) (; ";")) (expression_statement "puVar14[7] = uStack_108;" (assignment_expression "puVar14[7] = uStack_108" (subscript_expression "puVar14[7]" (identifier "puVar14") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uStack_108")) (; ";")) (expression_statement "pppppppuVar28 = pppppppuVar16;" (assignment_expression "pppppppuVar28 = pppppppuVar16" (identifier "pppppppuVar28") (= "=") (identifier "pppppppuVar16")) (; ";")) (expression_statement "iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);" (assignment_expression "iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc)" (identifier "iVar41") (= "=") (call_expression "(*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc)" (parenthesized_expression "(*(code *)(iVar35 + -0x4580))" (( "(") (pointer_expression "*(code *)(iVar35 + -0x4580)" (* "*") (cast_expression "(code *)(iVar35 + -0x4580)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar35 + -0x4580)" (( "(") (binary_expression "iVar35 + -0x4580" (identifier "iVar35") (+ "+") (number_literal "-0x4580")) () ")")))) () ")")) (argument_list "(iVar25 + (int)pppppppuVar24 * 0xc)" (( "(") (binary_expression "iVar25 + (int)pppppppuVar24 * 0xc" (identifier "iVar25") (+ "+") (binary_expression "(int)pppppppuVar24 * 0xc" (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24")) (* "*") (number_literal "0xc"))) () ")")))) (; ";")) (if_statement "if (iVar41 != 0) goto LAB_0001e458;" (if "if") (parenthesized_expression "(iVar41 != 0)" (( "(") (binary_expression "iVar41 != 0" (identifier "iVar41") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001e458;" (goto "goto") (statement_identifier "LAB_0001e458") (; ";"))) (expression_statement "pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);" (assignment_expression "pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1)" (identifier "pppppppuVar24") (= "=") (cast_expression "(uint *******)((int)pppppppuVar24 + 1)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppuVar24 + 1)" (( "(") (binary_expression "(int)pppppppuVar24 + 1" (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (expression_statement "pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];" (assignment_expression "pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184]" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)pppppppuVar18[3][iStack_184]" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppuVar18[3][iStack_184]" (subscript_expression "pppppppuVar18[3]" (identifier "pppppppuVar18") ([ "[") (number_literal "3") (] "]")) ([ "[") (identifier "iStack_184") (] "]")))) (; ";")) (expression_statement "iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);" (assignment_expression "iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16)" (identifier "iVar41") (= "=") (call_expression "(*(code *)(iVar5 + -0x7b38))(pppppppuVar16)" (parenthesized_expression "(*(code *)(iVar5 + -0x7b38))" (( "(") (pointer_expression "*(code *)(iVar5 + -0x7b38)" (* "*") (cast_expression "(code *)(iVar5 + -0x7b38)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + -0x7b38)" (( "(") (binary_expression "iVar5 + -0x7b38" (identifier "iVar5") (+ "+") (number_literal "-0x7b38")) () ")")))) () ")")) (argument_list "(pppppppuVar16)" (( "(") (identifier "pppppppuVar16") () ")")))) (; ";")) (if_statement "if (iVar41 == 0) {\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }" (if "if") (parenthesized_expression "(iVar41 == 0)" (( "(") (binary_expression "iVar41 == 0" (identifier "iVar41") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    iStack_178 = (int)pppppppuVar24 << 1;\n                    goto LAB_0001e458;\n                  }" ({ "{") (expression_statement "iStack_178 = (int)pppppppuVar24 << 1;" (assignment_expression "iStack_178 = (int)pppppppuVar24 << 1" (identifier "iStack_178") (= "=") (binary_expression "(int)pppppppuVar24 << 1" (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24")) (<< "<<") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_0001e458;" (goto "goto") (statement_identifier "LAB_0001e458") (; ";")) (} "}"))) (if_statement "if (uVar26 == 0) break;" (if "if") (parenthesized_expression "(uVar26 == 0)" (( "(") (binary_expression "uVar26 == 0" (identifier "uVar26") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}"))) (} "}"))) (expression_statement "puVar14 = puVar14 + 8;" (assignment_expression "puVar14 = puVar14 + 8" (identifier "puVar14") (= "=") (binary_expression "puVar14 + 8" (identifier "puVar14") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);" (assignment_expression "pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1)" (identifier "pppppppuVar40") (= "=") (cast_expression "(uint *******)((int)pppppppuVar40 + 1)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppuVar40 + 1)" (( "(") (binary_expression "(int)pppppppuVar40 + 1" (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)pppppppuVar40 < (int)pppppppuVar24)" (( "(") (binary_expression "(int)pppppppuVar40 < (int)pppppppuVar24" (cast_expression "(int)pppppppuVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar40")) (< "<") (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24"))) () ")")) (; ";")) (} "}"))) (expression_statement "iStack_178 = (int)pppppppuVar24 * 2;" (assignment_expression "iStack_178 = (int)pppppppuVar24 * 2" (identifier "iStack_178") (= "=") (binary_expression "(int)pppppppuVar24 * 2" (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24")) (* "*") (number_literal "2"))) (; ";")) (if_statement "if (pppppppuVar24 == pppppppuVar40) {\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }" (if "if") (parenthesized_expression "(pppppppuVar24 == pppppppuVar40)" (( "(") (binary_expression "pppppppuVar24 == pppppppuVar40" (identifier "pppppppuVar24") (== "==") (identifier "pppppppuVar40")) () ")")) (compound_statement "{\n            ppppppuVar20 = pppppppuVar18[3];\n            pcVar10 = *(code **)(pcVar46 + 0x1e724);\n            puVar14 = puVar7 + (int)pppppppuVar24 * 8;\n            *puVar14 = (uint)pppppppuStack_144;\n            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);\n            puVar14[1] = uStack_140;\n            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);\n            puVar14[2] = uStack_13c;\n            puVar14[3] = uStack_138;\n            puVar14[4] = uStack_134;\n            puVar14[5] = uStack_130;\n            puVar14[6] = uStack_12c;\n            puVar14[7] = uStack_128;\n            ppppppuVar36 = *pppppppuVar28;\n            *puVar9 = 1;\n            puVar9[1] = 1;\n            puVar14 = (uint *)(*pcVar10)(4);\n            puVar9[2] = puVar14;\n            if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }\n            puVar9[1] = 0;\n            *puVar9 = 0;\n            if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            goto LAB_0001dffc;\n          }" ({ "{") (expression_statement "ppppppuVar20 = pppppppuVar18[3];" (assignment_expression "ppppppuVar20 = pppppppuVar18[3]" (identifier "ppppppuVar20") (= "=") (subscript_expression "pppppppuVar18[3]" (identifier "pppppppuVar18") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "pcVar10 = *(code **)(pcVar46 + 0x1e724);" (assignment_expression "pcVar10 = *(code **)(pcVar46 + 0x1e724)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(pcVar46 + 0x1e724)" (* "*") (cast_expression "(code **)(pcVar46 + 0x1e724)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x1e724)" (( "(") (binary_expression "pcVar46 + 0x1e724" (identifier "pcVar46") (+ "+") (number_literal "0x1e724")) () ")"))))) (; ";")) (expression_statement "puVar14 = puVar7 + (int)pppppppuVar24 * 8;" (assignment_expression "puVar14 = puVar7 + (int)pppppppuVar24 * 8" (identifier "puVar14") (= "=") (binary_expression "puVar7 + (int)pppppppuVar24 * 8" (identifier "puVar7") (+ "+") (binary_expression "(int)pppppppuVar24 * 8" (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24")) (* "*") (number_literal "8")))) (; ";")) (expression_statement "*puVar14 = (uint)pppppppuStack_144;" (assignment_expression "*puVar14 = (uint)pppppppuStack_144" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (cast_expression "(uint)pppppppuStack_144" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppuStack_144"))) (; ";")) (expression_statement "pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);" (assignment_expression "pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184)" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)(ppppppuVar20 + iStack_184)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(ppppppuVar20 + iStack_184)" (( "(") (binary_expression "ppppppuVar20 + iStack_184" (identifier "ppppppuVar20") (+ "+") (identifier "iStack_184")) () ")")))) (; ";")) (expression_statement "puVar14[1] = uStack_140;" (assignment_expression "puVar14[1] = uStack_140" (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uStack_140")) (; ";")) (expression_statement "puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);" (assignment_expression "puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc)" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + (int)pppppppuVar24 * 0xc)" (( "(") (binary_expression "iVar25 + (int)pppppppuVar24 * 0xc" (identifier "iVar25") (+ "+") (binary_expression "(int)pppppppuVar24 * 0xc" (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24")) (* "*") (number_literal "0xc"))) () ")")))) (; ";")) (expression_statement "puVar14[2] = uStack_13c;" (assignment_expression "puVar14[2] = uStack_13c" (subscript_expression "puVar14[2]" (identifier "puVar14") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uStack_13c")) (; ";")) (expression_statement "puVar14[3] = uStack_138;" (assignment_expression "puVar14[3] = uStack_138" (subscript_expression "puVar14[3]" (identifier "puVar14") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uStack_138")) (; ";")) (expression_statement "puVar14[4] = uStack_134;" (assignment_expression "puVar14[4] = uStack_134" (subscript_expression "puVar14[4]" (identifier "puVar14") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uStack_134")) (; ";")) (expression_statement "puVar14[5] = uStack_130;" (assignment_expression "puVar14[5] = uStack_130" (subscript_expression "puVar14[5]" (identifier "puVar14") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uStack_130")) (; ";")) (expression_statement "puVar14[6] = uStack_12c;" (assignment_expression "puVar14[6] = uStack_12c" (subscript_expression "puVar14[6]" (identifier "puVar14") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uStack_12c")) (; ";")) (expression_statement "puVar14[7] = uStack_128;" (assignment_expression "puVar14[7] = uStack_128" (subscript_expression "puVar14[7]" (identifier "puVar14") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uStack_128")) (; ";")) (expression_statement "ppppppuVar36 = *pppppppuVar28;" (assignment_expression "ppppppuVar36 = *pppppppuVar28" (identifier "ppppppuVar36") (= "=") (pointer_expression "*pppppppuVar28" (* "*") (identifier "pppppppuVar28"))) (; ";")) (expression_statement "*puVar9 = 1;" (assignment_expression "*puVar9 = 1" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar9[1] = 1;" (assignment_expression "puVar9[1] = 1" (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar14 = (uint *)(*pcVar10)(4);" (assignment_expression "puVar14 = (uint *)(*pcVar10)(4)" (identifier "puVar14") (= "=") (cast_expression "(uint *)(*pcVar10)(4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar10)(4)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(4)" (( "(") (number_literal "4") () ")"))))) (; ";")) (expression_statement "puVar9[2] = puVar14;" (assignment_expression "puVar9[2] = puVar14" (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "puVar14")) (; ";")) (if_statement "if (puVar14 != (uint *)0x0) {\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }" (if "if") (parenthesized_expression "(puVar14 != (uint *)0x0)" (( "(") (binary_expression "puVar14 != (uint *)0x0" (identifier "puVar14") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              ppppppuVar20 = pppppppuVar18[2];\n              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);\n              *puVar14 = (uint)ppppppuVar36;\n              pppppppuStack_144 = (uint *******)0x0;\n              uStack_140 = 0;\n              uStack_13c = 0;\n              uStack_138 = 0;\n              uStack_134 = 0;\n              uStack_130 = 0;\n              uStack_12c = 0;\n              uStack_128 = 0;\n              goto LAB_0001dcc8;\n            }" ({ "{") (expression_statement "ppppppuVar20 = pppppppuVar18[2];" (assignment_expression "ppppppuVar20 = pppppppuVar18[2]" (identifier "ppppppuVar20") (= "=") (subscript_expression "pppppppuVar18[2]" (identifier "pppppppuVar18") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);" (assignment_expression "pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1)" (identifier "pppppppuVar24") (= "=") (cast_expression "(uint *******)((int)pppppppuVar24 + 1)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppuVar24 + 1)" (( "(") (binary_expression "(int)pppppppuVar24 + 1" (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*puVar14 = (uint)ppppppuVar36;" (assignment_expression "*puVar14 = (uint)ppppppuVar36" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (cast_expression "(uint)ppppppuVar36" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar36"))) (; ";")) (expression_statement "pppppppuStack_144 = (uint *******)0x0;" (assignment_expression "pppppppuStack_144 = (uint *******)0x0" (identifier "pppppppuStack_144") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uStack_140 = 0;" (assignment_expression "uStack_140 = 0" (identifier "uStack_140") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_13c = 0;" (assignment_expression "uStack_13c = 0" (identifier "uStack_13c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_138 = 0;" (assignment_expression "uStack_138 = 0" (identifier "uStack_138") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_134 = 0;" (assignment_expression "uStack_134 = 0" (identifier "uStack_134") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_130 = 0;" (assignment_expression "uStack_130 = 0" (identifier "uStack_130") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_12c = 0;" (assignment_expression "uStack_12c = 0" (identifier "uStack_12c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_128 = 0;" (assignment_expression "uStack_128 = 0" (identifier "uStack_128") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0001dcc8;" (goto "goto") (statement_identifier "LAB_0001dcc8") (; ";")) (} "}"))) (expression_statement "puVar9[1] = 0;" (assignment_expression "puVar9[1] = 0" (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar9 = 0;" (assignment_expression "*puVar9 = 0" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (pppppppuVar24 == (uint *******)0x0) {\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }\n            else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }" (if "if") (parenthesized_expression "(pppppppuVar24 == (uint *******)0x0)" (( "(") (binary_expression "pppppppuVar24 == (uint *******)0x0" (identifier "pppppppuVar24") (== "==") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }" ({ "{") (expression_statement "(**(code **)(pcVar46 + 0x1e790))(iVar25);" (call_expression "(**(code **)(pcVar46 + 0x1e790))(iVar25)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" (( "(") (pointer_expression "**(code **)(pcVar46 + 0x1e790)" (* "*") (pointer_expression "*(code **)(pcVar46 + 0x1e790)" (* "*") (cast_expression "(code **)(pcVar46 + 0x1e790)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x1e790)" (( "(") (binary_expression "pcVar46 + 0x1e790" (identifier "pcVar46") (+ "+") (number_literal "0x1e790")) () ")"))))) () ")")) (argument_list "(iVar25)" (( "(") (identifier "iVar25") () ")"))) (; ";")) (} "}")) (else_clause "else {\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }" (else "else") (compound_statement "{\nLAB_0001e458:\n              iVar5 = iVar25;\n              do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);\n              (**(code **)(pcVar46 + 0x1e790))(iVar25);\n            }" ({ "{") (labeled_statement "LAB_0001e458:\n              iVar5 = iVar25;" (statement_identifier "LAB_0001e458") (: ":") (expression_statement "iVar5 = iVar25;" (assignment_expression "iVar5 = iVar25" (identifier "iVar5") (= "=") (identifier "iVar25")) (; ";"))) (do_statement "do {\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);" (do "do") (compound_statement "{\n                iVar35 = iVar5 + 0xc;\n                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n                iVar5 = iVar35;\n              }" ({ "{") (expression_statement "iVar35 = iVar5 + 0xc;" (assignment_expression "iVar35 = iVar5 + 0xc" (identifier "iVar35") (= "=") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "(**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));" (call_expression "(**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8))" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" (( "(") (pointer_expression "**(code **)(pcVar46 + 0x1e790)" (* "*") (pointer_expression "*(code **)(pcVar46 + 0x1e790)" (* "*") (cast_expression "(code **)(pcVar46 + 0x1e790)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x1e790)" (( "(") (binary_expression "pcVar46 + 0x1e790" (identifier "pcVar46") (+ "+") (number_literal "0x1e790")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar5 + 8))" (( "(") (pointer_expression "*(undefined4 *)(iVar5 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 8)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar5 = iVar35;" (assignment_expression "iVar5 = iVar35" (identifier "iVar5") (= "=") (identifier "iVar35")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35)" (( "(") (binary_expression "(int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35" (binary_expression "(int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25" (binary_expression "(int)(iStack_178 + (int)pppppppuVar24) * 4" (cast_expression "(int)(iStack_178 + (int)pppppppuVar24)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(iStack_178 + (int)pppppppuVar24)" (( "(") (binary_expression "iStack_178 + (int)pppppppuVar24" (identifier "iStack_178") (+ "+") (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24"))) () ")"))) (* "*") (number_literal "4")) (+ "+") (identifier "iVar25")) (!= "!=") (identifier "iVar35")) () ")")) (; ";")) (expression_statement "(**(code **)(pcVar46 + 0x1e790))(iVar25);" (call_expression "(**(code **)(pcVar46 + 0x1e790))(iVar25)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" (( "(") (pointer_expression "**(code **)(pcVar46 + 0x1e790)" (* "*") (pointer_expression "*(code **)(pcVar46 + 0x1e790)" (* "*") (cast_expression "(code **)(pcVar46 + 0x1e790)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x1e790)" (( "(") (binary_expression "pcVar46 + 0x1e790" (identifier "pcVar46") (+ "+") (number_literal "0x1e790")) () ")"))))) () ")")) (argument_list "(iVar25)" (( "(") (identifier "iVar25") () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_0001dffc;" (goto "goto") (statement_identifier "LAB_0001dffc") (; ";")) (} "}"))) (expression_statement "ppppppuVar20 = pppppppuVar18[2];" (assignment_expression "ppppppuVar20 = pppppppuVar18[2]" (identifier "ppppppuVar20") (= "=") (subscript_expression "pppppppuVar18[2]" (identifier "pppppppuVar18") ([ "[") (number_literal "2") (] "]"))) (; ";")) (goto_statement "goto LAB_0001dcc8;" (goto "goto") (statement_identifier "LAB_0001dcc8") (; ";")) (} "}"))) (if_statement "if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }" (if "if") (parenthesized_expression "((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0))" (( "(") (binary_expression "(bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)" (parenthesized_expression "(bVar2 != 1)" (( "(") (binary_expression "bVar2 != 1" (identifier "bVar2") (!= "!=") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(((uint)ppppppuVar36[1] & 0x200) == 0)" (( "(") (binary_expression "((uint)ppppppuVar36[1] & 0x200) == 0" (parenthesized_expression "((uint)ppppppuVar36[1] & 0x200)" (( "(") (binary_expression "(uint)ppppppuVar36[1] & 0x200" (cast_expression "(uint)ppppppuVar36[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppppppuVar36[1]" (identifier "ppppppuVar36") ([ "[") (number_literal "1") (] "]"))) (& "&") (number_literal "0x200")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          pppppppuVar40 = pppppppuVar19 + 0x18;\n          if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }\n          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;\n          goto LAB_0001e15c;\n        }" ({ "{") (expression_statement "pppppppuVar40 = pppppppuVar19 + 0x18;" (assignment_expression "pppppppuVar40 = pppppppuVar19 + 0x18" (identifier "pppppppuVar40") (= "=") (binary_expression "pppppppuVar19 + 0x18" (identifier "pppppppuVar19") (+ "+") (number_literal "0x18"))) (; ";")) (if_statement "if ((int)pppppppuVar19[0x17] < 2) {\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }\n          else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }" (if "if") (parenthesized_expression "((int)pppppppuVar19[0x17] < 2)" (( "(") (binary_expression "(int)pppppppuVar19[0x17] < 2" (cast_expression "(int)pppppppuVar19[0x17]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppuVar19[0x17]" (identifier "pppppppuVar19") ([ "[") (number_literal "0x17") (] "]"))) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);\n          }" ({ "{") (expression_statement "pppppppuVar28 = (uint *******)0x0;" (assignment_expression "pppppppuVar28 = (uint *******)0x0" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppuVar16 = (uint *******)&pppppppuStack_144;" (assignment_expression "pppppppuVar16 = (uint *******)&pppppppuStack_144" (identifier "pppppppuVar16") (= "=") (cast_expression "(uint *******)&pppppppuStack_144" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&pppppppuStack_144" (& "&") (identifier "pppppppuStack_144")))) (; ";")) (do_statement "do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (pppppppuVar22 != &ppppppuStack_124);" (do "do") (compound_statement "{\n              pppppppuVar22 = pppppppuVar16 + 1;\n              ppppppuVar13 = *pppppppuVar40;\n              ppppppuVar32 = *pppppppuVar16;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            }" ({ "{") (expression_statement "pppppppuVar22 = pppppppuVar16 + 1;" (assignment_expression "pppppppuVar22 = pppppppuVar16 + 1" (identifier "pppppppuVar22") (= "=") (binary_expression "pppppppuVar16 + 1" (identifier "pppppppuVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppppppuVar13 = *pppppppuVar40;" (assignment_expression "ppppppuVar13 = *pppppppuVar40" (identifier "ppppppuVar13") (= "=") (pointer_expression "*pppppppuVar40" (* "*") (identifier "pppppppuVar40"))) (; ";")) (expression_statement "ppppppuVar32 = *pppppppuVar16;" (assignment_expression "ppppppuVar32 = *pppppppuVar16" (identifier "ppppppuVar32") (= "=") (pointer_expression "*pppppppuVar16" (* "*") (identifier "pppppppuVar16"))) (; ";")) (expression_statement "pppppppuVar40 = pppppppuVar40 + 1;" (assignment_expression "pppppppuVar40 = pppppppuVar40 + 1" (identifier "pppppppuVar40") (= "=") (binary_expression "pppppppuVar40 + 1" (identifier "pppppppuVar40") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);" (assignment_expression "*pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32)" (pointer_expression "*pppppppuVar16" (* "*") (identifier "pppppppuVar16")) (= "=") (cast_expression "(uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32)" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(~(uint)ppppppuVar13 & (uint)ppppppuVar32)" (( "(") (binary_expression "~(uint)ppppppuVar13 & (uint)ppppppuVar32" (unary_expression "~(uint)ppppppuVar13" (~ "~") (cast_expression "(uint)ppppppuVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar13"))) (& "&") (cast_expression "(uint)ppppppuVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar32"))) () ")")))) (; ";")) (expression_statement "pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);" (assignment_expression "pppppppuVar28 =\n                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32)" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32)" (( "(") (binary_expression "(uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32" (cast_expression "(uint)pppppppuVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppuVar28")) (| "|") (binary_expression "~(uint)ppppppuVar13 & (uint)ppppppuVar32" (unary_expression "~(uint)ppppppuVar13" (~ "~") (cast_expression "(uint)ppppppuVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar13"))) (& "&") (cast_expression "(uint)ppppppuVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar32")))) () ")")))) (; ";")) (expression_statement "pppppppuVar16 = pppppppuVar22;" (assignment_expression "pppppppuVar16 = pppppppuVar22" (identifier "pppppppuVar16") (= "=") (identifier "pppppppuVar22")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppppuVar22 != &ppppppuStack_124)" (( "(") (binary_expression "pppppppuVar22 != &ppppppuStack_124" (identifier "pppppppuVar22") (!= "!=") (pointer_expression "&ppppppuStack_124" (& "&") (identifier "ppppppuStack_124"))) () ")")) (; ";")) (} "}")) (else_clause "else {\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }" (else "else") (compound_statement "{\n            ppppppuVar13 = pppppppuVar19[0xf];\n            pppppppuVar28 = (uint *******)0x0;\n            pppppppuVar16 = (uint *******)&pppppppuStack_144;\n            do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);\n          }" ({ "{") (expression_statement "ppppppuVar13 = pppppppuVar19[0xf];" (assignment_expression "ppppppuVar13 = pppppppuVar19[0xf]" (identifier "ppppppuVar13") (= "=") (subscript_expression "pppppppuVar19[0xf]" (identifier "pppppppuVar19") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (expression_statement "pppppppuVar28 = (uint *******)0x0;" (assignment_expression "pppppppuVar28 = (uint *******)0x0" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppuVar16 = (uint *******)&pppppppuStack_144;" (assignment_expression "pppppppuVar16 = (uint *******)&pppppppuStack_144" (identifier "pppppppuVar16") (= "=") (cast_expression "(uint *******)&pppppppuStack_144" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&pppppppuStack_144" (& "&") (identifier "pppppppuStack_144")))) (; ";")) (do_statement "do {\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            } while (&ppppppuStack_124 != pppppppuVar22);" (do "do") (compound_statement "{\n              pppppppuVar22 = pppppppuVar16 + 1;\n              pppppuVar31 = *ppppppuVar13;\n              ppppppuVar32 = *pppppppuVar40;\n              ppppppuVar13 = ppppppuVar13 + 1;\n              pppppppuVar40 = pppppppuVar40 + 1;\n              ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);\n              *pppppppuVar16 = ppppppuVar32;\n              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);\n              pppppppuVar16 = pppppppuVar22;\n            }" ({ "{") (expression_statement "pppppppuVar22 = pppppppuVar16 + 1;" (assignment_expression "pppppppuVar22 = pppppppuVar16 + 1" (identifier "pppppppuVar22") (= "=") (binary_expression "pppppppuVar16 + 1" (identifier "pppppppuVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppuVar31 = *ppppppuVar13;" (assignment_expression "pppppuVar31 = *ppppppuVar13" (identifier "pppppuVar31") (= "=") (pointer_expression "*ppppppuVar13" (* "*") (identifier "ppppppuVar13"))) (; ";")) (expression_statement "ppppppuVar32 = *pppppppuVar40;" (assignment_expression "ppppppuVar32 = *pppppppuVar40" (identifier "ppppppuVar32") (= "=") (pointer_expression "*pppppppuVar40" (* "*") (identifier "pppppppuVar40"))) (; ";")) (expression_statement "ppppppuVar13 = ppppppuVar13 + 1;" (assignment_expression "ppppppuVar13 = ppppppuVar13 + 1" (identifier "ppppppuVar13") (= "=") (binary_expression "ppppppuVar13 + 1" (identifier "ppppppuVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppppuVar40 = pppppppuVar40 + 1;" (assignment_expression "pppppppuVar40 = pppppppuVar40 + 1" (identifier "pppppppuVar40") (= "=") (binary_expression "pppppppuVar40 + 1" (identifier "pppppppuVar40") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);" (assignment_expression "ppppppuVar32 = (uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16)" (identifier "ppppppuVar32") (= "=") (cast_expression "(uint ******)\n                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16)" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16)" (( "(") (binary_expression "~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16" (unary_expression "~((uint)ppppppuVar32 & (uint)pppppuVar31)" (~ "~") (parenthesized_expression "((uint)ppppppuVar32 & (uint)pppppuVar31)" (( "(") (binary_expression "(uint)ppppppuVar32 & (uint)pppppuVar31" (cast_expression "(uint)ppppppuVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar32")) (& "&") (cast_expression "(uint)pppppuVar31" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppuVar31"))) () ")"))) (& "&") (binary_expression "(uint)*pppppppuVar16" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pppppppuVar16"))) () ")")))) (; ";")) (expression_statement "*pppppppuVar16 = ppppppuVar32;" (assignment_expression "*pppppppuVar16 = ppppppuVar32" (pointer_expression "*pppppppuVar16" (* "*") (identifier "pppppppuVar16")) (= "=") (identifier "ppppppuVar32")) (; ";")) (expression_statement "pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);" (assignment_expression "pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32)" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((uint)pppppppuVar28 | (uint)ppppppuVar32)" (( "(") (binary_expression "(uint)pppppppuVar28 | (uint)ppppppuVar32" (cast_expression "(uint)pppppppuVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppuVar28")) (| "|") (cast_expression "(uint)ppppppuVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar32"))) () ")")))) (; ";")) (expression_statement "pppppppuVar16 = pppppppuVar22;" (assignment_expression "pppppppuVar16 = pppppppuVar22" (identifier "pppppppuVar16") (= "=") (identifier "pppppppuVar22")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(&ppppppuStack_124 != pppppppuVar22)" (( "(") (binary_expression "&ppppppuStack_124 != pppppppuVar22" (pointer_expression "&ppppppuStack_124" (& "&") (identifier "ppppppuStack_124")) (!= "!=") (identifier "pppppppuVar22")) () ")")) (; ";")) (} "}")))) (if_statement "if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;" (if "if") (parenthesized_expression "(pppppppuVar28 == (uint *******)0x0)" (( "(") (binary_expression "pppppppuVar28 == (uint *******)0x0" (identifier "pppppppuVar28") (== "==") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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_0001dcc8;" (goto "goto") (statement_identifier "LAB_0001dcc8") (; ";"))) (goto_statement "goto LAB_0001e15c;" (goto "goto") (statement_identifier "LAB_0001e15c") (; ";")) (} "}"))) (expression_statement "pppppppuStack_144 = (uint *******)0x0;" (assignment_expression "pppppppuStack_144 = (uint *******)0x0" (identifier "pppppppuStack_144") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (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        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }" (else "else") (compound_statement "{\n        uStack_140 = 0;\n        pppppppuStack_144 = (uint *******)0x0;\n        uStack_13c = 0;\n        uStack_138 = 0;\n        uStack_134 = 0;\n        uStack_130 = 0;\n        uStack_12c = 0;\n        uStack_128 = 0;\n        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;\n        pppppppuStack_144 = (uint *******)0x400;\n        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;\nLAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;\n      }" ({ "{") (expression_statement "uStack_140 = 0;" (assignment_expression "uStack_140 = 0" (identifier "uStack_140") (= "=") (number_literal "0")) (; ";")) (expression_statement "pppppppuStack_144 = (uint *******)0x0;" (assignment_expression "pppppppuStack_144 = (uint *******)0x0" (identifier "pppppppuStack_144") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uStack_13c = 0;" (assignment_expression "uStack_13c = 0" (identifier "uStack_13c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_138 = 0;" (assignment_expression "uStack_138 = 0" (identifier "uStack_138") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_134 = 0;" (assignment_expression "uStack_134 = 0" (identifier "uStack_134") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_130 = 0;" (assignment_expression "uStack_130 = 0" (identifier "uStack_130") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_12c = 0;" (assignment_expression "uStack_12c = 0" (identifier "uStack_12c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_128 = 0;" (assignment_expression "uStack_128 = 0" (identifier "uStack_128") (= "=") (number_literal "0")) (; ";")) (if_statement "if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;" (if "if") (parenthesized_expression "(((uint)pppppppuVar40 & 0x400) == 0)" (( "(") (binary_expression "((uint)pppppppuVar40 & 0x400) == 0" (parenthesized_expression "((uint)pppppppuVar40 & 0x400)" (( "(") (binary_expression "(uint)pppppppuVar40 & 0x400" (cast_expression "(uint)pppppppuVar40" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppuVar40")) (& "&") (number_literal "0x400")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001dcc8;" (goto "goto") (statement_identifier "LAB_0001dcc8") (; ";"))) (expression_statement "pppppppuStack_144 = (uint *******)0x400;" (assignment_expression "pppppppuStack_144 = (uint *******)0x400" (identifier "pppppppuStack_144") (= "=") (cast_expression "(uint *******)0x400" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x400"))) (; ";")) (if_statement "if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;" (if "if") (parenthesized_expression "((uVar34 & 0x80) == 0)" (( "(") (binary_expression "(uVar34 & 0x80) == 0" (parenthesized_expression "(uVar34 & 0x80)" (( "(") (binary_expression "uVar34 & 0x80" (identifier "uVar34") (& "&") (number_literal "0x80")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001e07c;" (goto "goto") (statement_identifier "LAB_0001e07c") (; ";"))) (labeled_statement "LAB_0001e428:\n        pppppppuStack_144 = (uint *******)0x0;" (statement_identifier "LAB_0001e428") (: ":") (expression_statement "pppppppuStack_144 = (uint *******)0x0;" (assignment_expression "pppppppuStack_144 = (uint *******)0x0" (identifier "pppppppuStack_144") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";"))) (} "}")))) (expression_statement "pppppppuStack_144 = (uint *******)0x0;" (assignment_expression "pppppppuStack_144 = (uint *******)0x0" (identifier "pppppppuStack_144") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uStack_140 = 0;" (assignment_expression "uStack_140 = 0" (identifier "uStack_140") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_13c = 0;" (assignment_expression "uStack_13c = 0" (identifier "uStack_13c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_138 = 0;" (assignment_expression "uStack_138 = 0" (identifier "uStack_138") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_134 = 0;" (assignment_expression "uStack_134 = 0" (identifier "uStack_134") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_130 = 0;" (assignment_expression "uStack_130 = 0" (identifier "uStack_130") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_12c = 0;" (assignment_expression "uStack_12c = 0" (identifier "uStack_12c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_128 = 0;" (assignment_expression "uStack_128 = 0" (identifier "uStack_128") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      if (bVar2 == 3) {\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }\n      if (bVar2 == 5) {\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      pppppppuVar28 = (uint *******)0xffffffff;\n      if (bVar2 == 7) {\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }" (else "else") (compound_statement "{\n      if (bVar2 == 3) {\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }\n      if (bVar2 == 5) {\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }\n      pppppppuVar28 = (uint *******)0xffffffff;\n      if (bVar2 == 7) {\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }\n    }" ({ "{") (if_statement "if (bVar2 == 3) {\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }" (if "if") (parenthesized_expression "(bVar2 == 3)" (( "(") (binary_expression "bVar2 == 3" (identifier "bVar2") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n        pppppuVar31 = *ppppppuVar36;\n        pppppppuVar40 = (uint *******)&pppppppuStack_144;\n        do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);\n        goto LAB_0001e060;\n      }" ({ "{") (expression_statement "pppppuVar31 = *ppppppuVar36;" (assignment_expression "pppppuVar31 = *ppppppuVar36" (identifier "pppppuVar31") (= "=") (pointer_expression "*ppppppuVar36" (* "*") (identifier "ppppppuVar36"))) (; ";")) (expression_statement "pppppppuVar40 = (uint *******)&pppppppuStack_144;" (assignment_expression "pppppppuVar40 = (uint *******)&pppppppuStack_144" (identifier "pppppppuVar40") (= "=") (cast_expression "(uint *******)&pppppppuStack_144" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&pppppppuStack_144" (& "&") (identifier "pppppppuStack_144")))) (; ";")) (do_statement "do {\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        } while (&ppppppuStack_124 != pppppppuVar16);" (do "do") (compound_statement "{\n          pppppppuVar16 = pppppppuVar40 + 1;\n          ppppuVar30 = *pppppuVar31;\n          pppppuVar31 = pppppuVar31 + 1;\n          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);\n          *pppppppuVar40 = (uint ******)pppppppuVar28;\n          pppppppuVar40 = pppppppuVar16;\n        }" ({ "{") (expression_statement "pppppppuVar16 = pppppppuVar40 + 1;" (assignment_expression "pppppppuVar16 = pppppppuVar40 + 1" (identifier "pppppppuVar16") (= "=") (binary_expression "pppppppuVar40 + 1" (identifier "pppppppuVar40") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppppuVar30 = *pppppuVar31;" (assignment_expression "ppppuVar30 = *pppppuVar31" (identifier "ppppuVar30") (= "=") (pointer_expression "*pppppuVar31" (* "*") (identifier "pppppuVar31"))) (; ";")) (expression_statement "pppppuVar31 = pppppuVar31 + 1;" (assignment_expression "pppppuVar31 = pppppuVar31 + 1" (identifier "pppppuVar31") (= "=") (binary_expression "pppppuVar31 + 1" (identifier "pppppuVar31") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);" (assignment_expression "pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30)" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((uint)*pppppppuVar40 | (uint)ppppuVar30)" (( "(") (binary_expression "(uint)*pppppppuVar40 | (uint)ppppuVar30" (binary_expression "(uint)*pppppppuVar40" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pppppppuVar40")) (| "|") (cast_expression "(uint)ppppuVar30" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppuVar30"))) () ")")))) (; ";")) (expression_statement "*pppppppuVar40 = (uint ******)pppppppuVar28;" (assignment_expression "*pppppppuVar40 = (uint ******)pppppppuVar28" (pointer_expression "*pppppppuVar40" (* "*") (identifier "pppppppuVar40")) (= "=") (cast_expression "(uint ******)pppppppuVar28" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "pppppppuVar28"))) (; ";")) (expression_statement "pppppppuVar40 = pppppppuVar16;" (assignment_expression "pppppppuVar40 = pppppppuVar16" (identifier "pppppppuVar40") (= "=") (identifier "pppppppuVar16")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(&ppppppuStack_124 != pppppppuVar16)" (( "(") (binary_expression "&ppppppuStack_124 != pppppppuVar16" (pointer_expression "&ppppppuStack_124" (& "&") (identifier "ppppppuStack_124")) (!= "!=") (identifier "pppppppuVar16")) () ")")) (; ";")) (goto_statement "goto LAB_0001e060;" (goto "goto") (statement_identifier "LAB_0001e060") (; ";")) (} "}"))) (if_statement "if (bVar2 == 5) {\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }" (if "if") (parenthesized_expression "(bVar2 == 5)" (( "(") (binary_expression "bVar2 == 5" (identifier "bVar2") (== "==") (number_literal "5")) () ")")) (compound_statement "{\n        if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }\n        ppppppuVar13 = pppppppuVar19[0x20];\njoined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }\n        pppppppuVar28 = pppppppuStack_144;\n        if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }\n        goto LAB_0001e060;\n      }" ({ "{") (if_statement "if ((int)pppppppuVar19[0x17] < 2) {\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }\n        else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }" (if "if") (parenthesized_expression "((int)pppppppuVar19[0x17] < 2)" (( "(") (binary_expression "(int)pppppppuVar19[0x17] < 2" (cast_expression "(int)pppppppuVar19[0x17]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppuVar19[0x17]" (identifier "pppppppuVar19") ([ "[") (number_literal "0x17") (] "]"))) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n          pppppppuStack_144 = (uint *******)0xffffffff;\n          uStack_140 = 0xffffffff;\n          uStack_13c = 0xffffffff;\n          uStack_138 = 0xffffffff;\n          uStack_134 = 0xffffffff;\n          uStack_130 = 0xffffffff;\n          uStack_12c = 0xffffffff;\n          uStack_128 = 0xffffffff;\n        }" ({ "{") (expression_statement "pppppppuStack_144 = (uint *******)0xffffffff;" (assignment_expression "pppppppuStack_144 = (uint *******)0xffffffff" (identifier "pppppppuStack_144") (= "=") (cast_expression "(uint *******)0xffffffff" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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 "uStack_140 = 0xffffffff;" (assignment_expression "uStack_140 = 0xffffffff" (identifier "uStack_140") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uStack_13c = 0xffffffff;" (assignment_expression "uStack_13c = 0xffffffff" (identifier "uStack_13c") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uStack_138 = 0xffffffff;" (assignment_expression "uStack_138 = 0xffffffff" (identifier "uStack_138") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uStack_134 = 0xffffffff;" (assignment_expression "uStack_134 = 0xffffffff" (identifier "uStack_134") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uStack_130 = 0xffffffff;" (assignment_expression "uStack_130 = 0xffffffff" (identifier "uStack_130") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uStack_12c = 0xffffffff;" (assignment_expression "uStack_12c = 0xffffffff" (identifier "uStack_12c") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uStack_128 = 0xffffffff;" (assignment_expression "uStack_128 = 0xffffffff" (identifier "uStack_128") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}")) (else_clause "else {\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }" (else "else") (compound_statement "{\n          ppppppuVar13 = pppppppuVar19[0xf];\n          pppppppuVar40 = (uint *******)&pppppppuStack_144;\n          do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);\n        }" ({ "{") (expression_statement "ppppppuVar13 = pppppppuVar19[0xf];" (assignment_expression "ppppppuVar13 = pppppppuVar19[0xf]" (identifier "ppppppuVar13") (= "=") (subscript_expression "pppppppuVar19[0xf]" (identifier "pppppppuVar19") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (expression_statement "pppppppuVar40 = (uint *******)&pppppppuStack_144;" (assignment_expression "pppppppuVar40 = (uint *******)&pppppppuStack_144" (identifier "pppppppuVar40") (= "=") (cast_expression "(uint *******)&pppppppuStack_144" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&pppppppuStack_144" (& "&") (identifier "pppppppuStack_144")))) (; ";")) (do_statement "do {\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          } while (&ppppppuStack_124 != pppppppuVar16);" (do "do") (compound_statement "{\n            pppppppuVar16 = pppppppuVar40 + 1;\n            pppppuVar31 = *ppppppuVar13;\n            ppppppuVar13 = ppppppuVar13 + 1;\n            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);\n            pppppppuVar40 = pppppppuVar16;\n          }" ({ "{") (expression_statement "pppppppuVar16 = pppppppuVar40 + 1;" (assignment_expression "pppppppuVar16 = pppppppuVar40 + 1" (identifier "pppppppuVar16") (= "=") (binary_expression "pppppppuVar40 + 1" (identifier "pppppppuVar40") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppuVar31 = *ppppppuVar13;" (assignment_expression "pppppuVar31 = *ppppppuVar13" (identifier "pppppuVar31") (= "=") (pointer_expression "*ppppppuVar13" (* "*") (identifier "ppppppuVar13"))) (; ";")) (expression_statement "ppppppuVar13 = ppppppuVar13 + 1;" (assignment_expression "ppppppuVar13 = ppppppuVar13 + 1" (identifier "ppppppuVar13") (= "=") (binary_expression "ppppppuVar13 + 1" (identifier "ppppppuVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);" (assignment_expression "*pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31)" (pointer_expression "*pppppppuVar40" (* "*") (identifier "pppppppuVar40")) (= "=") (cast_expression "(uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31)" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((uint)*pppppppuVar40 | (uint)pppppuVar31)" (( "(") (binary_expression "(uint)*pppppppuVar40 | (uint)pppppuVar31" (binary_expression "(uint)*pppppppuVar40" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pppppppuVar40")) (| "|") (cast_expression "(uint)pppppuVar31" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppuVar31"))) () ")")))) (; ";")) (expression_statement "pppppppuVar40 = pppppppuVar16;" (assignment_expression "pppppppuVar40 = pppppppuVar16" (identifier "pppppppuVar40") (= "=") (identifier "pppppppuVar16")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(&ppppppuStack_124 != pppppppuVar16)" (( "(") (binary_expression "&ppppppuStack_124 != pppppppuVar16" (pointer_expression "&ppppppuStack_124" (& "&") (identifier "ppppppuStack_124")) (!= "!=") (identifier "pppppppuVar16")) () ")")) (; ";")) (} "}")))) (expression_statement "ppppppuVar13 = pppppppuVar19[0x20];" (assignment_expression "ppppppuVar13 = pppppppuVar19[0x20]" (identifier "ppppppuVar13") (= "=") (subscript_expression "pppppppuVar19[0x20]" (identifier "pppppppuVar19") ([ "[") (number_literal "0x20") (] "]"))) (; ";")) (labeled_statement "joined_r0x0001e3b8:\n        if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }" (statement_identifier "joined_r0x0001e3b8") (: ":") (if_statement "if (((uint)ppppppuVar13 & 0x40) == 0) {\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }" (if "if") (parenthesized_expression "(((uint)ppppppuVar13 & 0x40) == 0)" (( "(") (binary_expression "((uint)ppppppuVar13 & 0x40) == 0" (parenthesized_expression "((uint)ppppppuVar13 & 0x40)" (( "(") (binary_expression "(uint)ppppppuVar13 & 0x40" (cast_expression "(uint)ppppppuVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar13")) (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);\n        }" ({ "{") (expression_statement "pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);" (assignment_expression "pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff)" (identifier "pppppppuStack_144") (= "=") (cast_expression "(uint *******)((uint)pppppppuStack_144 & 0xfffffbff)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((uint)pppppppuStack_144 & 0xfffffbff)" (( "(") (binary_expression "(uint)pppppppuStack_144 & 0xfffffbff" (cast_expression "(uint)pppppppuStack_144" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppuStack_144")) (& "&") (number_literal "0xfffffbff")) () ")")))) (; ";")) (} "}")))) (expression_statement "pppppppuVar28 = pppppppuStack_144;" (assignment_expression "pppppppuVar28 = pppppppuStack_144" (identifier "pppppppuVar28") (= "=") (identifier "pppppppuStack_144")) (; ";")) (if_statement "if (((uint)ppppppuVar13 & 0x80) != 0) {\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }" (if "if") (parenthesized_expression "(((uint)ppppppuVar13 & 0x80) != 0)" (( "(") (binary_expression "((uint)ppppppuVar13 & 0x80) != 0" (parenthesized_expression "((uint)ppppppuVar13 & 0x80)" (( "(") (binary_expression "(uint)ppppppuVar13 & 0x80" (cast_expression "(uint)ppppppuVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar13")) (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          pppppppuVar28 = (uint *******)&SUB_fffffffe;\n          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);\n        }" ({ "{") (expression_statement "pppppppuVar28 = (uint *******)&SUB_fffffffe;" (assignment_expression "pppppppuVar28 = (uint *******)&SUB_fffffffe" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)&SUB_fffffffe" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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")))) (; ";")) (expression_statement "pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);" (assignment_expression "pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe)" (identifier "pppppppuStack_144") (= "=") (cast_expression "(uint *******)((uint)pppppppuStack_144 & 0xfffffffe)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((uint)pppppppuStack_144 & 0xfffffffe)" (( "(") (binary_expression "(uint)pppppppuStack_144 & 0xfffffffe" (cast_expression "(uint)pppppppuStack_144" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppuStack_144")) (& "&") (number_literal "0xfffffffe")) () ")")))) (; ";")) (} "}"))) (goto_statement "goto LAB_0001e060;" (goto "goto") (statement_identifier "LAB_0001e060") (; ";")) (} "}"))) (expression_statement "pppppppuVar28 = (uint *******)0xffffffff;" (assignment_expression "pppppppuVar28 = (uint *******)0xffffffff" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)0xffffffff" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xffffffff"))) (; ";")) (if_statement "if (bVar2 == 7) {\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }" (if "if") (parenthesized_expression "(bVar2 == 7)" (( "(") (binary_expression "bVar2 == 7" (identifier "bVar2") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n        ppppppuVar13 = pppppppuVar19[0x20];\n        pppppppuStack_144 = (uint *******)0xffffffff;\n        uStack_140 = 0xffffffff;\n        uStack_13c = 0xffffffff;\n        uStack_138 = 0xffffffff;\n        goto joined_r0x0001e3b8;\n      }" ({ "{") (expression_statement "ppppppuVar13 = pppppppuVar19[0x20];" (assignment_expression "ppppppuVar13 = pppppppuVar19[0x20]" (identifier "ppppppuVar13") (= "=") (subscript_expression "pppppppuVar19[0x20]" (identifier "pppppppuVar19") ([ "[") (number_literal "0x20") (] "]"))) (; ";")) (expression_statement "pppppppuStack_144 = (uint *******)0xffffffff;" (assignment_expression "pppppppuStack_144 = (uint *******)0xffffffff" (identifier "pppppppuStack_144") (= "=") (cast_expression "(uint *******)0xffffffff" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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 "uStack_140 = 0xffffffff;" (assignment_expression "uStack_140 = 0xffffffff" (identifier "uStack_140") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uStack_13c = 0xffffffff;" (assignment_expression "uStack_13c = 0xffffffff" (identifier "uStack_13c") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uStack_138 = 0xffffffff;" (assignment_expression "uStack_138 = 0xffffffff" (identifier "uStack_138") (= "=") (number_literal "0xffffffff")) (; ";")) (goto_statement "goto joined_r0x0001e3b8;" (goto "goto") (statement_identifier "joined_r0x0001e3b8") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_0001dcc8:\n    iStack_184 = iStack_184 + 1;" (statement_identifier "LAB_0001dcc8") (: ":") (expression_statement "iStack_184 = iStack_184 + 1;" (assignment_expression "iStack_184 = iStack_184 + 1" (identifier "iStack_184") (= "=") (binary_expression "iStack_184 + 1" (identifier "iStack_184") (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if ((int)ppppppuVar20 <= iStack_184) goto code_r0x0001dcdc;" (if "if") (parenthesized_expression "((int)ppppppuVar20 <= iStack_184)" (( "(") (binary_expression "(int)ppppppuVar20 <= iStack_184" (cast_expression "(int)ppppppuVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppuVar20")) (<= "<=") (identifier "iStack_184")) () ")")) (goto_statement "goto code_r0x0001dcdc;" (goto "goto") (statement_identifier "code_r0x0001dcdc") (; ";"))) (goto_statement "goto LAB_0001dc74;" (goto "goto") (statement_identifier "LAB_0001dc74") (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar46 + 0x1e790))(iVar25);" (call_expression "(**(code **)(pcVar46 + 0x1e790))(iVar25)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" (( "(") (pointer_expression "**(code **)(pcVar46 + 0x1e790)" (* "*") (pointer_expression "*(code **)(pcVar46 + 0x1e790)" (* "*") (cast_expression "(code **)(pcVar46 + 0x1e790)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x1e790)" (( "(") (binary_expression "pcVar46 + 0x1e790" (identifier "pcVar46") (+ "+") (number_literal "0x1e790")) () ")"))))) () ")")) (argument_list "(iVar25)" (( "(") (identifier "iVar25") () ")"))) (; ";")) (goto_statement "goto LAB_0001e824;" (goto "goto") (statement_identifier "LAB_0001e824") (; ";")) (labeled_statement "code_r0x0001dcdc:\n  if (0 < (int)pppppppuVar24) {\n    pbVar8 = (byte *)((int)pppppppuVar24 + 1);\n    uStack_14c = 0;\n    pbStack_150 = pbVar8;\n    iVar5 = (**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4);\n    iStack_148 = iVar5;\n    if ((iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)) {\n      iStack_178 = (int)pppppppuVar24 << 1;\n    }\n    else {\n      iStack_178 = (int)pppppppuVar24 * 2;\n      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);\n      if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }\n    }\nLAB_0001e674:\n    (**(code **)(pcVar46 + 0x1e790))(iVar5);\n    iVar5 = iVar25;\n    do {\n      iVar35 = iVar5 + 0xc;\n      (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n      iVar5 = iVar35;\n    } while (iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25);\n    (**(code **)(pcVar46 + 0x1e790))(iVar25);\nLAB_0001dffc:\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }" (statement_identifier "code_r0x0001dcdc") (: ":") (if_statement "if (0 < (int)pppppppuVar24) {\n    pbVar8 = (byte *)((int)pppppppuVar24 + 1);\n    uStack_14c = 0;\n    pbStack_150 = pbVar8;\n    iVar5 = (**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4);\n    iStack_148 = iVar5;\n    if ((iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)) {\n      iStack_178 = (int)pppppppuVar24 << 1;\n    }\n    else {\n      iStack_178 = (int)pppppppuVar24 * 2;\n      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);\n      if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }\n    }\nLAB_0001e674:\n    (**(code **)(pcVar46 + 0x1e790))(iVar5);\n    iVar5 = iVar25;\n    do {\n      iVar35 = iVar5 + 0xc;\n      (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n      iVar5 = iVar35;\n    } while (iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25);\n    (**(code **)(pcVar46 + 0x1e790))(iVar25);\nLAB_0001dffc:\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }" (if "if") (parenthesized_expression "(0 < (int)pppppppuVar24)" (( "(") (binary_expression "0 < (int)pppppppuVar24" (number_literal "0") (< "<") (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24"))) () ")")) (compound_statement "{\n    pbVar8 = (byte *)((int)pppppppuVar24 + 1);\n    uStack_14c = 0;\n    pbStack_150 = pbVar8;\n    iVar5 = (**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4);\n    iStack_148 = iVar5;\n    if ((iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)) {\n      iStack_178 = (int)pppppppuVar24 << 1;\n    }\n    else {\n      iStack_178 = (int)pppppppuVar24 * 2;\n      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);\n      if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }\n    }\nLAB_0001e674:\n    (**(code **)(pcVar46 + 0x1e790))(iVar5);\n    iVar5 = iVar25;\n    do {\n      iVar35 = iVar5 + 0xc;\n      (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n      iVar5 = iVar35;\n    } while (iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25);\n    (**(code **)(pcVar46 + 0x1e790))(iVar25);\nLAB_0001dffc:\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }" ({ "{") (expression_statement "pbVar8 = (byte *)((int)pppppppuVar24 + 1);" (assignment_expression "pbVar8 = (byte *)((int)pppppppuVar24 + 1)" (identifier "pbVar8") (= "=") (cast_expression "(byte *)((int)pppppppuVar24 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppppuVar24 + 1)" (( "(") (binary_expression "(int)pppppppuVar24 + 1" (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uStack_14c = 0;" (assignment_expression "uStack_14c = 0" (identifier "uStack_14c") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbStack_150 = pbVar8;" (assignment_expression "pbStack_150 = pbVar8" (identifier "pbStack_150") (= "=") (identifier "pbVar8")) (; ";")) (expression_statement "iVar5 = (**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4);" (assignment_expression "iVar5 = (**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e724))" (( "(") (pointer_expression "**(code **)(pcVar46 + 0x1e724)" (* "*") (pointer_expression "*(code **)(pcVar46 + 0x1e724)" (* "*") (cast_expression "(code **)(pcVar46 + 0x1e724)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x1e724)" (( "(") (binary_expression "pcVar46 + 0x1e724" (identifier "pcVar46") (+ "+") (number_literal "0x1e724")) () ")"))))) () ")")) (argument_list "((int)pbVar8 * 4)" (( "(") (binary_expression "(int)pbVar8 * 4" (cast_expression "(int)pbVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar8")) (* "*") (number_literal "4")) () ")")))) (; ";")) (expression_statement "iStack_148 = iVar5;" (assignment_expression "iStack_148 = iVar5" (identifier "iStack_148") (= "=") (identifier "iVar5")) (; ";")) (if_statement "if ((iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)) {\n      iStack_178 = (int)pppppppuVar24 << 1;\n    }\n    else {\n      iStack_178 = (int)pppppppuVar24 * 2;\n      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);\n      if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }\n    }" (if "if") (parenthesized_expression "((iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24))" (( "(") (binary_expression "(iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)" (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)" (( "(") (comma_expression "iStack_154 = 0, 0x155551aa < (int)pppppppuVar24" (assignment_expression "iStack_154 = 0" (identifier "iStack_154") (= "=") (number_literal "0")) (, ",") (binary_expression "0x155551aa < (int)pppppppuVar24" (number_literal "0x155551aa") (< "<") (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24")))) () ")"))) () ")")) (compound_statement "{\n      iStack_178 = (int)pppppppuVar24 << 1;\n    }" ({ "{") (expression_statement "iStack_178 = (int)pppppppuVar24 << 1;" (assignment_expression "iStack_178 = (int)pppppppuVar24 << 1" (identifier "iStack_178") (= "=") (binary_expression "(int)pppppppuVar24 << 1" (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24")) (<< "<<") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n      iStack_178 = (int)pppppppuVar24 * 2;\n      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);\n      if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }\n    }" (else "else") (compound_statement "{\n      iStack_178 = (int)pppppppuVar24 * 2;\n      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);\n      if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }\n    }" ({ "{") (expression_statement "iStack_178 = (int)pppppppuVar24 * 2;" (assignment_expression "iStack_178 = (int)pppppppuVar24 * 2" (identifier "iStack_178") (= "=") (binary_expression "(int)pppppppuVar24 * 2" (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24")) (* "*") (number_literal "2"))) (; ";")) (expression_statement "puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);" (assignment_expression "puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc)" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e724))" (( "(") (pointer_expression "**(code **)(pcVar46 + 0x1e724)" (* "*") (pointer_expression "*(code **)(pcVar46 + 0x1e724)" (* "*") (cast_expression "(code **)(pcVar46 + 0x1e724)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x1e724)" (( "(") (binary_expression "pcVar46 + 0x1e724" (identifier "pcVar46") (+ "+") (number_literal "0x1e724")) () ")"))))) () ")")) (argument_list "((int)pppppppuVar24 * 0xc)" (( "(") (binary_expression "(int)pppppppuVar24 * 0xc" (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24")) (* "*") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (puVar9 != (undefined4 *)0x0) {\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }" (if "if") (parenthesized_expression "(puVar9 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar9 != (undefined4 *)0x0" (identifier "puVar9") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        iVar5 = (int)pbVar8 * 4 + -4;\n        ppiVar37 = &piStack_104;\n        iVar41 = 0;\n        puVar17 = puVar9 + (int)pppppppuVar24;\n        piStack_104 = (int *)0x0;\n        piVar39 = (int *)(iVar25 + 4);\n        uStack_100 = 0;\n        uStack_fc = 0;\n        iVar35 = *(int *)(pcVar46 + 0x1e658);\n        uStack_f8 = 0;\n        bVar3 = false;\n        uStack_f4 = 0;\n        uStack_f0 = 0;\n        uStack_ec = 0;\n        uStack_e8 = 0;\n        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);\n        do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);\n        if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }\n        pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }\n        (*pcVar10)(puVar9);\n        (**(code **)(pcVar46 + 0x1e790))(iStack_148);\n        iVar5 = iVar25;\n        do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);\n        (**(code **)(pcVar46 + 0x1e790))(iVar25);\n        pppppppuVar24 = (uint *******)0x1;\n        goto LAB_0001e000;\n      }" ({ "{") (expression_statement "iVar5 = (int)pbVar8 * 4 + -4;" (assignment_expression "iVar5 = (int)pbVar8 * 4 + -4" (identifier "iVar5") (= "=") (binary_expression "(int)pbVar8 * 4 + -4" (binary_expression "(int)pbVar8 * 4" (cast_expression "(int)pbVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar8")) (* "*") (number_literal "4")) (+ "+") (number_literal "-4"))) (; ";")) (expression_statement "ppiVar37 = &piStack_104;" (assignment_expression "ppiVar37 = &piStack_104" (identifier "ppiVar37") (= "=") (pointer_expression "&piStack_104" (& "&") (identifier "piStack_104"))) (; ";")) (expression_statement "iVar41 = 0;" (assignment_expression "iVar41 = 0" (identifier "iVar41") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar17 = puVar9 + (int)pppppppuVar24;" (assignment_expression "puVar17 = puVar9 + (int)pppppppuVar24" (identifier "puVar17") (= "=") (binary_expression "puVar9 + (int)pppppppuVar24" (identifier "puVar9") (+ "+") (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24")))) (; ";")) (expression_statement "piStack_104 = (int *)0x0;" (assignment_expression "piStack_104 = (int *)0x0" (identifier "piStack_104") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "piVar39 = (int *)(iVar25 + 4);" (assignment_expression "piVar39 = (int *)(iVar25 + 4)" (identifier "piVar39") (= "=") (cast_expression "(int *)(iVar25 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 4)" (( "(") (binary_expression "iVar25 + 4" (identifier "iVar25") (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "uStack_100 = 0;" (assignment_expression "uStack_100 = 0" (identifier "uStack_100") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_fc = 0;" (assignment_expression "uStack_fc = 0" (identifier "uStack_fc") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar35 = *(int *)(pcVar46 + 0x1e658);" (assignment_expression "iVar35 = *(int *)(pcVar46 + 0x1e658)" (identifier "iVar35") (= "=") (pointer_expression "*(int *)(pcVar46 + 0x1e658)" (* "*") (cast_expression "(int *)(pcVar46 + 0x1e658)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar46 + 0x1e658)" (( "(") (binary_expression "pcVar46 + 0x1e658" (identifier "pcVar46") (+ "+") (number_literal "0x1e658")) () ")"))))) (; ";")) (expression_statement "uStack_f8 = 0;" (assignment_expression "uStack_f8 = 0" (identifier "uStack_f8") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" (identifier "bVar3") (= "=") (false "false")) (; ";")) (expression_statement "uStack_f4 = 0;" (assignment_expression "uStack_f4 = 0" (identifier "uStack_f4") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_f0 = 0;" (assignment_expression "uStack_f0 = 0" (identifier "uStack_f0") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_ec = 0;" (assignment_expression "uStack_ec = 0" (identifier "uStack_ec") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_e8 = 0;" (assignment_expression "uStack_e8 = 0" (identifier "uStack_e8") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);" (assignment_expression "pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4)" (identifier "pcVar10") (= "=") (cast_expression "(code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar46 + 0x1e658) + -0x42b4)" (( "(") (binary_expression "*(int *)(pcVar46 + 0x1e658) + -0x42b4" (pointer_expression "*(int *)(pcVar46 + 0x1e658)" (* "*") (cast_expression "(int *)(pcVar46 + 0x1e658)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar46 + 0x1e658)" (( "(") (binary_expression "pcVar46 + 0x1e658" (identifier "pcVar46") (+ "+") (number_literal "0x1e658")) () ")")))) (+ "+") (number_literal "-0x42b4")) () ")")))) (; ";")) (do_statement "do {\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        } while (iVar5 != iVar41);" (do "do") (compound_statement "{\n          iVar23 = *piVar39;\n          iVar42 = 0;\n          uStack_14c = 0;\n          if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          pppppppuVar28 = pppppppuVar19;\n          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);\n          *(int *)((int)puVar9 + iVar41) = iVar23;\n          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }\n          iVar23 = iVar41 * 8 + iVar25;\n          ppiVar11 = ppiVar37;\n          do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);\n          iVar41 = iVar41 + 4;\n          piVar39 = piVar39 + 3;\n        }" ({ "{") (expression_statement "iVar23 = *piVar39;" (assignment_expression "iVar23 = *piVar39" (identifier "iVar23") (= "=") (pointer_expression "*piVar39" (* "*") (identifier "piVar39"))) (; ";")) (expression_statement "iVar42 = 0;" (assignment_expression "iVar42 = 0" (identifier "iVar42") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14c = 0;" (assignment_expression "uStack_14c = 0" (identifier "uStack_14c") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < iVar23) {\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }" (if "if") (parenthesized_expression "(0 < iVar23)" (( "(") (binary_expression "0 < iVar23" (number_literal "0") (< "<") (identifier "iVar23")) () ")")) (compound_statement "{\n            do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }" ({ "{") (do_statement "do {\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);" (do "do") (compound_statement "{\n              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }\n              iVar42 = iVar42 + 1;\n            }" ({ "{") (if_statement "if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }" (if "if") (parenthesized_expression "(pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff)" (( "(") (binary_expression "pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff" (subscript_expression "pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)]" (subscript_expression "pppppppuVar19[3]" (identifier "pppppppuVar19") ([ "[") (number_literal "3") (] "]")) ([ "[") (pointer_expression "*(int *)(piVar39[1] + iVar42 * 4)" (* "*") (cast_expression "(int *)(piVar39[1] + iVar42 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar39[1] + iVar42 * 4)" (( "(") (binary_expression "piVar39[1] + iVar42 * 4" (subscript_expression "piVar39[1]" (identifier "piVar39") ([ "[") (number_literal "1") (] "]")) (+ "+") (binary_expression "iVar42 * 4" (identifier "iVar42") (* "*") (number_literal "4"))) () ")")))) (] "]")) (!= "!=") (cast_expression "(uint *****)0xffffffff" (( "(") (type_descriptor "uint *****" (type_identifier "uint") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\n                pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);\n                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);\n                if (iStack_154 != 0) goto LAB_0001e660;\n                iVar23 = *piVar39;\n              }" ({ "{") (expression_statement "pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);" (assignment_expression "pppppppuVar28 =\n                     (uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3)" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)\n                     (pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3)" (( "(") (binary_expression "pppppppuVar19[6] +\n                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3" (subscript_expression "pppppppuVar19[6]" (identifier "pppppppuVar19") ([ "[") (number_literal "6") (] "]")) (+ "+") (binary_expression "(int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3" (cast_expression "(int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)]" (subscript_expression "pppppppuVar19[3]" (identifier "pppppppuVar19") ([ "[") (number_literal "3") (] "]")) ([ "[") (pointer_expression "*(int *)(piVar39[1] + iVar42 * 4)" (* "*") (cast_expression "(int *)(piVar39[1] + iVar42 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar39[1] + iVar42 * 4)" (( "(") (binary_expression "piVar39[1] + iVar42 * 4" (subscript_expression "piVar39[1]" (identifier "piVar39") ([ "[") (number_literal "1") (] "]")) (+ "+") (binary_expression "iVar42 * 4" (identifier "iVar42") (* "*") (number_literal "4"))) () ")")))) (] "]"))) (* "*") (number_literal "3"))) () ")")))) (; ";")) (expression_statement "iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);" (assignment_expression "iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150)" (identifier "iStack_154") (= "=") (call_expression "(*(code *)(iVar35 + -0x55b4))(&pbStack_150)" (parenthesized_expression "(*(code *)(iVar35 + -0x55b4))" (( "(") (pointer_expression "*(code *)(iVar35 + -0x55b4)" (* "*") (cast_expression "(code *)(iVar35 + -0x55b4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar35 + -0x55b4)" (( "(") (binary_expression "iVar35 + -0x55b4" (identifier "iVar35") (+ "+") (number_literal "-0x55b4")) () ")")))) () ")")) (argument_list "(&pbStack_150)" (( "(") (pointer_expression "&pbStack_150" (& "&") (identifier "pbStack_150")) () ")")))) (; ";")) (if_statement "if (iStack_154 != 0) goto LAB_0001e660;" (if "if") (parenthesized_expression "(iStack_154 != 0)" (( "(") (binary_expression "iStack_154 != 0" (identifier "iStack_154") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001e660;" (goto "goto") (statement_identifier "LAB_0001e660") (; ";"))) (expression_statement "iVar23 = *piVar39;" (assignment_expression "iVar23 = *piVar39" (identifier "iVar23") (= "=") (pointer_expression "*piVar39" (* "*") (identifier "piVar39"))) (; ";")) (} "}"))) (expression_statement "iVar42 = iVar42 + 1;" (assignment_expression "iVar42 = iVar42 + 1" (identifier "iVar42") (= "=") (binary_expression "iVar42 + 1" (identifier "iVar42") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar42 < iVar23)" (( "(") (binary_expression "iVar42 < iVar23" (identifier "iVar42") (< "<") (identifier "iVar23")) () ")")) (; ";")) (} "}"))) (expression_statement "pppppppuVar28 = pppppppuVar19;" (assignment_expression "pppppppuVar28 = pppppppuVar19" (identifier "pppppppuVar28") (= "=") (identifier "pppppppuVar19")) (; ";")) (expression_statement "iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);" (assignment_expression "iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0)" (identifier "iVar23") (= "=") (call_expression "(*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(&iStack_154,pppppppuVar19,&pbStack_150,0)" (( "(") (pointer_expression "&iStack_154" (& "&") (identifier "iStack_154")) (, ",") (identifier "pppppppuVar19") (, ",") (pointer_expression "&pbStack_150" (& "&") (identifier "pbStack_150")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(int *)((int)puVar9 + iVar41) = iVar23;" (assignment_expression "*(int *)((int)puVar9 + iVar41) = iVar23" (pointer_expression "*(int *)((int)puVar9 + iVar41)" (* "*") (cast_expression "(int *)((int)puVar9 + iVar41)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar9 + iVar41)" (( "(") (binary_expression "(int)puVar9 + iVar41" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (+ "+") (identifier "iVar41")) () ")")))) (= "=") (identifier "iVar23")) (; ";")) (if_statement "if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n          goto LAB_0001e664;" (if "if") (parenthesized_expression "((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))" (( "(") (binary_expression "(iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0)" (parenthesized_expression "(iVar23 == 0)" (( "(") (binary_expression "iVar23 == 0" (identifier "iVar23") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0)" (( "(") (comma_expression "pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0" (assignment_expression "pcVar44 = *(code **)(pcVar46 + 0x1e790)" (identifier "pcVar44") (= "=") (pointer_expression "*(code **)(pcVar46 + 0x1e790)" (* "*") (cast_expression "(code **)(pcVar46 + 0x1e790)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x1e790)" (( "(") (binary_expression "pcVar46 + 0x1e790" (identifier "pcVar46") (+ "+") (number_literal "0x1e790")) () ")"))))) (, ",") (binary_expression "iStack_154 != 0" (identifier "iStack_154") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0001e664;" (goto "goto") (statement_identifier "LAB_0001e664") (; ";"))) (if_statement "if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }\n          else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }" (if "if") (parenthesized_expression "((*(byte *)(iVar23 + 0x34) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(iVar23 + 0x34) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar23 + 0x34) & 1)" (( "(") (binary_expression "*(byte *)(iVar23 + 0x34) & 1" (pointer_expression "*(byte *)(iVar23 + 0x34)" (* "*") (cast_expression "(byte *)(iVar23 + 0x34)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x34)" (( "(") (binary_expression "iVar23 + 0x34" (identifier "iVar23") (+ "+") (number_literal "0x34")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n          }" ({ "{") (expression_statement "*(int *)((int)puVar17 + iVar41) = iVar23;" (assignment_expression "*(int *)((int)puVar17 + iVar41) = iVar23" (pointer_expression "*(int *)((int)puVar17 + iVar41)" (* "*") (cast_expression "(int *)((int)puVar17 + iVar41)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar17 + iVar41)" (( "(") (binary_expression "(int)puVar17 + iVar41" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (+ "+") (identifier "iVar41")) () ")")))) (= "=") (identifier "iVar23")) (; ";")) (expression_statement "*(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;" (assignment_expression "*(int *)((int)puVar17 + iVar41 + iVar5) = iVar23" (pointer_expression "*(int *)((int)puVar17 + iVar41 + iVar5)" (* "*") (cast_expression "(int *)((int)puVar17 + iVar41 + iVar5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar17 + iVar41 + iVar5)" (( "(") (binary_expression "(int)puVar17 + iVar41 + iVar5" (binary_expression "(int)puVar17 + iVar41" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (+ "+") (identifier "iVar41")) (+ "+") (identifier "iVar5")) () ")")))) (= "=") (identifier "iVar23")) (; ";")) (} "}")) (else_clause "else {\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }" (else "else") (compound_statement "{\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);\n            *(int *)((int)puVar17 + iVar41) = iVar23;\n            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;\n            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }\n            pppppppuVar28 = pppppppuVar19;\n            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);\n            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;\n            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;\n          }" ({ "{") (expression_statement "pppppppuVar28 = pppppppuVar19;" (assignment_expression "pppppppuVar28 = pppppppuVar19" (identifier "pppppppuVar28") (= "=") (identifier "pppppppuVar19")) (; ";")) (expression_statement "iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);" (assignment_expression "iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1)" (identifier "iVar23") (= "=") (call_expression "(*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(&iStack_154,pppppppuVar19,&pbStack_150,1)" (( "(") (pointer_expression "&iStack_154" (& "&") (identifier "iStack_154")) (, ",") (identifier "pppppppuVar19") (, ",") (pointer_expression "&pbStack_150" (& "&") (identifier "pbStack_150")) (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "*(int *)((int)puVar17 + iVar41) = iVar23;" (assignment_expression "*(int *)((int)puVar17 + iVar41) = iVar23" (pointer_expression "*(int *)((int)puVar17 + iVar41)" (* "*") (cast_expression "(int *)((int)puVar17 + iVar41)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar17 + iVar41)" (( "(") (binary_expression "(int)puVar17 + iVar41" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (+ "+") (identifier "iVar41")) () ")")))) (= "=") (identifier "iVar23")) (; ";")) (if_statement "if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))\n            goto LAB_0001e664;" (if "if") (parenthesized_expression "((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))" (( "(") (binary_expression "(iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0)" (parenthesized_expression "(iVar23 == 0)" (( "(") (binary_expression "iVar23 == 0" (identifier "iVar23") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0)" (( "(") (comma_expression "pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0" (assignment_expression "pcVar44 = *(code **)(pcVar46 + 0x1e790)" (identifier "pcVar44") (= "=") (pointer_expression "*(code **)(pcVar46 + 0x1e790)" (* "*") (cast_expression "(code **)(pcVar46 + 0x1e790)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x1e790)" (( "(") (binary_expression "pcVar46 + 0x1e790" (identifier "pcVar46") (+ "+") (number_literal "0x1e790")) () ")"))))) (, ",") (binary_expression "iStack_154 != 0" (identifier "iStack_154") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0001e664;" (goto "goto") (statement_identifier "LAB_0001e664") (; ";"))) (if_statement "if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {\n              bVar3 = true;\n            }" (if "if") (parenthesized_expression "((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17]))" (( "(") (binary_expression "(iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])" (parenthesized_expression "(iVar23 != *(int *)((int)puVar9 + iVar41))" (( "(") (binary_expression "iVar23 != *(int *)((int)puVar9 + iVar41)" (identifier "iVar23") (!= "!=") (pointer_expression "*(int *)((int)puVar9 + iVar41)" (* "*") (cast_expression "(int *)((int)puVar9 + iVar41)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar9 + iVar41)" (( "(") (binary_expression "(int)puVar9 + iVar41" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (+ "+") (identifier "iVar41")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(1 < (int)pppppppuVar19[0x17])" (( "(") (binary_expression "1 < (int)pppppppuVar19[0x17]" (number_literal "1") (< "<") (cast_expression "(int)pppppppuVar19[0x17]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppuVar19[0x17]" (identifier "pppppppuVar19") ([ "[") (number_literal "0x17") (] "]")))) () ")"))) () ")")) (compound_statement "{\n              bVar3 = true;\n            }" ({ "{") (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" (identifier "bVar3") (= "=") (true "true")) (; ";")) (} "}"))) (expression_statement "pppppppuVar28 = pppppppuVar19;" (assignment_expression "pppppppuVar28 = pppppppuVar19" (identifier "pppppppuVar28") (= "=") (identifier "pppppppuVar19")) (; ";")) (expression_statement "iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);" (assignment_expression "iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2)" (identifier "iVar23") (= "=") (call_expression "(*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(&iStack_154,pppppppuVar19,&pbStack_150,2)" (( "(") (pointer_expression "&iStack_154" (& "&") (identifier "iStack_154")) (, ",") (identifier "pppppppuVar19") (, ",") (pointer_expression "&pbStack_150" (& "&") (identifier "pbStack_150")) (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "*(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;" (assignment_expression "*(int *)((int)puVar17 + iVar41 + iVar5) = iVar23" (pointer_expression "*(int *)((int)puVar17 + iVar41 + iVar5)" (* "*") (cast_expression "(int *)((int)puVar17 + iVar41 + iVar5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar17 + iVar41 + iVar5)" (( "(") (binary_expression "(int)puVar17 + iVar41 + iVar5" (binary_expression "(int)puVar17 + iVar41" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (+ "+") (identifier "iVar41")) (+ "+") (identifier "iVar5")) () ")")))) (= "=") (identifier "iVar23")) (; ";")) (if_statement "if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;" (if "if") (parenthesized_expression "((iVar23 == 0) && (iStack_154 != 0))" (( "(") (binary_expression "(iVar23 == 0) && (iStack_154 != 0)" (parenthesized_expression "(iVar23 == 0)" (( "(") (binary_expression "iVar23 == 0" (identifier "iVar23") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iStack_154 != 0)" (( "(") (binary_expression "iStack_154 != 0" (identifier "iStack_154") (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_0001e660;" (goto "goto") (statement_identifier "LAB_0001e660") (; ";"))) (} "}")))) (expression_statement "iVar23 = iVar41 * 8 + iVar25;" (assignment_expression "iVar23 = iVar41 * 8 + iVar25" (identifier "iVar23") (= "=") (binary_expression "iVar41 * 8 + iVar25" (binary_expression "iVar41 * 8" (identifier "iVar41") (* "*") (number_literal "8")) (+ "+") (identifier "iVar25"))) (; ";")) (expression_statement "ppiVar11 = ppiVar37;" (assignment_expression "ppiVar11 = ppiVar37" (identifier "ppiVar11") (= "=") (identifier "ppiVar37")) (; ";")) (do_statement "do {\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          } while (&piStack_e4 != ppiVar12);" (do "do") (compound_statement "{\n            ppiVar12 = ppiVar11 + 1;\n            puVar14 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);\n            ppiVar11 = ppiVar12;\n          }" ({ "{") (expression_statement "ppiVar12 = ppiVar11 + 1;" (assignment_expression "ppiVar12 = ppiVar11 + 1" (identifier "ppiVar12") (= "=") (binary_expression "ppiVar11 + 1" (identifier "ppiVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar14 = (uint *)(iVar23 + 0xc00);" (assignment_expression "puVar14 = (uint *)(iVar23 + 0xc00)" (identifier "puVar14") (= "=") (cast_expression "(uint *)(iVar23 + 0xc00)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0xc00)" (( "(") (binary_expression "iVar23 + 0xc00" (identifier "iVar23") (+ "+") (number_literal "0xc00")) () ")")))) (; ";")) (expression_statement "iVar23 = iVar23 + 4;" (assignment_expression "iVar23 = iVar23 + 4" (identifier "iVar23") (= "=") (binary_expression "iVar23 + 4" (identifier "iVar23") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);" (assignment_expression "*ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14)" (pointer_expression "*ppiVar11" (* "*") (identifier "ppiVar11")) (= "=") (cast_expression "(int *)((uint)*ppiVar11 | *puVar14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)*ppiVar11 | *puVar14)" (( "(") (binary_expression "(uint)*ppiVar11 | *puVar14" (binary_expression "(uint)*ppiVar11" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "ppiVar11")) (| "|") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) () ")")))) (; ";")) (expression_statement "ppiVar11 = ppiVar12;" (assignment_expression "ppiVar11 = ppiVar12" (identifier "ppiVar11") (= "=") (identifier "ppiVar12")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(&piStack_e4 != ppiVar12)" (( "(") (binary_expression "&piStack_e4 != ppiVar12" (pointer_expression "&piStack_e4" (& "&") (identifier "piStack_e4")) (!= "!=") (identifier "ppiVar12")) () ")")) (; ";")) (expression_statement "iVar41 = iVar41 + 4;" (assignment_expression "iVar41 = iVar41 + 4" (identifier "iVar41") (= "=") (binary_expression "iVar41 + 4" (identifier "iVar41") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "piVar39 = piVar39 + 3;" (assignment_expression "piVar39 = piVar39 + 3" (identifier "piVar39") (= "=") (binary_expression "piVar39 + 3" (identifier "piVar39") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar5 != iVar41)" (( "(") (binary_expression "iVar5 != iVar41" (identifier "iVar5") (!= "!=") (identifier "iVar41")) () ")")) (; ";")) (if_statement "if (bVar3) {\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }\n        else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }" (if "if") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (compound_statement "{\n          pppppppuVar28 = (uint *******)0x200;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xc] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;\n          iVar5 = iVar25;\n          ppppppuVar36 = ppppppuVar20;\n          do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);\n        }" ({ "{") (expression_statement "pppppppuVar28 = (uint *******)0x200;" (assignment_expression "pppppppuVar28 = (uint *******)0x200" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)0x200" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x200"))) (; ";")) (expression_statement "ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);" (assignment_expression "ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4)" (identifier "ppppppuVar20") (= "=") (cast_expression "(uint ******)(**(code **)(pcVar46 + 0x1e688))(4)" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(**(code **)(pcVar46 + 0x1e688))(4)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e688))" (( "(") (pointer_expression "**(code **)(pcVar46 + 0x1e688)" (* "*") (pointer_expression "*(code **)(pcVar46 + 0x1e688)" (* "*") (cast_expression "(code **)(pcVar46 + 0x1e688)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x1e688)" (( "(") (binary_expression "pcVar46 + 0x1e688" (identifier "pcVar46") (+ "+") (number_literal "0x1e688")) () ")"))))) () ")")) (argument_list "(4)" (( "(") (number_literal "4") () ")"))))) (; ";")) (expression_statement "pppppppuVar18[0xc] = ppppppuVar20;" (assignment_expression "pppppppuVar18[0xc] = ppppppuVar20" (subscript_expression "pppppppuVar18[0xc]" (identifier "pppppppuVar18") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "ppppppuVar20")) (; ";")) (if_statement "if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;" (if "if") (parenthesized_expression "(ppppppuVar20 == (uint ******)0x0)" (( "(") (binary_expression "ppppppuVar20 == (uint ******)0x0" (identifier "ppppppuVar20") (== "==") (cast_expression "(uint ******)0x0" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (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_0001e660;" (goto "goto") (statement_identifier "LAB_0001e660") (; ";"))) (expression_statement "iVar5 = iVar25;" (assignment_expression "iVar5 = iVar25" (identifier "iVar5") (= "=") (identifier "iVar25")) (; ";")) (expression_statement "ppppppuVar36 = ppppppuVar20;" (assignment_expression "ppppppuVar36 = ppppppuVar20" (identifier "ppppppuVar36") (= "=") (identifier "ppppppuVar20")) (; ";")) (do_statement "do {\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          } while (ppppppuVar20 + 0x100 != ppppppuVar36);" (do "do") (compound_statement "{\n            piVar39 = *ppiVar37;\n            if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }\n            ppppppuVar36 = ppppppuVar36 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            iVar5 = iVar5 + 4;\n          }" ({ "{") (expression_statement "piVar39 = *ppiVar37;" (assignment_expression "piVar39 = *ppiVar37" (identifier "piVar39") (= "=") (pointer_expression "*ppiVar37" (* "*") (identifier "ppiVar37"))) (; ";")) (if_statement "if (piVar39 != (int *)0x0) {\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }" (if "if") (parenthesized_expression "(piVar39 != (int *)0x0)" (( "(") (binary_expression "piVar39 != (int *)0x0" (identifier "piVar39") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              pppppppuVar28 = (uint *******)0x1;\n              ppppppuVar13 = ppppppuVar36;\n              do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);\n            }" ({ "{") (expression_statement "pppppppuVar28 = (uint *******)0x1;" (assignment_expression "pppppppuVar28 = (uint *******)0x1" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)0x1" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "ppppppuVar13 = ppppppuVar36;" (assignment_expression "ppppppuVar13 = ppppppuVar36" (identifier "ppppppuVar13") (= "=") (identifier "ppppppuVar36")) (; ";")) (do_statement "do {\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              } while (piVar39 != (int *)0x0);" (do "do") (compound_statement "{\n                if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }\n                piVar39 = (int *)((uint)piVar39 >> 1);\n                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n                ppppppuVar13 = ppppppuVar13 + 1;\n              }" ({ "{") (if_statement "if (((uint)piVar39 & 1) != 0) {\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }" (if "if") (parenthesized_expression "(((uint)piVar39 & 1) != 0)" (( "(") (binary_expression "((uint)piVar39 & 1) != 0" (parenthesized_expression "((uint)piVar39 & 1)" (( "(") (binary_expression "(uint)piVar39 & 1" (cast_expression "(uint)piVar39" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar39")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar41 = 0;\n                  puVar21 = puVar17;\n                  puVar27 = puVar9;\n                  iVar35 = iVar5;\n                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }\n                  *ppppppuVar13 = (uint *****)*puVar27;\n                  ppppppuVar13[0x100] = (uint *****)*puVar21;\n                }" ({ "{") (expression_statement "iVar41 = 0;" (assignment_expression "iVar41 = 0" (identifier "iVar41") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar21 = puVar17;" (assignment_expression "puVar21 = puVar17" (identifier "puVar21") (= "=") (identifier "puVar17")) (; ";")) (expression_statement "puVar27 = puVar9;" (assignment_expression "puVar27 = puVar9" (identifier "puVar27") (= "=") (identifier "puVar9")) (; ";")) (expression_statement "iVar35 = iVar5;" (assignment_expression "iVar35 = iVar5" (identifier "iVar35") (= "=") (identifier "iVar5")) (; ";")) (if_statement "if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }" (if "if") (parenthesized_expression "(((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0)" (( "(") (binary_expression "((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0" (parenthesized_expression "((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00))" (( "(") (binary_expression "(uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)" (cast_expression "(uint)pppppppuVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppuVar28")) (& "&") (pointer_expression "*(uint *)(iVar5 + 0xc00)" (* "*") (cast_expression "(uint *)(iVar5 + 0xc00)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc00)" (( "(") (binary_expression "iVar5 + 0xc00" (identifier "iVar5") (+ "+") (number_literal "0xc00")) () ")"))))) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                    puVar21 = puVar17 + iVar41;\n                    puVar27 = puVar9 + iVar41;\n                  }" ({ "{") (do_statement "do {\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    } while (((uint)pppppppuVar28 & *puVar14) == 0);" (do "do") (compound_statement "{\n                      puVar14 = (uint *)(iVar35 + 0xc20);\n                      iVar41 = iVar41 + 1;\n                      iVar35 = iVar35 + 0x20;\n                    }" ({ "{") (expression_statement "puVar14 = (uint *)(iVar35 + 0xc20);" (assignment_expression "puVar14 = (uint *)(iVar35 + 0xc20)" (identifier "puVar14") (= "=") (cast_expression "(uint *)(iVar35 + 0xc20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar35 + 0xc20)" (( "(") (binary_expression "iVar35 + 0xc20" (identifier "iVar35") (+ "+") (number_literal "0xc20")) () ")")))) (; ";")) (expression_statement "iVar41 = iVar41 + 1;" (assignment_expression "iVar41 = iVar41 + 1" (identifier "iVar41") (= "=") (binary_expression "iVar41 + 1" (identifier "iVar41") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar35 = iVar35 + 0x20;" (assignment_expression "iVar35 = iVar35 + 0x20" (identifier "iVar35") (= "=") (binary_expression "iVar35 + 0x20" (identifier "iVar35") (+ "+") (number_literal "0x20"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(((uint)pppppppuVar28 & *puVar14) == 0)" (( "(") (binary_expression "((uint)pppppppuVar28 & *puVar14) == 0" (parenthesized_expression "((uint)pppppppuVar28 & *puVar14)" (( "(") (binary_expression "(uint)pppppppuVar28 & *puVar14" (cast_expression "(uint)pppppppuVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppuVar28")) (& "&") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) () ")")) (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "puVar21 = puVar17 + iVar41;" (assignment_expression "puVar21 = puVar17 + iVar41" (identifier "puVar21") (= "=") (binary_expression "puVar17 + iVar41" (identifier "puVar17") (+ "+") (identifier "iVar41"))) (; ";")) (expression_statement "puVar27 = puVar9 + iVar41;" (assignment_expression "puVar27 = puVar9 + iVar41" (identifier "puVar27") (= "=") (binary_expression "puVar9 + iVar41" (identifier "puVar9") (+ "+") (identifier "iVar41"))) (; ";")) (} "}"))) (expression_statement "*ppppppuVar13 = (uint *****)*puVar27;" (assignment_expression "*ppppppuVar13 = (uint *****)*puVar27" (pointer_expression "*ppppppuVar13" (* "*") (identifier "ppppppuVar13")) (= "=") (cast_expression "(uint *****)*puVar27" (( "(") (type_descriptor "uint *****" (type_identifier "uint") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (pointer_expression "*puVar27" (* "*") (identifier "puVar27")))) (; ";")) (expression_statement "ppppppuVar13[0x100] = (uint *****)*puVar21;" (assignment_expression "ppppppuVar13[0x100] = (uint *****)*puVar21" (subscript_expression "ppppppuVar13[0x100]" (identifier "ppppppuVar13") ([ "[") (number_literal "0x100") (] "]")) (= "=") (cast_expression "(uint *****)*puVar21" (( "(") (type_descriptor "uint *****" (type_identifier "uint") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (pointer_expression "*puVar21" (* "*") (identifier "puVar21")))) (; ";")) (} "}"))) (expression_statement "piVar39 = (int *)((uint)piVar39 >> 1);" (assignment_expression "piVar39 = (int *)((uint)piVar39 >> 1)" (identifier "piVar39") (= "=") (cast_expression "(int *)((uint)piVar39 >> 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)piVar39 >> 1)" (( "(") (binary_expression "(uint)piVar39 >> 1" (cast_expression "(uint)piVar39" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar39")) (>> ">>") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);" (assignment_expression "pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1)" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)((int)pppppppuVar28 << 1)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppuVar28 << 1)" (( "(") (binary_expression "(int)pppppppuVar28 << 1" (cast_expression "(int)pppppppuVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar28")) (<< "<<") (number_literal "1")) () ")")))) (; ";")) (expression_statement "ppppppuVar13 = ppppppuVar13 + 1;" (assignment_expression "ppppppuVar13 = ppppppuVar13 + 1" (identifier "ppppppuVar13") (= "=") (binary_expression "ppppppuVar13 + 1" (identifier "ppppppuVar13") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar39 != (int *)0x0)" (( "(") (binary_expression "piVar39 != (int *)0x0" (identifier "piVar39") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (expression_statement "ppppppuVar36 = ppppppuVar36 + 0x20;" (assignment_expression "ppppppuVar36 = ppppppuVar36 + 0x20" (identifier "ppppppuVar36") (= "=") (binary_expression "ppppppuVar36 + 0x20" (identifier "ppppppuVar36") (+ "+") (number_literal "0x20"))) (; ";")) (expression_statement "ppiVar37 = ppiVar37 + 1;" (assignment_expression "ppiVar37 = ppiVar37 + 1" (identifier "ppiVar37") (= "=") (binary_expression "ppiVar37 + 1" (identifier "ppiVar37") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar5 = iVar5 + 4;" (assignment_expression "iVar5 = iVar5 + 4" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppppppuVar20 + 0x100 != ppppppuVar36)" (( "(") (binary_expression "ppppppuVar20 + 0x100 != ppppppuVar36" (binary_expression "ppppppuVar20 + 0x100" (identifier "ppppppuVar20") (+ "+") (number_literal "0x100")) (!= "!=") (identifier "ppppppuVar36")) () ")")) (; ";")) (} "}")) (else_clause "else {\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }" (else "else") (compound_statement "{\n          pppppppuVar28 = (uint *******)0x100;\n          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);\n          pppppppuVar18[0xb] = ppppppuVar20;\n          if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }\n          pppppppuVar19 = pppppppuVar19 + 0x18;\n          iVar35 = 0;\n          iVar5 = iVar25;\n          do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);\n        }" ({ "{") (expression_statement "pppppppuVar28 = (uint *******)0x100;" (assignment_expression "pppppppuVar28 = (uint *******)0x100" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)0x100" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x100"))) (; ";")) (expression_statement "ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);" (assignment_expression "ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4)" (identifier "ppppppuVar20") (= "=") (cast_expression "(uint ******)(**(code **)(pcVar46 + 0x1e688))(4)" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(**(code **)(pcVar46 + 0x1e688))(4)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e688))" (( "(") (pointer_expression "**(code **)(pcVar46 + 0x1e688)" (* "*") (pointer_expression "*(code **)(pcVar46 + 0x1e688)" (* "*") (cast_expression "(code **)(pcVar46 + 0x1e688)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x1e688)" (( "(") (binary_expression "pcVar46 + 0x1e688" (identifier "pcVar46") (+ "+") (number_literal "0x1e688")) () ")"))))) () ")")) (argument_list "(4)" (( "(") (number_literal "4") () ")"))))) (; ";")) (expression_statement "pppppppuVar18[0xb] = ppppppuVar20;" (assignment_expression "pppppppuVar18[0xb] = ppppppuVar20" (subscript_expression "pppppppuVar18[0xb]" (identifier "pppppppuVar18") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "ppppppuVar20")) (; ";")) (if_statement "if (ppppppuVar20 == (uint ******)0x0) {\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }" (if "if") (parenthesized_expression "(ppppppuVar20 == (uint ******)0x0)" (( "(") (binary_expression "ppppppuVar20 == (uint ******)0x0" (identifier "ppppppuVar20") (== "==") (cast_expression "(uint ******)0x0" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);\nLAB_0001e664:\n            (*pcVar44)(puVar9);\n            iVar5 = iStack_148;\n            goto LAB_0001e674;\n          }" ({ "{") (labeled_statement "LAB_0001e660:\n            pcVar44 = *(code **)(pcVar46 + 0x1e790);" (statement_identifier "LAB_0001e660") (: ":") (expression_statement "pcVar44 = *(code **)(pcVar46 + 0x1e790);" (assignment_expression "pcVar44 = *(code **)(pcVar46 + 0x1e790)" (identifier "pcVar44") (= "=") (pointer_expression "*(code **)(pcVar46 + 0x1e790)" (* "*") (cast_expression "(code **)(pcVar46 + 0x1e790)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x1e790)" (( "(") (binary_expression "pcVar46 + 0x1e790" (identifier "pcVar46") (+ "+") (number_literal "0x1e790")) () ")"))))) (; ";"))) (labeled_statement "LAB_0001e664:\n            (*pcVar44)(puVar9);" (statement_identifier "LAB_0001e664") (: ":") (expression_statement "(*pcVar44)(puVar9);" (call_expression "(*pcVar44)(puVar9)" (parenthesized_expression "(*pcVar44)" (( "(") (pointer_expression "*pcVar44" (* "*") (identifier "pcVar44")) () ")")) (argument_list "(puVar9)" (( "(") (identifier "puVar9") () ")"))) (; ";"))) (expression_statement "iVar5 = iStack_148;" (assignment_expression "iVar5 = iStack_148" (identifier "iVar5") (= "=") (identifier "iStack_148")) (; ";")) (goto_statement "goto LAB_0001e674;" (goto "goto") (statement_identifier "LAB_0001e674") (; ";")) (} "}"))) (expression_statement "pppppppuVar19 = pppppppuVar19 + 0x18;" (assignment_expression "pppppppuVar19 = pppppppuVar19 + 0x18" (identifier "pppppppuVar19") (= "=") (binary_expression "pppppppuVar19 + 0x18" (identifier "pppppppuVar19") (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" (identifier "iVar35") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar5 = iVar25;" (assignment_expression "iVar5 = iVar25" (identifier "iVar5") (= "=") (identifier "iVar25")) (; ";")) (do_statement "do {\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          } while (iVar35 != 0x100);" (do "do") (compound_statement "{\n            pppppppuVar28 = (uint *******)0x1;\n            iVar41 = iVar35;\n            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }\n            iVar35 = iVar35 + 0x20;\n            ppiVar37 = ppiVar37 + 1;\n            pppppppuVar19 = pppppppuVar19 + 1;\n            iVar5 = iVar5 + 4;\n          }" ({ "{") (expression_statement "pppppppuVar28 = (uint *******)0x1;" (assignment_expression "pppppppuVar28 = (uint *******)0x1" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)0x1" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "iVar41 = iVar35;" (assignment_expression "iVar41 = iVar35" (identifier "iVar41") (= "=") (identifier "iVar35")) (; ";")) (for_statement "for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))\n            {\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }" (for "for") (( "(") (assignment_expression "piVar39 = *ppiVar37" (identifier "piVar39") (= "=") (pointer_expression "*ppiVar37" (* "*") (identifier "ppiVar37"))) (; ";") (binary_expression "piVar39 != (int *)0x0" (identifier "piVar39") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "piVar39 = (int *)((uint)piVar39 >> 1)" (identifier "piVar39") (= "=") (cast_expression "(int *)((uint)piVar39 >> 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)piVar39 >> 1)" (( "(") (binary_expression "(uint)piVar39 >> 1" (cast_expression "(uint)piVar39" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar39")) (>> ">>") (number_literal "1")) () ")")))) () ")") (compound_statement "{\n              if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }\n              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);\n              iVar41 = iVar41 + 1;\n            }" ({ "{") (if_statement "if (((uint)piVar39 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }" (if "if") (parenthesized_expression "(((uint)piVar39 & 1) != 0)" (( "(") (binary_expression "((uint)piVar39 & 1) != 0" (parenthesized_expression "((uint)piVar39 & 1)" (( "(") (binary_expression "(uint)piVar39 & 1" (cast_expression "(uint)piVar39" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar39")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                iVar42 = 0;\n                iVar23 = iVar5;\n                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }\n              }" ({ "{") (expression_statement "iVar42 = 0;" (assignment_expression "iVar42 = 0" (identifier "iVar42") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar23 = iVar5;" (assignment_expression "iVar23 = iVar5" (identifier "iVar23") (= "=") (identifier "iVar5")) (; ";")) (if_statement "if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }" (if "if") (parenthesized_expression "(((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0)" (( "(") (binary_expression "((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0" (parenthesized_expression "((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00))" (( "(") (binary_expression "(uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)" (cast_expression "(uint)pppppppuVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppuVar28")) (& "&") (pointer_expression "*(uint *)(iVar5 + 0xc00)" (* "*") (cast_expression "(uint *)(iVar5 + 0xc00)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc00)" (( "(") (binary_expression "iVar5 + 0xc00" (identifier "iVar5") (+ "+") (number_literal "0xc00")) () ")"))))) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);\n                  iVar42 = iVar42 * 4;\n                }" ({ "{") (do_statement "do {\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)pppppppuVar28 & *puVar14) == 0);" (do "do") (compound_statement "{\n                    puVar14 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  }" ({ "{") (expression_statement "puVar14 = (uint *)(iVar23 + 0xc20);" (assignment_expression "puVar14 = (uint *)(iVar23 + 0xc20)" (identifier "puVar14") (= "=") (cast_expression "(uint *)(iVar23 + 0xc20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0xc20)" (( "(") (binary_expression "iVar23 + 0xc20" (identifier "iVar23") (+ "+") (number_literal "0xc20")) () ")")))) (; ";")) (expression_statement "iVar42 = iVar42 + 1;" (assignment_expression "iVar42 = iVar42 + 1" (identifier "iVar42") (= "=") (binary_expression "iVar42 + 1" (identifier "iVar42") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar23 = iVar23 + 0x20;" (assignment_expression "iVar23 = iVar23 + 0x20" (identifier "iVar23") (= "=") (binary_expression "iVar23 + 0x20" (identifier "iVar23") (+ "+") (number_literal "0x20"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(((uint)pppppppuVar28 & *puVar14) == 0)" (( "(") (binary_expression "((uint)pppppppuVar28 & *puVar14) == 0" (parenthesized_expression "((uint)pppppppuVar28 & *puVar14)" (( "(") (binary_expression "(uint)pppppppuVar28 & *puVar14" (cast_expression "(uint)pppppppuVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppuVar28")) (& "&") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) () ")")) (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "iVar42 = iVar42 * 4;" (assignment_expression "iVar42 = iVar42 * 4" (identifier "iVar42") (= "=") (binary_expression "iVar42 * 4" (identifier "iVar42") (* "*") (number_literal "4"))) (; ";")) (} "}"))) (if_statement "if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }\n                else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }" (if "if") (parenthesized_expression "(((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0)" (( "(") (binary_expression "((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0" (parenthesized_expression "((uint)pppppppuVar28 & (uint)*pppppppuVar19)" (( "(") (binary_expression "(uint)pppppppuVar28 & (uint)*pppppppuVar19" (cast_expression "(uint)pppppppuVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppuVar28")) (& "&") (binary_expression "(uint)*pppppppuVar19" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pppppppuVar19"))) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);\n                }" ({ "{") (expression_statement "ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);" (assignment_expression "ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42)" (subscript_expression "ppppppuVar20[iVar41]" (identifier "ppppppuVar20") ([ "[") (identifier "iVar41") (] "]")) (= "=") (pointer_expression "*(uint ******)((int)puVar9 + iVar42)" (* "*") (cast_expression "(uint ******)((int)puVar9 + iVar42)" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)puVar9 + iVar42)" (( "(") (binary_expression "(int)puVar9 + iVar42" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (+ "+") (identifier "iVar42")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }" (else "else") (compound_statement "{\n                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);\n                }" ({ "{") (expression_statement "ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);" (assignment_expression "ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42)" (subscript_expression "ppppppuVar20[iVar41]" (identifier "ppppppuVar20") ([ "[") (identifier "iVar41") (] "]")) (= "=") (pointer_expression "*(uint ******)((int)puVar17 + iVar42)" (* "*") (cast_expression "(uint ******)((int)puVar17 + iVar42)" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)puVar17 + iVar42)" (( "(") (binary_expression "(int)puVar17 + iVar42" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (+ "+") (identifier "iVar42")) () ")"))))) (; ";")) (} "}")))) (} "}"))) (expression_statement "pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);" (assignment_expression "pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1)" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)((int)pppppppuVar28 << 1)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppuVar28 << 1)" (( "(") (binary_expression "(int)pppppppuVar28 << 1" (cast_expression "(int)pppppppuVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar28")) (<< "<<") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar41 = iVar41 + 1;" (assignment_expression "iVar41 = iVar41 + 1" (identifier "iVar41") (= "=") (binary_expression "iVar41 + 1" (identifier "iVar41") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "iVar35 = iVar35 + 0x20;" (assignment_expression "iVar35 = iVar35 + 0x20" (identifier "iVar35") (= "=") (binary_expression "iVar35 + 0x20" (identifier "iVar35") (+ "+") (number_literal "0x20"))) (; ";")) (expression_statement "ppiVar37 = ppiVar37 + 1;" (assignment_expression "ppiVar37 = ppiVar37 + 1" (identifier "ppiVar37") (= "=") (binary_expression "ppiVar37 + 1" (identifier "ppiVar37") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppppuVar19 = pppppppuVar19 + 1;" (assignment_expression "pppppppuVar19 = pppppppuVar19 + 1" (identifier "pppppppuVar19") (= "=") (binary_expression "pppppppuVar19 + 1" (identifier "pppppppuVar19") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar5 = iVar5 + 4;" (assignment_expression "iVar5 = iVar5 + 4" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar35 != 0x100)" (( "(") (binary_expression "iVar35 != 0x100" (identifier "iVar35") (!= "!=") (number_literal "0x100")) () ")")) (; ";")) (} "}")))) (expression_statement "pcVar10 = *(code **)(pcVar46 + 0x1e790);" (assignment_expression "pcVar10 = *(code **)(pcVar46 + 0x1e790)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(pcVar46 + 0x1e790)" (* "*") (cast_expression "(code **)(pcVar46 + 0x1e790)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x1e790)" (( "(") (binary_expression "pcVar46 + 0x1e790" (identifier "pcVar46") (+ "+") (number_literal "0x1e790")) () ")"))))) (; ";")) (if_statement "if ((int)piStack_104 << 0x15 < 0) {\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }" (if "if") (parenthesized_expression "((int)piStack_104 << 0x15 < 0)" (( "(") (binary_expression "(int)piStack_104 << 0x15 < 0" (binary_expression "(int)piStack_104 << 0x15" (cast_expression "(int)piStack_104" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piStack_104")) (<< "<<") (number_literal "0x15")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          pppppppuVar28 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);\n          pcVar10 = *(code **)(pcVar46 + 0x1e790);\n        }" ({ "{") (expression_statement "pppppppuVar28 = (uint *******)0x0;" (assignment_expression "pppppppuVar28 = (uint *******)0x0" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar28 != pppppppuVar24);" (do "do") (compound_statement "{\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }\n            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);\n            puVar7 = puVar7 + 8;\n          }" ({ "{") (if_statement "if ((*puVar7 & 0x400) != 0) {\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }" (if "if") (parenthesized_expression "((*puVar7 & 0x400) != 0)" (( "(") (binary_expression "(*puVar7 & 0x400) != 0" (parenthesized_expression "(*puVar7 & 0x400)" (( "(") (binary_expression "*puVar7 & 0x400" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (& "&") (number_literal "0x400")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];\n              ppppppuVar20[10] = pppppuVar31;\n              if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }\n              break;\n            }" ({ "{") (expression_statement "pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];" (assignment_expression "pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))]" (identifier "pppppuVar31") (= "=") (cast_expression "(uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))]" (( "(") (type_descriptor "uint *****" (type_identifier "uint") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (subscript_expression "puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))]" (identifier "puVar17") ([ "[") (cast_expression "(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar8 + (int)((int)pppppppuVar28 + -1))" (( "(") (binary_expression "pbVar8 + (int)((int)pppppppuVar28 + -1)" (identifier "pbVar8") (+ "+") (cast_expression "(int)((int)pppppppuVar28 + -1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)pppppppuVar28 + -1)" (( "(") (binary_expression "(int)pppppppuVar28 + -1" (cast_expression "(int)pppppppuVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar28")) (+ "+") (number_literal "-1")) () ")")))) () ")"))) (] "]")))) (; ";")) (expression_statement "ppppppuVar20[10] = pppppuVar31;" (assignment_expression "ppppppuVar20[10] = pppppuVar31" (subscript_expression "ppppppuVar20[10]" (identifier "ppppppuVar20") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "pppppuVar31")) (; ";")) (if_statement "if (bVar3) {\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }" (if "if") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (compound_statement "{\n                ppppppuVar20[0x10a] = pppppuVar31;\n              }" ({ "{") (expression_statement "ppppppuVar20[0x10a] = pppppuVar31;" (assignment_expression "ppppppuVar20[0x10a] = pppppuVar31" (subscript_expression "ppppppuVar20[0x10a]" (identifier "ppppppuVar20") ([ "[") (number_literal "0x10a") (] "]")) (= "=") (identifier "pppppuVar31")) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);" (assignment_expression "pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1)" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)((int)pppppppuVar28 + 1)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppuVar28 + 1)" (( "(") (binary_expression "(int)pppppppuVar28 + 1" (cast_expression "(int)pppppppuVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar28")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puVar7 = puVar7 + 8;" (assignment_expression "puVar7 = puVar7 + 8" (identifier "puVar7") (= "=") (binary_expression "puVar7 + 8" (identifier "puVar7") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppppuVar28 != pppppppuVar24)" (( "(") (binary_expression "pppppppuVar28 != pppppppuVar24" (identifier "pppppppuVar28") (!= "!=") (identifier "pppppppuVar24")) () ")")) (; ";")) (expression_statement "pcVar10 = *(code **)(pcVar46 + 0x1e790);" (assignment_expression "pcVar10 = *(code **)(pcVar46 + 0x1e790)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(pcVar46 + 0x1e790)" (* "*") (cast_expression "(code **)(pcVar46 + 0x1e790)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x1e790)" (( "(") (binary_expression "pcVar46 + 0x1e790" (identifier "pcVar46") (+ "+") (number_literal "0x1e790")) () ")"))))) (; ";")) (} "}"))) (expression_statement "(*pcVar10)(puVar9);" (call_expression "(*pcVar10)(puVar9)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(puVar9)" (( "(") (identifier "puVar9") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar46 + 0x1e790))(iStack_148);" (call_expression "(**(code **)(pcVar46 + 0x1e790))(iStack_148)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" (( "(") (pointer_expression "**(code **)(pcVar46 + 0x1e790)" (* "*") (pointer_expression "*(code **)(pcVar46 + 0x1e790)" (* "*") (cast_expression "(code **)(pcVar46 + 0x1e790)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x1e790)" (( "(") (binary_expression "pcVar46 + 0x1e790" (identifier "pcVar46") (+ "+") (number_literal "0x1e790")) () ")"))))) () ")")) (argument_list "(iStack_148)" (( "(") (identifier "iStack_148") () ")"))) (; ";")) (expression_statement "iVar5 = iVar25;" (assignment_expression "iVar5 = iVar25" (identifier "iVar5") (= "=") (identifier "iVar25")) (; ";")) (do_statement "do {\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);" (do "do") (compound_statement "{\n          iVar35 = iVar5 + 0xc;\n          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n          iVar5 = iVar35;\n        }" ({ "{") (expression_statement "iVar35 = iVar5 + 0xc;" (assignment_expression "iVar35 = iVar5 + 0xc" (identifier "iVar35") (= "=") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "(**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));" (call_expression "(**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8))" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" (( "(") (pointer_expression "**(code **)(pcVar46 + 0x1e790)" (* "*") (pointer_expression "*(code **)(pcVar46 + 0x1e790)" (* "*") (cast_expression "(code **)(pcVar46 + 0x1e790)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x1e790)" (( "(") (binary_expression "pcVar46 + 0x1e790" (identifier "pcVar46") (+ "+") (number_literal "0x1e790")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar5 + 8))" (( "(") (pointer_expression "*(undefined4 *)(iVar5 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 8)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar5 = iVar35;" (assignment_expression "iVar5 = iVar35" (identifier "iVar5") (= "=") (identifier "iVar35")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar25 + (int)pppppppuVar24 * 0xc != iVar35)" (( "(") (binary_expression "iVar25 + (int)pppppppuVar24 * 0xc != iVar35" (binary_expression "iVar25 + (int)pppppppuVar24 * 0xc" (identifier "iVar25") (+ "+") (binary_expression "(int)pppppppuVar24 * 0xc" (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24")) (* "*") (number_literal "0xc"))) (!= "!=") (identifier "iVar35")) () ")")) (; ";")) (expression_statement "(**(code **)(pcVar46 + 0x1e790))(iVar25);" (call_expression "(**(code **)(pcVar46 + 0x1e790))(iVar25)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" (( "(") (pointer_expression "**(code **)(pcVar46 + 0x1e790)" (* "*") (pointer_expression "*(code **)(pcVar46 + 0x1e790)" (* "*") (cast_expression "(code **)(pcVar46 + 0x1e790)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x1e790)" (( "(") (binary_expression "pcVar46 + 0x1e790" (identifier "pcVar46") (+ "+") (number_literal "0x1e790")) () ")"))))) () ")")) (argument_list "(iVar25)" (( "(") (identifier "iVar25") () ")"))) (; ";")) (expression_statement "pppppppuVar24 = (uint *******)0x1;" (assignment_expression "pppppppuVar24 = (uint *******)0x1" (identifier "pppppppuVar24") (= "=") (cast_expression "(uint *******)0x1" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (goto_statement "goto LAB_0001e000;" (goto "goto") (statement_identifier "LAB_0001e000") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_0001e674:\n    (**(code **)(pcVar46 + 0x1e790))(iVar5);" (statement_identifier "LAB_0001e674") (: ":") (expression_statement "(**(code **)(pcVar46 + 0x1e790))(iVar5);" (call_expression "(**(code **)(pcVar46 + 0x1e790))(iVar5)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" (( "(") (pointer_expression "**(code **)(pcVar46 + 0x1e790)" (* "*") (pointer_expression "*(code **)(pcVar46 + 0x1e790)" (* "*") (cast_expression "(code **)(pcVar46 + 0x1e790)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x1e790)" (( "(") (binary_expression "pcVar46 + 0x1e790" (identifier "pcVar46") (+ "+") (number_literal "0x1e790")) () ")"))))) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")"))) (; ";"))) (expression_statement "iVar5 = iVar25;" (assignment_expression "iVar5 = iVar25" (identifier "iVar5") (= "=") (identifier "iVar25")) (; ";")) (do_statement "do {\n      iVar35 = iVar5 + 0xc;\n      (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n      iVar5 = iVar35;\n    } while (iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25);" (do "do") (compound_statement "{\n      iVar35 = iVar5 + 0xc;\n      (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));\n      iVar5 = iVar35;\n    }" ({ "{") (expression_statement "iVar35 = iVar5 + 0xc;" (assignment_expression "iVar35 = iVar5 + 0xc" (identifier "iVar35") (= "=") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "(**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));" (call_expression "(**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8))" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" (( "(") (pointer_expression "**(code **)(pcVar46 + 0x1e790)" (* "*") (pointer_expression "*(code **)(pcVar46 + 0x1e790)" (* "*") (cast_expression "(code **)(pcVar46 + 0x1e790)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x1e790)" (( "(") (binary_expression "pcVar46 + 0x1e790" (identifier "pcVar46") (+ "+") (number_literal "0x1e790")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar5 + 8))" (( "(") (pointer_expression "*(undefined4 *)(iVar5 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 8)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar5 = iVar35;" (assignment_expression "iVar5 = iVar35" (identifier "iVar5") (= "=") (identifier "iVar35")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25)" (( "(") (binary_expression "iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25" (identifier "iVar35") (!= "!=") (binary_expression "(int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25" (binary_expression "(int)(iStack_178 + (int)pppppppuVar24) * 4" (cast_expression "(int)(iStack_178 + (int)pppppppuVar24)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(iStack_178 + (int)pppppppuVar24)" (( "(") (binary_expression "iStack_178 + (int)pppppppuVar24" (identifier "iStack_178") (+ "+") (cast_expression "(int)pppppppuVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar24"))) () ")"))) (* "*") (number_literal "4")) (+ "+") (identifier "iVar25"))) () ")")) (; ";")) (expression_statement "(**(code **)(pcVar46 + 0x1e790))(iVar25);" (call_expression "(**(code **)(pcVar46 + 0x1e790))(iVar25)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" (( "(") (pointer_expression "**(code **)(pcVar46 + 0x1e790)" (* "*") (pointer_expression "*(code **)(pcVar46 + 0x1e790)" (* "*") (cast_expression "(code **)(pcVar46 + 0x1e790)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x1e790)" (( "(") (binary_expression "pcVar46 + 0x1e790" (identifier "pcVar46") (+ "+") (number_literal "0x1e790")) () ")"))))) () ")")) (argument_list "(iVar25)" (( "(") (identifier "iVar25") () ")"))) (; ";")) (labeled_statement "LAB_0001dffc:\n    pppppppuVar24 = (uint *******)0x0;" (statement_identifier "LAB_0001dffc") (: ":") (expression_statement "pppppppuVar24 = (uint *******)0x0;" (assignment_expression "pppppppuVar24 = (uint *******)0x0" (identifier "pppppppuVar24") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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_0001e000;" (goto "goto") (statement_identifier "LAB_0001e000") (; ";")) (} "}")))) (expression_statement "(**(code **)(pcVar46 + 0x1e790))(iVar25);" (call_expression "(**(code **)(pcVar46 + 0x1e790))(iVar25)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e790))" (( "(") (pointer_expression "**(code **)(pcVar46 + 0x1e790)" (* "*") (pointer_expression "*(code **)(pcVar46 + 0x1e790)" (* "*") (cast_expression "(code **)(pcVar46 + 0x1e790)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x1e790)" (( "(") (binary_expression "pcVar46 + 0x1e790" (identifier "pcVar46") (+ "+") (number_literal "0x1e790")) () ")"))))) () ")")) (argument_list "(iVar25)" (( "(") (identifier "iVar25") () ")"))) (; ";")) (if_statement "if (pppppppuVar24 != (uint *******)0x0) {\n    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }" (if "if") (parenthesized_expression "(pppppppuVar24 != (uint *******)0x0)" (( "(") (binary_expression "pppppppuVar24 != (uint *******)0x0" (identifier "pppppppuVar24") (!= "!=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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    pppppppuVar24 = (uint *******)0x0;\n    goto LAB_0001e000;\n  }" ({ "{") (expression_statement "pppppppuVar24 = (uint *******)0x0;" (assignment_expression "pppppppuVar24 = (uint *******)0x0" (identifier "pppppppuVar24") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (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_0001e000;" (goto "goto") (statement_identifier "LAB_0001e000") (; ";")) (} "}"))) (labeled_statement "LAB_0001e824:\n  pppppppuVar28 = (uint *******)0x100;" (statement_identifier "LAB_0001e824") (: ":") (expression_statement "pppppppuVar28 = (uint *******)0x100;" (assignment_expression "pppppppuVar28 = (uint *******)0x100" (identifier "pppppppuVar28") (= "=") (cast_expression "(uint *******)0x100" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x100"))) (; ";"))) (expression_statement "ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);" (assignment_expression "ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4)" (identifier "ppppppuVar20") (= "=") (cast_expression "(uint ******)(**(code **)(pcVar46 + 0x1e688))(4)" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(**(code **)(pcVar46 + 0x1e688))(4)" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e688))" (( "(") (pointer_expression "**(code **)(pcVar46 + 0x1e688)" (* "*") (pointer_expression "*(code **)(pcVar46 + 0x1e688)" (* "*") (cast_expression "(code **)(pcVar46 + 0x1e688)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x1e688)" (( "(") (binary_expression "pcVar46 + 0x1e688" (identifier "pcVar46") (+ "+") (number_literal "0x1e688")) () ")"))))) () ")")) (argument_list "(4)" (( "(") (number_literal "4") () ")"))))) (; ";")) (expression_statement "pppppppuVar18[0xb] = ppppppuVar20;" (assignment_expression "pppppppuVar18[0xb] = ppppppuVar20" (subscript_expression "pppppppuVar18[0xb]" (identifier "pppppppuVar18") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "ppppppuVar20")) (; ";")) (expression_statement "pppppppuVar24 = (uint *******)(uint)(ppppppuVar20 != (uint ******)0x0);" (assignment_expression "pppppppuVar24 = (uint *******)(uint)(ppppppuVar20 != (uint ******)0x0)" (identifier "pppppppuVar24") (= "=") (cast_expression "(uint *******)(uint)(ppppppuVar20 != (uint ******)0x0)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(uint)(ppppppuVar20 != (uint ******)0x0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(ppppppuVar20 != (uint ******)0x0)" (( "(") (binary_expression "ppppppuVar20 != (uint ******)0x0" (identifier "ppppppuVar20") (!= "!=") (cast_expression "(uint ******)0x0" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")"))))) (; ";")) (labeled_statement "LAB_0001e000:\n  if (piStack_e4 == (int *)*piVar6) {\n    return pppppppuVar24;\n  }" (statement_identifier "LAB_0001e000") (: ":") (if_statement "if (piStack_e4 == (int *)*piVar6) {\n    return pppppppuVar24;\n  }" (if "if") (parenthesized_expression "(piStack_e4 == (int *)*piVar6)" (( "(") (binary_expression "piStack_e4 == (int *)*piVar6" (identifier "piStack_e4") (== "==") (cast_expression "(int *)*piVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar6" (* "*") (identifier "piVar6")))) () ")")) (compound_statement "{\n    return pppppppuVar24;\n  }" ({ "{") (return_statement "return pppppppuVar24;" (return "return") (identifier "pppppppuVar24") (; ";")) (} "}")))) (expression_statement "piVar6 = piStack_e4;" (assignment_expression "piVar6 = piStack_e4" (identifier "piVar6") (= "=") (identifier "piStack_e4")) (; ";")) (expression_statement "(**(code **)(pcVar46 + 0x1e764))();" (call_expression "(**(code **)(pcVar46 + 0x1e764))()" (parenthesized_expression "(**(code **)(pcVar46 + 0x1e764))" (( "(") (pointer_expression "**(code **)(pcVar46 + 0x1e764)" (* "*") (pointer_expression "*(code **)(pcVar46 + 0x1e764)" (* "*") (cast_expression "(code **)(pcVar46 + 0x1e764)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x1e764)" (( "(") (binary_expression "pcVar46 + 0x1e764" (identifier "pcVar46") (+ "+") (number_literal "0x1e764")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*(byte *)(pppppppuVar28 + 6) == 0x10) {\n    ppppppuVar20 = (uint ******)pppppppuVar28[1][7];\n    pppppppuVar28[3] = (uint ******)pppppppuVar28[1][3];\n    pppppppuVar28[7] = ppppppuVar20;\n    return (uint *******)0x0;\n  }" (if "if") (parenthesized_expression "(*(byte *)(pppppppuVar28 + 6) == 0x10)" (( "(") (binary_expression "*(byte *)(pppppppuVar28 + 6) == 0x10" (pointer_expression "*(byte *)(pppppppuVar28 + 6)" (* "*") (cast_expression "(byte *)(pppppppuVar28 + 6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppuVar28 + 6)" (( "(") (binary_expression "pppppppuVar28 + 6" (identifier "pppppppuVar28") (+ "+") (number_literal "6")) () ")")))) (== "==") (number_literal "0x10")) () ")")) (compound_statement "{\n    ppppppuVar20 = (uint ******)pppppppuVar28[1][7];\n    pppppppuVar28[3] = (uint ******)pppppppuVar28[1][3];\n    pppppppuVar28[7] = ppppppuVar20;\n    return (uint *******)0x0;\n  }" ({ "{") (expression_statement "ppppppuVar20 = (uint ******)pppppppuVar28[1][7];" (assignment_expression "ppppppuVar20 = (uint ******)pppppppuVar28[1][7]" (identifier "ppppppuVar20") (= "=") (cast_expression "(uint ******)pppppppuVar28[1][7]" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (subscript_expression "pppppppuVar28[1][7]" (subscript_expression "pppppppuVar28[1]" (identifier "pppppppuVar28") ([ "[") (number_literal "1") (] "]")) ([ "[") (number_literal "7") (] "]")))) (; ";")) (expression_statement "pppppppuVar28[3] = (uint ******)pppppppuVar28[1][3];" (assignment_expression "pppppppuVar28[3] = (uint ******)pppppppuVar28[1][3]" (subscript_expression "pppppppuVar28[3]" (identifier "pppppppuVar28") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(uint ******)pppppppuVar28[1][3]" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (subscript_expression "pppppppuVar28[1][3]" (subscript_expression "pppppppuVar28[1]" (identifier "pppppppuVar28") ([ "[") (number_literal "1") (] "]")) ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "pppppppuVar28[7] = ppppppuVar20;" (assignment_expression "pppppppuVar28[7] = ppppppuVar20" (subscript_expression "pppppppuVar28[7]" (identifier "pppppppuVar28") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "ppppppuVar20")) (; ";")) (return_statement "return (uint *******)0x0;" (return "return") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "pppppppuVar28[3] = (uint ******)pppppppuVar28;" (assignment_expression "pppppppuVar28[3] = (uint ******)pppppppuVar28" (subscript_expression "pppppppuVar28[3]" (identifier "pppppppuVar28") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(uint ******)pppppppuVar28" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "pppppppuVar28"))) (; ";")) (expression_statement "ppppppuVar20 = (uint ******)FUN_00019660();" (assignment_expression "ppppppuVar20 = (uint ******)FUN_00019660()" (identifier "ppppppuVar20") (= "=") (cast_expression "(uint ******)FUN_00019660()" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "FUN_00019660()" (identifier "FUN_00019660") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pppppppuVar28[7] = ppppppuVar20;" (assignment_expression "pppppppuVar28[7] = ppppppuVar20" (subscript_expression "pppppppuVar28[7]" (identifier "pppppppuVar28") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "ppppppuVar20")) (; ";")) (if_statement "if (ppppppuVar20 == (uint ******)0xffffffff) {\n    pppppppuVar24 = (uint *******)0xc;\n  }\n  else {\n    if (*(byte *)(pppppppuVar28 + 6) == 0xc) {\n      iVar25 = *piVar6 + (int)ppppppuVar20 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;\n      return (uint *******)0x0;\n    }\n    pppppppuVar24 = (uint *******)0x0;\n  }" (if "if") (parenthesized_expression "(ppppppuVar20 == (uint ******)0xffffffff)" (( "(") (binary_expression "ppppppuVar20 == (uint ******)0xffffffff" (identifier "ppppppuVar20") (== "==") (cast_expression "(uint ******)0xffffffff" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\n    pppppppuVar24 = (uint *******)0xc;\n  }" ({ "{") (expression_statement "pppppppuVar24 = (uint *******)0xc;" (assignment_expression "pppppppuVar24 = (uint *******)0xc" (identifier "pppppppuVar24") (= "=") (cast_expression "(uint *******)0xc" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xc"))) (; ";")) (} "}")) (else_clause "else {\n    if (*(byte *)(pppppppuVar28 + 6) == 0xc) {\n      iVar25 = *piVar6 + (int)ppppppuVar20 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;\n      return (uint *******)0x0;\n    }\n    pppppppuVar24 = (uint *******)0x0;\n  }" (else "else") (compound_statement "{\n    if (*(byte *)(pppppppuVar28 + 6) == 0xc) {\n      iVar25 = *piVar6 + (int)ppppppuVar20 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;\n      return (uint *******)0x0;\n    }\n    pppppppuVar24 = (uint *******)0x0;\n  }" ({ "{") (if_statement "if (*(byte *)(pppppppuVar28 + 6) == 0xc) {\n      iVar25 = *piVar6 + (int)ppppppuVar20 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;\n      return (uint *******)0x0;\n    }" (if "if") (parenthesized_expression "(*(byte *)(pppppppuVar28 + 6) == 0xc)" (( "(") (binary_expression "*(byte *)(pppppppuVar28 + 6) == 0xc" (pointer_expression "*(byte *)(pppppppuVar28 + 6)" (* "*") (cast_expression "(byte *)(pppppppuVar28 + 6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppuVar28 + 6)" (( "(") (binary_expression "pppppppuVar28 + 6" (identifier "pppppppuVar28") (+ "+") (number_literal "6")) () ")")))) (== "==") (number_literal "0xc")) () ")")) (compound_statement "{\n      iVar25 = *piVar6 + (int)ppppppuVar20 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;\n      return (uint *******)0x0;\n    }" ({ "{") (expression_statement "iVar25 = *piVar6 + (int)ppppppuVar20 * 8;" (assignment_expression "iVar25 = *piVar6 + (int)ppppppuVar20 * 8" (identifier "iVar25") (= "=") (binary_expression "*piVar6 + (int)ppppppuVar20 * 8" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (+ "+") (binary_expression "(int)ppppppuVar20 * 8" (cast_expression "(int)ppppppuVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppuVar20")) (* "*") (number_literal "8")))) (; ";")) (expression_statement "*(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;" (assignment_expression "*(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe" (pointer_expression "*(uint *)(iVar25 + 4)" (* "*") (cast_expression "(uint *)(iVar25 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 4)" (( "(") (binary_expression "iVar25 + 4" (identifier "iVar25") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe" (binary_expression "*(uint *)(iVar25 + 4) & 0xff003fff" (pointer_expression "*(uint *)(iVar25 + 4)" (* "*") (cast_expression "(uint *)(iVar25 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 4)" (( "(") (binary_expression "iVar25 + 4" (identifier "iVar25") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xff003fff")) (| "|") (binary_expression "((uint)pppppppuVar28[5] & 0x3ff) << 0xe" (parenthesized_expression "((uint)pppppppuVar28[5] & 0x3ff)" (( "(") (binary_expression "(uint)pppppppuVar28[5] & 0x3ff" (cast_expression "(uint)pppppppuVar28[5]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppuVar28[5]" (identifier "pppppppuVar28") ([ "[") (number_literal "5") (] "]"))) (& "&") (number_literal "0x3ff")) () ")")) (<< "<<") (number_literal "0xe")))) (; ";")) (return_statement "return (uint *******)0x0;" (return "return") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "pppppppuVar24 = (uint *******)0x0;" (assignment_expression "pppppppuVar24 = (uint *******)0x0" (identifier "pppppppuVar24") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (return_statement "return pppppppuVar24;" (return "return") (identifier "pppppppuVar24") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (parameter_declaration type: (type_identifier) 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: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) 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: (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: (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: (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: (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: (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: (type_identifier) 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: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) 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: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (type_identifier) 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: (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: (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: (type_identifier) 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: (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: (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: (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: (type_identifier) 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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (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: (primitive_type) 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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) 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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) 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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) 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: (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: (type_identifier) 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: (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: (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: (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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) 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: (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: (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: (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: (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: (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: (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: (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: (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: (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: (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: (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: (identifier)) (declaration type: (type_identifier) 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: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (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: (type_identifier) 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: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (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: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (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 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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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))) (labeled_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: (type_identifier) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (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)))) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (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 (subscript_expression argument: (identifier) index: (number_literal)) (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))) (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: (type_identifier) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) 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 (subscript_expression argument: (identifier) index: (number_literal)) (cast_expression type: (type_descriptor type: (type_identifier) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (type_identifier) 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: (type_identifier) 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: (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: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (parenthesized_expression (binary_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (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: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) 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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) 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))))) (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 (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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))))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (binary_expression left: (identifier) right: (identifier)))))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (identifier))))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (cast_expression type: (type_descriptor type: (type_identifier) 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))))) (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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 (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)) (cast_expression type: (type_descriptor type: (type_identifier) 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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (number_literal) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) consequence: (compound_statement (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 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: (type_identifier) 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))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) 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 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: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) 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: (identifier)))))) (expression_statement (assignment_expression left: (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: (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: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (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: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (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: (type_identifier) 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 (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (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: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (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 (subscript_expression argument: (identifier) index: (number_literal)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (type_identifier) 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: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (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 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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (type_identifier) 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: (type_identifier) 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: (type_identifier) 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: (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: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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 (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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 (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))) (identifier) (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (cast_expression type: (type_descriptor type: (type_identifier) 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))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (pointer_expression argument: (identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) 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))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (cast_expression type: (type_descriptor type: (type_identifier) 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: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (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)))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (type_identifier) 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: (type_identifier) 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: (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: (type_identifier) 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: (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: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (while_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (type_identifier) 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: (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: (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: (type_identifier) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (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: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (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: (type_identifier) 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))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier))))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (type_identifier) 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: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (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)))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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 (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (type_identifier) 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: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) 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 (subscript_expression argument: (identifier) index: (number_literal)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (cast_expression type: (type_descriptor type: (type_identifier) 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: (char_literal (escape_sequence))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (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: (type_identifier) 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: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) 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))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) right: (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: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (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: (type_identifier) 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: (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: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) alternative: (else_clause (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: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (cast_expression type: (type_descriptor type: (type_identifier) 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: (type_identifier) 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: (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: (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 (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (type_identifier) 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: (type_identifier) 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))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (type_identifier) 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: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (type_identifier) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (type_identifier) 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: (type_identifier) 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: (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)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) 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: (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: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (type_identifier) 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: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (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))) (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: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) 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)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (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 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: (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)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (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))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_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: (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: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (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: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) alternative: (else_clause (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: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (labeled_statement label: (statement_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)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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) (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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)))) alternative: (else_clause (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: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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)) 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: (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: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (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: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) 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: (type_identifier) 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 (call_expression function: (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))))))) (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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 (return_statement (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (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: (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))))) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) 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)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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 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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) 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: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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)))) (labeled_statement label: (statement_identifier) (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: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (identifier))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) 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: (cast_expression type: (type_descriptor type: (type_identifier) 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: (pointer_expression argument: (identifier)) right: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) 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)))) (labeled_statement label: (statement_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))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (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))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (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: (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: (type_identifier) 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))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (parenthesized_expression (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) index: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (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 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: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (type_identifier)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_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: (type_identifier) 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: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (unary_expression argument: (parenthesized_expression (identifier))) right: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (unary_expression argument: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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))))))) (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: (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: (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: (type_identifier)) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (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: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list (binary_expression left: (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: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (type_identifier) 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: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (identifier))))))) (expression_statement (assignment_expression left: (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: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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: (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: (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: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (identifier))) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (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: (type_identifier) 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: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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 (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (number_literal)) right: (identifier)) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (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: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (type_identifier) 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: (type_identifier) 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))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (unary_expression argument: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (type_identifier)) value: (identifier)) right: (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (type_identifier) 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: (type_identifier) 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))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (unary_expression argument: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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))))) alternative: (else_clause (compound_statement (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 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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) 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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (parenthesized_expression (binary_expression left: (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: (type_identifier) 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: (type_identifier) 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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) 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)))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (type_identifier) 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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (type_identifier) 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))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (type_identifier)) value: (identifier)) right: (number_literal))))))))) (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: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (type_identifier) 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: (type_identifier)) value: (identifier)) right: (number_literal)))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (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: (cast_expression type: (type_descriptor type: (type_identifier) 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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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)) 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: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_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: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (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: (identifier))) consequence: (compound_statement (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))))) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (type_identifier) 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: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))))) right: (number_literal))))))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list (pointer_expression argument: (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: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (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 (pointer_expression argument: (identifier)) (identifier) (pointer_expression argument: (identifier)) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (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 (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (identifier))))) right: (identifier)))) alternative: (else_clause (compound_statement (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 (pointer_expression argument: (identifier)) (identifier) (pointer_expression argument: (identifier)) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (true))))) (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 (pointer_expression argument: (identifier)) (identifier) (pointer_expression argument: (identifier)) (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (identifier))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (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: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)) right: (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (type_identifier) 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: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (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: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (pointer_expression argument: (identifier)))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) 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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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))))) condition: (parenthesized_expression (binary_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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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 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: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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))) (for_statement initializer: (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))) condition: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))) update: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (pointer_expression argument: (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: (type_identifier)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (identifier)))))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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 (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) 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: (identifier))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) (break_statement))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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)))) (goto_statement label: (statement_identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (number_literal)) right: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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))))) (goto_statement label: (statement_identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (cast_expression type: (type_descriptor type: (type_identifier) 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)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (type_identifier) 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: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (type_identifier) 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)))))))) (labeled_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)) value: (pointer_expression argument: (identifier))))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))) (if_statement condition: (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))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (return_statement (cast_expression type: (type_descriptor type: (type_identifier) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (type_identifier) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (type_identifier) 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))))) alternative: (else_clause (compound_statement (if_statement condition: (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))) 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))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (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: (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))))) (return_statement (cast_expression type: (type_descriptor type: (type_identifier) 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: (type_identifier) 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))))))) (return_statement (identifier)))))

/* WARNING: Type propagation algorithm not settling */

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

{
  byte *pbVar1;
  byte bVar2;
  bool bVar3;
  undefined *puVar4;
  char cVar15;
  int iVar5;
  int *piVar6;
  uint *puVar7;
  byte *pbVar8;
  undefined4 *puVar9;
  code *pcVar10;
  int **ppiVar11;
  int **ppiVar12;
  uint ******ppppppuVar13;
  uint *puVar14;
  uint *******pppppppuVar16;
  undefined4 *puVar17;
  uint *******pppppppuVar18;
  uint *******pppppppuVar19;
  uint ******ppppppuVar20;
  undefined4 *puVar21;
  uint *******pppppppuVar22;
  int iVar23;
  uint *******pppppppuVar24;
  int iVar25;
  uint uVar26;
  undefined4 *puVar27;
  uint *******pppppppuVar28;
  uint uVar29;
  uint ****ppppuVar30;
  uint *****pppppuVar31;
  uint ******ppppppuVar32;
  uint *puVar33;
  uint uVar34;
  int iVar35;
  uint ******ppppppuVar36;
  int **ppiVar37;
  uint *****pppppuVar38;
  int *piVar39;
  uint *******pppppppuVar40;
  uint *******unaff_s2;
  uint *******unaff_s3;
  int iVar41;
  uint *******unaff_s7;
  int iVar42;
  undefined *puVar43;
  code *pcVar44;
  undefined *puVar45;
  uint *******unaff_s8;
  code *pcVar46;
  undefined4 uVar47;
  int iStack_184;
  int iStack_178;
  int iStack_154;
  byte *pbStack_150;
  undefined4 uStack_14c;
  int iStack_148;
  uint *******pppppppuStack_144;
  uint uStack_140;
  uint uStack_13c;
  uint uStack_138;
  uint uStack_134;
  uint uStack_130;
  uint uStack_12c;
  uint uStack_128;
  uint ******ppppppuStack_124;
  uint uStack_120;
  uint uStack_11c;
  uint uStack_118;
  uint uStack_114;
  uint uStack_110;
  uint uStack_10c;
  uint uStack_108;
  int *piStack_104;
  uint uStack_100;
  uint uStack_fc;
  uint uStack_f8;
  uint uStack_f4;
  uint uStack_f0;
  uint uStack_ec;
  uint uStack_e8;
  int *piStack_e4;
  int *piStack_e0;
  uint ******ppppppuStack_dc;
  uint *******pppppppuStack_d8;
  uint *******pppppppuStack_d4;
  int iStack_d0;
  uint *******pppppppuStack_cc;
  uint *******pppppppuStack_c8;
  uint *******pppppppuStack_c4;
  uint *******pppppppuStack_c0;
  undefined4 uStack_bc;
  undefined *puStack_a8;
  uint *******pppppppuStack_a0;
  undefined4 *puStack_9c;
  uint ******ppppppuStack_98;
  undefined4 uStack_94;
  uint ******ppppppuStack_90;
  uint *******pppppppuStack_8c;
  int *piStack_88;
  uint *******pppppppuStack_84;
  uint *******pppppppuStack_80;
  uint *******pppppppuStack_7c;
  undefined *puStack_78;
  uint *******pppppppuStack_74;
  uint *******pppppppuStack_70;
  uint *******pppppppuStack_6c;
  uint *******pppppppuStack_68;
  code *pcStack_64;
  uint *******local_40;
  int local_3c;
  int local_38;
  uint ******appppppuStack_34 [2];
  uint *******local_2c;
  
  puVar4 = PTR___stack_chk_guard_0003c314;
  local_2c = *(uint ********)PTR___stack_chk_guard_0003c314;
  pppppppuVar24 = param_3;
  pppppppuVar40 = (uint *******)((int)param_2 - param_1[6]);
  if ((int)param_2 < param_1[6]) {
    if (1 < param_1[0x14]) {
      param_1[4] = 0;
      param_1[5] = 0;
    }
    pppppppuVar24 = (uint *******)0x6;
    if (((uint)param_3 & 1) != 0) {
      pppppppuVar24 = (uint *******)0x4;
    }
    param_1[0xc] = param_1[0xb];
    param_1[0xe] = param_1[0xd];
    param_1[7] = 0;
    param_1[6] = 0;
    param_1[8] = 0;
    *(undefined1 *)(param_1 + 0x13) = 0;
    param_1[0xf] = (int)pppppppuVar24;
    pppppppuVar40 = param_2;
    if (*(char *)((int)param_1 + 0x4b) == '\0') {
      param_1[1] = *param_1;
      goto LAB_0001d010;
    }
    if (param_2 == (uint *******)0x0) goto LAB_0001d128;
LAB_0001d018:
    iVar25 = param_1[8];
    unaff_s2 = (uint *******)param_1[7];
    if ((int)pppppppuVar40 < iVar25) {
      if (*(char *)(param_1 + 0x13) == '\0') {
        iVar25 = FUN_0001cb50(param_1,(byte *)((int)pppppppuVar40 + -1),param_3);
        pppppppuVar24 = (uint *******)((int)unaff_s2 - (int)pppppppuVar40);
        param_1[0xf] = iVar25;
        if (1 < param_1[0x14]) {
          (*(code *)PTR_memmove_0003c324)
                    (param_1[2],param_1[2] + (int)pppppppuVar40 * 4,(int)pppppppuVar24 * 4);
          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);
        }
        cVar15 = *(char *)((int)param_1 + 0x4b);
        if (cVar15 != '\0') {
          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));
          cVar15 = *(char *)((int)param_1 + 0x4b);
          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);
        }
        pppppppuVar28 = (uint *******)param_1[0x14];
        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);
        param_1[7] = (int)pppppppuVar24;
        iVar25 = param_1[0xe] - (int)pppppppuVar40;
        param_1[8] = param_1[8] - (int)pppppppuVar40;
      }
      else {
        unaff_s7 = (uint *******)param_1[3];
        pbVar8 = (byte *)0x0;
        pppppppuVar24 = unaff_s2;
        do {
          unaff_s3 = (uint *******)((int)(pbVar8 + (int)pppppppuVar24) / 2);
          ppppppuVar20 = unaff_s7[(int)unaff_s3];
          pppppppuVar16 = unaff_s3;
          if (((int)ppppppuVar20 <= (int)pppppppuVar40) &&
             (pbVar8 = (byte *)((int)unaff_s3 + 1), pppppppuVar16 = pppppppuVar24,
             (int)pppppppuVar40 <= (int)ppppppuVar20)) goto LAB_0001d460;
          pppppppuVar24 = pppppppuVar16;
        } while ((int)pbVar8 < (int)pppppppuVar16);
        if ((int)ppppppuVar20 < (int)pppppppuVar40) {
          pppppppuVar24 = unaff_s3;
          unaff_s3 = (uint *******)((int)unaff_s3 + 1);
        }
        else {
LAB_0001d460:
          pppppppuVar24 = (uint *******)((int)unaff_s3 + -1);
        }
        iVar25 = FUN_0001cb50(param_1,pppppppuVar24,param_3);
        param_1[0xf] = iVar25;
        if ((((int)pppppppuVar40 < (int)unaff_s2) &&
            (param_3 = (uint *******)((int)pppppppuVar40 * 4), pppppppuVar40 == unaff_s3)) &&
           ((uint *******)unaff_s7[(int)pppppppuVar40] == pppppppuVar40)) {
          (*(code *)PTR_memmove_0003c324)
                    (param_1[2],(byte *)(param_1[2] + (int)param_3),
                     ((int)unaff_s2 - (int)pppppppuVar40) * 4);
          pppppppuVar24 = (uint *******)(param_1[7] - (int)pppppppuVar40);
          (*(code *)PTR_memmove_0003c324)(param_1[1],(byte *)(param_1[1] + (int)pppppppuVar40));
          iVar25 = param_1[7];
          param_1[7] = iVar25 - (int)pppppppuVar40;
          param_1[8] = param_1[8] - (int)pppppppuVar40;
          if (0 < iVar25 - (int)pppppppuVar40) {
            iVar25 = 0;
            pppppppuVar24 = (uint *******)((int)pppppppuVar40 * -4);
            pbVar8 = (byte *)(param_1[3] + (int)param_3);
            do {
              iVar25 = iVar25 + 1;
              *(int *)(pbVar8 + (int)pppppppuVar24) = *(int *)pbVar8 - (int)pppppppuVar40;
              pbVar8 = pbVar8 + 4;
            } while (iVar25 < param_1[7]);
          }
          pppppppuVar28 = (uint *******)param_1[0x14];
          cVar15 = *(char *)((int)param_1 + 0x4b);
          pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);
          iVar25 = param_1[0xe] - (int)pppppppuVar40;
        }
        else {
          *(undefined1 *)(param_1 + 0x13) = 0;
          pppppppuVar16 = (uint *******)(param_1[0xb] - (int)param_2);
          iVar25 = param_1[0xd] - (int)param_2;
          param_1[0xc] = (int)((int)pppppppuVar16 + (int)pppppppuVar40);
          param_1[0xe] = (int)(iVar25 + (int)pppppppuVar40);
          if ((0 < (int)unaff_s3) &&
             (pppppppuVar40 == (uint *******)unaff_s7[(int)((int)unaff_s3 + -1)])) {
            pppppppuVar24 = unaff_s7 + (int)unaff_s3;
            do {
              unaff_s3 = (uint *******)((int)unaff_s3 + -1);
              if (unaff_s3 == (uint *******)0x0) break;
              pppppppuVar22 = pppppppuVar24 + -2;
              pppppppuVar24 = pppppppuVar24 + -1;
            } while ((uint *******)*pppppppuVar22 == pppppppuVar40);
          }
          iVar5 = (int)unaff_s3 * 4;
          if ((int)unaff_s3 < (int)unaff_s2) {
            piVar6 = (int *)(param_1[2] + iVar5);
            iVar35 = *piVar6;
            while (iVar35 == -1) {
              unaff_s3 = (uint *******)((int)unaff_s3 + 1);
              piVar6 = piVar6 + 1;
              if (unaff_s3 == unaff_s2) goto LAB_0001d444;
              iVar5 = (int)unaff_s3 * 4;
              iVar35 = *piVar6;
            }
LAB_0001d4ac:
            unaff_s7 = (uint *******)((int)unaff_s7 + iVar5);
            pppppppuVar24 = (uint *******)((int)*unaff_s7 - (int)pppppppuVar40);
            param_1[7] = (int)pppppppuVar24;
            if (pppppppuVar24 != (uint *******)0x0) {
              if (0 < (int)pppppppuVar24) {
                puVar9 = (undefined4 *)param_1[2];
                iVar25 = 0;
                do {
                  *puVar9 = 0xffffffff;
                  iVar25 = iVar25 + 1;
                  puVar9 = puVar9 + 1;
                } while (iVar25 < param_1[7]);
              }
              (*(code *)PTR_memset_0003c290)(param_1[1],0xff);
              pppppppuVar24 = (uint *******)param_1[7];
              pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);
              iVar25 = param_1[0xe] - (int)pppppppuVar40;
            }
          }
          else {
            if (unaff_s3 != unaff_s2) goto LAB_0001d4ac;
LAB_0001d444:
            pppppppuVar24 = (uint *******)0x0;
            param_1[7] = 0;
          }
          pppppppuVar28 = (uint *******)param_1[0x14];
          cVar15 = *(char *)((int)param_1 + 0x4b);
          param_1[8] = (int)pppppppuVar24;
        }
      }
LAB_0001d090:
      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);
      if (cVar15 == '\0') {
LAB_0001d098:
        pppppppuVar40 = (uint *******)(param_1[1] + (int)pppppppuVar40);
        param_1[1] = (int)pppppppuVar40;
      }
      param_1[6] = (int)param_2;
      param_1[0xc] = (int)pppppppuVar16;
      param_1[0xe] = iVar25;
      if (pppppppuVar22 == (uint *******)0x0) goto LAB_0001d0b4;
LAB_0001d148:
      cVar15 = *(char *)((int)param_1 + 0x4b);
    }
    else {
      if (*(char *)(param_1 + 0x13) != '\0') {
        *(undefined1 *)(param_1 + 0x13) = 0;
        param_1[0xc] = (int)((param_1[0xb] - (int)param_2) + (int)pppppppuVar40);
        param_1[0xe] = (int)((param_1[0xd] - (int)param_2) + (int)pppppppuVar40);
      }
      pppppppuVar28 = (uint *******)param_1[0x14];
      unaff_s8 = (uint *******)param_1[6];
      pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);
      param_1[7] = 0;
      if (pppppppuVar22 == (uint *******)0x0) {
        if (*(char *)((int)param_1 + 0x49) == '\0') {
LAB_0001d228:
          pbVar8 = (byte *)((int)unaff_s8 + iVar25);
          if ((int)pbVar8 < (int)param_2) {
            unaff_s7 = (uint *******)&local_40;
            do {
              local_3c = param_1[4];
              local_38 = param_1[5];
              pppppppuVar16 = (uint *******)(param_1[0xb] - (int)pbVar8);
              pppppppuVar24 = pppppppuVar16;
              iVar25 = rpl_mbrtowc(unaff_s7,pbVar8 + *param_1,pppppppuVar16,param_1 + 4);
              unaff_s3 = local_40;
              if (0xfffffffc < iVar25 - 1U) {
                if ((iVar25 == 0) || (pppppppuVar16 == (uint *******)0x0)) {
                  unaff_s3 = (uint *******)0x0;
                }
                else {
                  unaff_s3 = (uint *******)(uint)pbVar8[*param_1];
                }
                iVar25 = 1;
                param_1[4] = local_3c;
                param_1[5] = local_38;
              }
              pbVar8 = pbVar8 + iVar25;
            } while ((int)pbVar8 < (int)param_2);
            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);
            param_1[7] = (int)unaff_s8;
            if (unaff_s3 != (uint *******)0xffffffff) goto LAB_0001d2a4;
          }
          else {
            unaff_s8 = (uint *******)(pbVar8 + -(int)param_2);
            param_1[7] = (int)unaff_s8;
          }
          pppppppuVar24 = param_3;
          iVar25 = FUN_0001cb50(param_1,(byte *)((int)unaff_s2 + -1));
          param_1[0xf] = iVar25;
        }
        else {
          pppppppuVar16 = (uint *******)*param_1;
          unaff_s7 = (uint *******)((int)pppppppuVar16 + (int)unaff_s8);
          pppppppuVar24 = (uint *******)((int)unaff_s7 + ((int)pppppppuVar40 - (int)pppppppuVar28));
          unaff_s3 = (uint *******)((int)unaff_s7 + (int)((int)pppppppuVar40 + -1));
          if (pppppppuVar24 <= pppppppuVar16) {
            pppppppuVar24 = pppppppuVar16;
          }
          if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;
          bVar2 = *(byte *)unaff_s3;
          while ((bVar2 & 0xc0) == 0x80) {
            unaff_s3 = (uint *******)((int)unaff_s3 + -1);
            if (unaff_s3 < pppppppuVar24) goto LAB_0001d228;
            bVar2 = *(byte *)unaff_s3;
          }
          iVar25 = param_1[0x10];
          pppppppuVar24 = (uint *******)((int)unaff_s7 + (param_1[0xc] - (int)unaff_s3));
          pppppppuVar16 = unaff_s3;
          if (iVar25 != 0) {
            pppppppuVar22 = (uint *******)0x6;
            if ((int)pppppppuVar24 < 7) {
              pppppppuVar22 = pppppppuVar24;
            }
            pppppppuVar16 = appppppuStack_34;
            if (0 < (int)pppppppuVar24) {
              pbVar8 = (byte *)((int)unaff_s3 + (int)pppppppuVar22);
              pppppppuVar22 = (uint *******)((int)pppppppuVar16 + (int)pppppppuVar22);
              do {
                pbVar1 = pbVar8 + -1;
                pppppppuVar22 = (uint *******)((int)pppppppuVar22 + -1);
                pbVar8 = pbVar8 + -1;
                *(byte *)pppppppuVar22 = *(byte *)(iVar25 + (uint)*pbVar1);
              } while (pppppppuVar16 != pppppppuVar22);
            }
          }
          local_3c = 0;
          local_38 = 0;
          uVar34 = rpl_mbrtowc(&local_40,pppppppuVar16);
          uVar26 = (int)((int)unaff_s7 + (int)pppppppuVar40) - (int)unaff_s3;
          if ((uVar34 < uVar26) || (0xfffffffd < uVar34)) {
            unaff_s8 = (uint *******)param_1[6];
            iVar25 = param_1[8];
            goto LAB_0001d228;
          }
          unaff_s8 = (uint *******)(uVar34 - uVar26);
          param_1[4] = 0;
          param_1[5] = 0;
          param_1[7] = (int)unaff_s8;
          unaff_s3 = local_40;
          if (local_40 == (uint *******)0xffffffff) {
            unaff_s8 = (uint *******)param_1[6];
            iVar25 = param_1[8];
            goto LAB_0001d228;
          }
LAB_0001d2a4:
          if ((*(char *)((int)param_1 + 0x4e) == '\0') ||
             ((iVar25 = (*(code *)PTR_iswalnum_0003c288)(unaff_s3), iVar25 == 0 &&
              (unaff_s3 != (uint *******)0x5f)))) {
            iVar25 = 2;
            if (unaff_s3 == (uint *******)0xa) {
              if (*(char *)((int)param_1 + 0x4d) == '\0') {
                iVar25 = 0;
              }
            }
            else {
              iVar25 = 0;
            }
          }
          else {
            iVar25 = 1;
          }
          param_1[0xf] = iVar25;
        }
        pppppppuVar16 = pppppppuVar24;
        if (unaff_s8 == (uint *******)0x0) {
LAB_0001d2cc:
          cVar15 = *(char *)((int)param_1 + 0x4b);
          pppppppuVar24 = pppppppuVar16;
        }
        else {
          iVar25 = 0;
          pppppppuVar16 = unaff_s8;
          if (0 < (int)unaff_s8) {
            puVar9 = (undefined4 *)param_1[2];
            do {
              *puVar9 = 0xffffffff;
              iVar25 = iVar25 + 1;
              pppppppuVar16 = (uint *******)param_1[7];
              puVar9 = puVar9 + 1;
            } while (iVar25 < (int)pppppppuVar16);
          }
          if (*(char *)((int)param_1 + 0x4b) != '\0') {
            (*(code *)PTR_memset_0003c290)(param_1[1],0xff);
            unaff_s8 = (uint *******)param_1[7];
            goto LAB_0001d2cc;
          }
          unaff_s8 = (uint *******)param_1[7];
          cVar15 = '\0';
        }
        pppppppuVar28 = (uint *******)param_1[0x14];
        param_1[8] = (int)unaff_s8;
        pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);
        iVar25 = param_1[0xe] - (int)pppppppuVar40;
        goto LAB_0001d090;
      }
      uVar34 = (uint)((byte *)(*param_1 + (int)pppppppuVar40) + (int)unaff_s8)[-1];
      param_1[8] = 0;
      if (param_1[0x10] != 0) {
        uVar34 = (uint)*(byte *)(param_1[0x10] + uVar34);
      }
      pppppppuVar24 =
           (uint *******)(*(uint *)(param_1[0x11] + ((int)uVar34 >> 5) * 4) >> (uVar34 & 0x1f) & 1);
      if (((pppppppuVar24 == (uint *******)0x0) && (uVar34 == 10)) &&
         (pppppppuVar24 = (uint *******)0x2, *(char *)((int)param_1 + 0x4d) == '\0')) {
        pppppppuVar24 = (uint *******)0x0;
      }
      cVar15 = *(char *)((int)param_1 + 0x4b);
      param_1[0xf] = (int)pppppppuVar24;
      pppppppuVar16 = (uint *******)(param_1[0xc] - (int)pppppppuVar40);
      iVar25 = param_1[0xe] - (int)pppppppuVar40;
      if (cVar15 == '\0') goto LAB_0001d098;
      param_1[6] = (int)param_2;
      param_1[0xc] = (int)pppppppuVar16;
      param_1[0xe] = iVar25;
    }
    if (cVar15 == '\0') {
      param_1[7] = (int)pppppppuVar16;
    }
    else if (*(char *)(param_1 + 0x12) == '\0') {
      pppppppuVar22 = (uint *******)param_1[0x10];
      if (pppppppuVar22 != (uint *******)0x0) {
        pppppppuVar24 = (uint *******)param_1[9];
        pppppppuVar18 = (uint *******)param_1[7];
        if ((int)pppppppuVar24 <= (int)pppppppuVar16) {
          pppppppuVar16 = pppppppuVar24;
        }
        if ((int)pppppppuVar18 < (int)pppppppuVar16) {
          while( true ) {
            pppppppuVar24 = (uint *******)(param_1[1] + (int)pppppppuVar18);
            param_2 = (uint *******)((byte *)(*param_1 + (int)pppppppuVar18) + (int)param_2);
            pppppppuVar18 = (uint *******)((int)pppppppuVar18 + 1);
            pppppppuVar22 = (uint *******)((int)pppppppuVar22 + (uint)*(byte *)param_2);
            *(byte *)pppppppuVar24 = *(byte *)pppppppuVar22;
            if (pppppppuVar16 == pppppppuVar18) break;
            param_2 = (uint *******)param_1[6];
            pppppppuVar22 = (uint *******)param_1[0x10];
          }
          param_1[7] = (int)pppppppuVar16;
          param_1[8] = (int)pppppppuVar16;
        }
        else {
          param_1[7] = (int)pppppppuVar18;
          param_1[8] = (int)pppppppuVar18;
        }
      }
    }
    else {
      FUN_000187d0(param_1);
    }
LAB_0001d0dc:
    pppppppuVar16 = (uint *******)0x0;
    param_1[10] = 0;
  }
  else {
LAB_0001d010:
    if (pppppppuVar40 != (uint *******)0x0) goto LAB_0001d018;
LAB_0001d128:
    pppppppuVar28 = (uint *******)param_1[0x14];
    pppppppuVar16 = (uint *******)param_1[0xc];
    pppppppuVar22 = (uint *******)(uint)((int)pppppppuVar28 < 2);
    param_1[6] = (int)param_2;
    param_1[0xc] = (int)pppppppuVar16;
    param_1[0xe] = param_1[0xe];
    if (pppppppuVar22 != (uint *******)0x0) goto LAB_0001d148;
LAB_0001d0b4:
    if (*(char *)(param_1 + 0x12) == '\0') {
      FUN_000188b4(param_1);
      goto LAB_0001d0dc;
    }
    pppppppuVar16 = (uint *******)FUN_00018b3c();
    if (pppppppuVar16 == (uint *******)0x0) goto LAB_0001d0dc;
  }
  if (local_2c == *(uint ********)puVar4) {
    return pppppppuVar16;
  }
  pcVar46 = FUN_0001d8a0;
  pppppppuVar16 = local_2c;
  puVar43 = PTR___stack_chk_fail_0003c2f4;
  (*(code *)PTR___stack_chk_fail_0003c2f4)();
  puVar45 = puVar43 + 0x26830;
  puStack_9c = *(undefined4 **)(puVar43 + 0x1ea74);
  ppppppuStack_98 = (uint ******)0x0;
  uStack_94 = 0;
  ppppppuStack_90 = (uint ******)0x0;
  ppppppuVar20 = pppppppuVar16[7] + (int)pppppppuVar22 * 3;
  puStack_78 = puVar4;
  pppppppuStack_8c = (uint *******)*puStack_9c;
  pppppuVar31 = ppppppuVar20[1];
  iVar25 = *(int *)(puVar43 + 0x1e948);
  pppppppuVar18 = pppppppuVar22;
  puStack_a8 = puVar45;
  pppppppuStack_a0 = pppppppuVar28;
  piStack_88 = param_1;
  pppppppuStack_84 = pppppppuVar40;
  pppppppuStack_80 = unaff_s2;
  pppppppuStack_7c = unaff_s3;
  pppppppuStack_74 = param_2;
  pppppppuStack_70 = param_3;
  pppppppuStack_6c = unaff_s7;
  pppppppuStack_68 = unaff_s8;
  pcStack_64 = pcVar46;
  if (0 < (int)pppppuVar31) {
    pppppppuVar40 = &ppppppuStack_98;
    param_1 = (int *)0x0;
    param_2 = (uint *******)(ppppppuVar20 + 2);
    iVar25 = iVar25 + -0x5d30;
    param_3 = (uint *******)(*(int *)(puVar43 + 0x1e948) + -20000);
    do {
      pppppppuVar28 = (uint *******)ppppppuVar20[2][(int)param_1];
      if ((pppppppuVar22 != pppppppuVar28) &&
         (((uint)(*pppppppuVar16)[(int)pppppppuVar28 * 2 + 1] & 0x8000000) != 0)) {
        iVar35 = (int)pppppppuVar28 * 0xc;
        ppppppuVar36 = pppppppuVar16[5] + (int)pppppppuVar28 * 3;
        pppppuVar38 = ppppppuVar36[2];
        pppppppuVar18 = param_2;
        iVar5 = FUN_0001a2d0(pppppuVar31,param_2,*pppppuVar38);
        if ((int)ppppppuVar36[1] < 2) {
          puVar45 = puStack_a8;
          if (iVar5 == 0) {
            pppppppuVar18 = pppppppuVar24 + 2;
            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);
            puVar45 = puStack_a8;
            if (iVar5 != 0) goto LAB_0001d960;
          }
        }
        else if ((iVar5 == 0) &&
                (iVar5 = FUN_0001a2d0(pppppppuVar24[1],pppppppuVar24 + 2), iVar5 != 0)) {
LAB_0001d960:
          ppppppuVar36 = pppppppuVar16[7];
LAB_0001d964:
          pppppppuVar18 = pppppppuStack_a0;
          pppppppuVar28 =
               (uint *******)FUN_0001b1e0(pppppppuVar40,pppppppuStack_a0,(int)ppppppuVar36 + iVar35)
          ;
          if (pppppppuVar28 != (uint *******)0x0) {
            pppppppuStack_a0 = pppppppuVar28;
            (**(code **)(puStack_a8 + -0x7db0))(ppppppuStack_90);
            pppppppuVar28 = pppppppuStack_a0;
            goto LAB_0001db20;
          }
          pppppuVar31 = ppppppuVar20[1];
          puVar45 = puStack_a8;
        }
        else {
          pppppppuVar18 = param_2;
          puVar45 = puStack_a8;
          if ((0 < (int)pppppuVar38[1]) &&
             (iVar5 = FUN_0001a2d0(pppppuVar31,param_2,pppppuVar38[1]), puVar45 = puStack_a8,
             iVar5 == 0)) {
            pppppppuVar18 = pppppppuVar24 + 2;
            iVar5 = FUN_0001a2d0(pppppppuVar24[1]);
            puVar45 = puStack_a8;
            if (iVar5 != 0) {
              ppppppuVar36 = pppppppuVar16[7];
              goto LAB_0001d964;
            }
          }
        }
      }
      param_1 = (int *)((int)param_1 + 1);
    } while ((int)param_1 < (int)pppppuVar31);
    unaff_s2 = pppppppuVar22;
    unaff_s3 = pppppppuVar24;
    unaff_s7 = pppppppuVar40;
    unaff_s8 = pppppppuVar16;
    if (0 < (int)pppppuVar31) {
      iVar5 = 0;
      pppppppuVar22 = pppppppuVar24 + 1;
      pppppppuVar16 = pppppppuVar24 + 2;
      pppppppuVar40 = &ppppppuStack_90;
      do {
        pppppppuVar19 = pppppppuVar40;
        iVar35 = FUN_0001a2d0(uStack_94,pppppppuVar40,ppppppuVar20[2][iVar5]);
        pppppppuVar28 = pppppppuVar16;
        if (iVar35 == 0) {
          ppppppuVar36 = pppppppuVar24[1];
          pppppppuVar18 = pppppppuVar16;
          iVar35 = FUN_0001a2d0(ppppppuVar36);
          pppppppuVar40 = pppppppuVar16;
          pppppppuVar28 = pppppppuVar18;
          if ((-1 < iVar35 + -1) && (iVar35 + -1 < (int)ppppppuVar36)) {
            pppppppuVar24[1] = (uint ******)((int)ppppppuVar36 - 1);
            FUN_0001a534(pppppppuVar22);
            pppppuVar31 = ppppppuVar20[1];
            pppppppuVar40 = pppppppuVar18;
          }
        }
        iVar5 = iVar5 + 1;
        pppppppuVar18 = pppppppuVar40;
        pppppppuVar16 = pppppppuVar28;
        pppppppuVar40 = pppppppuVar19;
        puVar45 = puStack_a8;
      } while (iVar5 < (int)pppppuVar31);
    }
  }
  (**(code **)(puVar45 + -0x7db0))(ppppppuStack_90);
  pppppppuVar28 = (uint *******)0x0;
  pppppppuVar22 = unaff_s2;
  pppppppuVar24 = unaff_s3;
  pppppppuVar40 = unaff_s7;
  pppppppuVar16 = unaff_s8;
LAB_0001db20:
  if (pppppppuStack_8c == (uint *******)*puStack_9c) {
    return pppppppuVar28;
  }
  pcVar46 = *(code **)(puStack_a8 + -0x7ddc);
  uVar47 = 0x1db90;
  pppppppuVar19 = pppppppuStack_8c;
  (*pcVar46)();
  piVar6 = *(int **)(pcVar46 + 0x1e784);
  piStack_e4 = (int *)*piVar6;
  pppppppuVar28 = pppppppuVar18;
  piStack_e0 = param_1;
  ppppppuStack_dc = ppppppuVar20;
  pppppppuStack_d8 = pppppppuVar22;
  pppppppuStack_d4 = pppppppuVar24;
  iStack_d0 = iVar25;
  pppppppuStack_cc = param_2;
  pppppppuStack_c8 = param_3;
  pppppppuStack_c4 = pppppppuVar40;
  pppppppuStack_c0 = pppppppuVar16;
  uStack_bc = uVar47;
  iVar25 = (**(code **)(pcVar46 + 0x1e724))(0x2c00);
  if (iVar25 == 0) goto LAB_0001dffc;
  ppppppuVar20 = pppppppuVar18[2];
  pppppppuVar18[0xb] = (uint ******)0x0;
  puVar7 = (uint *)(iVar25 + 0xc00);
  pppppppuVar18[0xc] = (uint ******)0x0;
  pppppppuStack_144 = (uint *******)0x0;
  uStack_140 = 0;
  uStack_13c = 0;
  uStack_138 = 0;
  uStack_134 = 0;
  uStack_130 = 0;
  uStack_12c = 0;
  uStack_128 = 0;
  if (0 < (int)ppppppuVar20) {
    iVar5 = *(int *)(pcVar46 + 0x1e658);
    iStack_184 = 0;
    iVar35 = *(int *)(pcVar46 + 0x1e658);
    pppppppuVar24 = (uint *******)0x0;
LAB_0001dc74:
    ppppppuVar36 = *pppppppuVar19 + (int)pppppppuVar18[3][iStack_184] * 2;
    bVar2 = *(byte *)(ppppppuVar36 + 1);
    uVar34 = (uint)((int)ppppppuVar36[1] << 8) >> 0x16;
    if (bVar2 == 1) {
      pppppppuVar40 = (uint *******)(&pppppppuStack_144 + ((int)(uint)*(byte *)ppppppuVar36 >> 5));
      pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | 1 << (*(byte *)ppppppuVar36 & 0x1f));
      *pppppppuVar40 = (uint ******)pppppppuVar28;
LAB_0001e060:
      pppppppuVar40 = pppppppuStack_144;
      if (uVar34 == 0) goto LAB_0001e15c;
      if ((uVar34 & 0x20) == 0) {
        if ((uVar34 & 0x80) != 0) goto LAB_0001e428;
LAB_0001e07c:
        if ((uVar34 & 4) != 0) {
          if (bVar2 == 1) {
            if (((uint)ppppppuVar36[1] & 0x200) == 0) goto LAB_0001e428;
            ppppppuVar13 = pppppppuVar19[0x17];
          }
          else {
            ppppppuVar13 = pppppppuVar19[0x17];
          }
          if ((int)ppppppuVar13 < 2) {
            pppppppuVar16 = pppppppuVar19 + 0x18;
            uVar26 = 0;
            pppppppuVar40 = (uint *******)&pppppppuStack_144;
            do {
              pppppppuVar22 = pppppppuVar40 + 1;
              ppppppuVar13 = *pppppppuVar16;
              pppppppuVar16 = pppppppuVar16 + 1;
              pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 & (uint)ppppppuVar13);
              *pppppppuVar40 = (uint ******)pppppppuVar28;
              uVar26 = uVar26 | (uint)pppppppuVar28;
              pppppppuVar40 = pppppppuVar22;
            } while (&ppppppuStack_124 != pppppppuVar22);
          }
          else {
            ppppppuVar13 = pppppppuVar19[0xf];
            pppppppuVar16 = pppppppuVar19 + 0x18;
            uVar26 = 0;
            pppppppuVar40 = (uint *******)&pppppppuStack_144;
            do {
              pppppppuVar28 = pppppppuVar40 + 1;
              pppppuVar31 = *ppppppuVar13;
              ppppppuVar32 = *pppppppuVar16;
              ppppppuVar13 = ppppppuVar13 + 1;
              pppppppuVar16 = pppppppuVar16 + 1;
              ppppppuVar32 = (uint ******)
                             ((~(uint)pppppuVar31 | (uint)ppppppuVar32) & (uint)*pppppppuVar40);
              *pppppppuVar40 = ppppppuVar32;
              uVar26 = uVar26 | (uint)ppppppuVar32;
              pppppppuVar40 = pppppppuVar28;
            } while (&ppppppuStack_124 != pppppppuVar28);
          }
          if (uVar26 == 0) goto LAB_0001dcc8;
        }
        if ((uVar34 & 8) == 0) {
LAB_0001e15c:
          pppppppuVar40 = (uint *******)0x0;
          if (0 < (int)pppppppuVar24) {
            pppppppuVar40 = (uint *******)0x0;
            puVar14 = puVar7;
            do {
              pppppppuVar28 = (uint *******)((int)pppppppuVar40 * 0x20);
              if ((bVar2 != 1) ||
                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar36 >> 5))[(int)pppppppuVar40 * 8] >>
                   (*(byte *)ppppppuVar36 & 0x1f) & 1) != 0)) {
                uVar34 = 0;
                pppppppuVar16 = (uint *******)&pppppppuStack_144;
                pppppppuVar22 = &ppppppuStack_124;
                puVar33 = puVar14;
                do {
                  pppppppuVar28 = pppppppuVar16 + 1;
                  uVar26 = *puVar33;
                  ppppppuVar20 = *pppppppuVar16;
                  puVar33 = puVar33 + 1;
                  *pppppppuVar22 = (uint ******)((uint)ppppppuVar20 & uVar26);
                  uVar34 = uVar34 | (uint)ppppppuVar20 & uVar26;
                  pppppppuVar16 = pppppppuVar28;
                  pppppppuVar22 = pppppppuVar22 + 1;
                } while (&ppppppuStack_124 != pppppppuVar28);
                pppppppuVar28 = (uint *******)&pppppppuStack_144;
                if (uVar34 != 0) {
                  uVar26 = 0;
                  uVar34 = 0;
                  pppppppuVar16 = (uint *******)&pppppppuStack_144;
                  puVar33 = puVar14;
                  ppiVar37 = &piStack_104;
                  do {
                    uVar29 = *puVar33;
                    puVar33 = puVar33 + 1;
                    piVar39 = (int *)(~(uint)*pppppppuVar16 & uVar29);
                    ppppppuVar20 = (uint ******)(~uVar29 & (uint)*pppppppuVar16);
                    *ppiVar37 = piVar39;
                    *pppppppuVar16 = ppppppuVar20;
                    uVar34 = uVar34 | (uint)piVar39;
                    uVar26 = uVar26 | (uint)ppppppuVar20;
                    pppppppuVar16 = pppppppuVar16 + 1;
                    ppiVar37 = ppiVar37 + 1;
                  } while (puVar14 + 8 != puVar33);
                  pppppppuVar16 = (uint *******)(iVar25 + (int)pppppppuVar40 * 0xc);
                  if (uVar34 != 0) {
                    iStack_178 = (int)pppppppuVar24 * 2;
                    puVar33 = puVar7 + (int)pppppppuVar24 * 8;
                    *puVar33 = (uint)piStack_104;
                    puVar33[1] = uStack_100;
                    puVar33[2] = uStack_fc;
                    puVar33[3] = uStack_f8;
                    puVar33[4] = uStack_f4;
                    puVar33[5] = uStack_f0;
                    puVar33[6] = uStack_ec;
                    puVar33[7] = uStack_e8;
                    puVar14[1] = uStack_120;
                    puVar14[2] = uStack_11c;
                    *puVar14 = (uint)ppppppuStack_124;
                    puVar14[3] = uStack_118;
                    puVar14[4] = uStack_114;
                    puVar14[5] = uStack_110;
                    puVar14[6] = uStack_10c;
                    puVar14[7] = uStack_108;
                    pppppppuVar28 = pppppppuVar16;
                    iVar41 = (*(code *)(iVar35 + -0x4580))(iVar25 + (int)pppppppuVar24 * 0xc);
                    if (iVar41 != 0) goto LAB_0001e458;
                    pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);
                  }
                  pppppppuVar28 = (uint *******)pppppppuVar18[3][iStack_184];
                  iVar41 = (*(code *)(iVar5 + -0x7b38))(pppppppuVar16);
                  if (iVar41 == 0) {
                    iStack_178 = (int)pppppppuVar24 << 1;
                    goto LAB_0001e458;
                  }
                  if (uVar26 == 0) break;
                }
              }
              puVar14 = puVar14 + 8;
              pppppppuVar40 = (uint *******)((int)pppppppuVar40 + 1);
            } while ((int)pppppppuVar40 < (int)pppppppuVar24);
          }
          iStack_178 = (int)pppppppuVar24 * 2;
          if (pppppppuVar24 == pppppppuVar40) {
            ppppppuVar20 = pppppppuVar18[3];
            pcVar10 = *(code **)(pcVar46 + 0x1e724);
            puVar14 = puVar7 + (int)pppppppuVar24 * 8;
            *puVar14 = (uint)pppppppuStack_144;
            pppppppuVar28 = (uint *******)(ppppppuVar20 + iStack_184);
            puVar14[1] = uStack_140;
            puVar9 = (undefined4 *)(iVar25 + (int)pppppppuVar24 * 0xc);
            puVar14[2] = uStack_13c;
            puVar14[3] = uStack_138;
            puVar14[4] = uStack_134;
            puVar14[5] = uStack_130;
            puVar14[6] = uStack_12c;
            puVar14[7] = uStack_128;
            ppppppuVar36 = *pppppppuVar28;
            *puVar9 = 1;
            puVar9[1] = 1;
            puVar14 = (uint *)(*pcVar10)(4);
            puVar9[2] = puVar14;
            if (puVar14 != (uint *)0x0) {
              ppppppuVar20 = pppppppuVar18[2];
              pppppppuVar24 = (uint *******)((int)pppppppuVar24 + 1);
              *puVar14 = (uint)ppppppuVar36;
              pppppppuStack_144 = (uint *******)0x0;
              uStack_140 = 0;
              uStack_13c = 0;
              uStack_138 = 0;
              uStack_134 = 0;
              uStack_130 = 0;
              uStack_12c = 0;
              uStack_128 = 0;
              goto LAB_0001dcc8;
            }
            puVar9[1] = 0;
            *puVar9 = 0;
            if (pppppppuVar24 == (uint *******)0x0) {
              (**(code **)(pcVar46 + 0x1e790))(iVar25);
            }
            else {
LAB_0001e458:
              iVar5 = iVar25;
              do {
                iVar35 = iVar5 + 0xc;
                (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));
                iVar5 = iVar35;
              } while ((int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25 != iVar35);
              (**(code **)(pcVar46 + 0x1e790))(iVar25);
            }
            goto LAB_0001dffc;
          }
          ppppppuVar20 = pppppppuVar18[2];
          goto LAB_0001dcc8;
        }
        if ((bVar2 != 1) || (((uint)ppppppuVar36[1] & 0x200) == 0)) {
          pppppppuVar40 = pppppppuVar19 + 0x18;
          if ((int)pppppppuVar19[0x17] < 2) {
            pppppppuVar28 = (uint *******)0x0;
            pppppppuVar16 = (uint *******)&pppppppuStack_144;
            do {
              pppppppuVar22 = pppppppuVar16 + 1;
              ppppppuVar13 = *pppppppuVar40;
              ppppppuVar32 = *pppppppuVar16;
              pppppppuVar40 = pppppppuVar40 + 1;
              *pppppppuVar16 = (uint ******)(~(uint)ppppppuVar13 & (uint)ppppppuVar32);
              pppppppuVar28 =
                   (uint *******)((uint)pppppppuVar28 | ~(uint)ppppppuVar13 & (uint)ppppppuVar32);
              pppppppuVar16 = pppppppuVar22;
            } while (pppppppuVar22 != &ppppppuStack_124);
          }
          else {
            ppppppuVar13 = pppppppuVar19[0xf];
            pppppppuVar28 = (uint *******)0x0;
            pppppppuVar16 = (uint *******)&pppppppuStack_144;
            do {
              pppppppuVar22 = pppppppuVar16 + 1;
              pppppuVar31 = *ppppppuVar13;
              ppppppuVar32 = *pppppppuVar40;
              ppppppuVar13 = ppppppuVar13 + 1;
              pppppppuVar40 = pppppppuVar40 + 1;
              ppppppuVar32 = (uint ******)
                             (~((uint)ppppppuVar32 & (uint)pppppuVar31) & (uint)*pppppppuVar16);
              *pppppppuVar16 = ppppppuVar32;
              pppppppuVar28 = (uint *******)((uint)pppppppuVar28 | (uint)ppppppuVar32);
              pppppppuVar16 = pppppppuVar22;
            } while (&ppppppuStack_124 != pppppppuVar22);
          }
          if (pppppppuVar28 == (uint *******)0x0) goto LAB_0001dcc8;
          goto LAB_0001e15c;
        }
        pppppppuStack_144 = (uint *******)0x0;
      }
      else {
        uStack_140 = 0;
        pppppppuStack_144 = (uint *******)0x0;
        uStack_13c = 0;
        uStack_138 = 0;
        uStack_134 = 0;
        uStack_130 = 0;
        uStack_12c = 0;
        uStack_128 = 0;
        if (((uint)pppppppuVar40 & 0x400) == 0) goto LAB_0001dcc8;
        pppppppuStack_144 = (uint *******)0x400;
        if ((uVar34 & 0x80) == 0) goto LAB_0001e07c;
LAB_0001e428:
        pppppppuStack_144 = (uint *******)0x0;
      }
      pppppppuStack_144 = (uint *******)0x0;
      uStack_140 = 0;
      uStack_13c = 0;
      uStack_138 = 0;
      uStack_134 = 0;
      uStack_130 = 0;
      uStack_12c = 0;
      uStack_128 = 0;
    }
    else {
      if (bVar2 == 3) {
        pppppuVar31 = *ppppppuVar36;
        pppppppuVar40 = (uint *******)&pppppppuStack_144;
        do {
          pppppppuVar16 = pppppppuVar40 + 1;
          ppppuVar30 = *pppppuVar31;
          pppppuVar31 = pppppuVar31 + 1;
          pppppppuVar28 = (uint *******)((uint)*pppppppuVar40 | (uint)ppppuVar30);
          *pppppppuVar40 = (uint ******)pppppppuVar28;
          pppppppuVar40 = pppppppuVar16;
        } while (&ppppppuStack_124 != pppppppuVar16);
        goto LAB_0001e060;
      }
      if (bVar2 == 5) {
        if ((int)pppppppuVar19[0x17] < 2) {
          pppppppuStack_144 = (uint *******)0xffffffff;
          uStack_140 = 0xffffffff;
          uStack_13c = 0xffffffff;
          uStack_138 = 0xffffffff;
          uStack_134 = 0xffffffff;
          uStack_130 = 0xffffffff;
          uStack_12c = 0xffffffff;
          uStack_128 = 0xffffffff;
        }
        else {
          ppppppuVar13 = pppppppuVar19[0xf];
          pppppppuVar40 = (uint *******)&pppppppuStack_144;
          do {
            pppppppuVar16 = pppppppuVar40 + 1;
            pppppuVar31 = *ppppppuVar13;
            ppppppuVar13 = ppppppuVar13 + 1;
            *pppppppuVar40 = (uint ******)((uint)*pppppppuVar40 | (uint)pppppuVar31);
            pppppppuVar40 = pppppppuVar16;
          } while (&ppppppuStack_124 != pppppppuVar16);
        }
        ppppppuVar13 = pppppppuVar19[0x20];
joined_r0x0001e3b8:
        if (((uint)ppppppuVar13 & 0x40) == 0) {
          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffbff);
        }
        pppppppuVar28 = pppppppuStack_144;
        if (((uint)ppppppuVar13 & 0x80) != 0) {
          pppppppuVar28 = (uint *******)&SUB_fffffffe;
          pppppppuStack_144 = (uint *******)((uint)pppppppuStack_144 & 0xfffffffe);
        }
        goto LAB_0001e060;
      }
      pppppppuVar28 = (uint *******)0xffffffff;
      if (bVar2 == 7) {
        ppppppuVar13 = pppppppuVar19[0x20];
        pppppppuStack_144 = (uint *******)0xffffffff;
        uStack_140 = 0xffffffff;
        uStack_13c = 0xffffffff;
        uStack_138 = 0xffffffff;
        goto joined_r0x0001e3b8;
      }
    }
LAB_0001dcc8:
    iStack_184 = iStack_184 + 1;
    if ((int)ppppppuVar20 <= iStack_184) goto code_r0x0001dcdc;
    goto LAB_0001dc74;
  }
  (**(code **)(pcVar46 + 0x1e790))(iVar25);
  goto LAB_0001e824;
code_r0x0001dcdc:
  if (0 < (int)pppppppuVar24) {
    pbVar8 = (byte *)((int)pppppppuVar24 + 1);
    uStack_14c = 0;
    pbStack_150 = pbVar8;
    iVar5 = (**(code **)(pcVar46 + 0x1e724))((int)pbVar8 * 4);
    iStack_148 = iVar5;
    if ((iVar5 == 0) || (iStack_154 = 0, 0x155551aa < (int)pppppppuVar24)) {
      iStack_178 = (int)pppppppuVar24 << 1;
    }
    else {
      iStack_178 = (int)pppppppuVar24 * 2;
      puVar9 = (undefined4 *)(**(code **)(pcVar46 + 0x1e724))((int)pppppppuVar24 * 0xc);
      if (puVar9 != (undefined4 *)0x0) {
        iVar5 = (int)pbVar8 * 4 + -4;
        ppiVar37 = &piStack_104;
        iVar41 = 0;
        puVar17 = puVar9 + (int)pppppppuVar24;
        piStack_104 = (int *)0x0;
        piVar39 = (int *)(iVar25 + 4);
        uStack_100 = 0;
        uStack_fc = 0;
        iVar35 = *(int *)(pcVar46 + 0x1e658);
        uStack_f8 = 0;
        bVar3 = false;
        uStack_f4 = 0;
        uStack_f0 = 0;
        uStack_ec = 0;
        uStack_e8 = 0;
        pcVar10 = (code *)(*(int *)(pcVar46 + 0x1e658) + -0x42b4);
        do {
          iVar23 = *piVar39;
          iVar42 = 0;
          uStack_14c = 0;
          if (0 < iVar23) {
            do {
              if (pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] != (uint *****)0xffffffff) {
                pppppppuVar28 =
                     (uint *******)
                     (pppppppuVar19[6] +
                     (int)pppppppuVar19[3][*(int *)(piVar39[1] + iVar42 * 4)] * 3);
                iStack_154 = (*(code *)(iVar35 + -0x55b4))(&pbStack_150);
                if (iStack_154 != 0) goto LAB_0001e660;
                iVar23 = *piVar39;
              }
              iVar42 = iVar42 + 1;
            } while (iVar42 < iVar23);
          }
          pppppppuVar28 = pppppppuVar19;
          iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,0);
          *(int *)((int)puVar9 + iVar41) = iVar23;
          if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))
          goto LAB_0001e664;
          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {
            *(int *)((int)puVar17 + iVar41) = iVar23;
            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;
          }
          else {
            pppppppuVar28 = pppppppuVar19;
            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,1);
            *(int *)((int)puVar17 + iVar41) = iVar23;
            if ((iVar23 == 0) && (pcVar44 = *(code **)(pcVar46 + 0x1e790), iStack_154 != 0))
            goto LAB_0001e664;
            if ((iVar23 != *(int *)((int)puVar9 + iVar41)) && (1 < (int)pppppppuVar19[0x17])) {
              bVar3 = true;
            }
            pppppppuVar28 = pppppppuVar19;
            iVar23 = (*pcVar10)(&iStack_154,pppppppuVar19,&pbStack_150,2);
            *(int *)((int)puVar17 + iVar41 + iVar5) = iVar23;
            if ((iVar23 == 0) && (iStack_154 != 0)) goto LAB_0001e660;
          }
          iVar23 = iVar41 * 8 + iVar25;
          ppiVar11 = ppiVar37;
          do {
            ppiVar12 = ppiVar11 + 1;
            puVar14 = (uint *)(iVar23 + 0xc00);
            iVar23 = iVar23 + 4;
            *ppiVar11 = (int *)((uint)*ppiVar11 | *puVar14);
            ppiVar11 = ppiVar12;
          } while (&piStack_e4 != ppiVar12);
          iVar41 = iVar41 + 4;
          piVar39 = piVar39 + 3;
        } while (iVar5 != iVar41);
        if (bVar3) {
          pppppppuVar28 = (uint *******)0x200;
          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);
          pppppppuVar18[0xc] = ppppppuVar20;
          if (ppppppuVar20 == (uint ******)0x0) goto LAB_0001e660;
          iVar5 = iVar25;
          ppppppuVar36 = ppppppuVar20;
          do {
            piVar39 = *ppiVar37;
            if (piVar39 != (int *)0x0) {
              pppppppuVar28 = (uint *******)0x1;
              ppppppuVar13 = ppppppuVar36;
              do {
                if (((uint)piVar39 & 1) != 0) {
                  iVar41 = 0;
                  puVar21 = puVar17;
                  puVar27 = puVar9;
                  iVar35 = iVar5;
                  if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {
                    do {
                      puVar14 = (uint *)(iVar35 + 0xc20);
                      iVar41 = iVar41 + 1;
                      iVar35 = iVar35 + 0x20;
                    } while (((uint)pppppppuVar28 & *puVar14) == 0);
                    puVar21 = puVar17 + iVar41;
                    puVar27 = puVar9 + iVar41;
                  }
                  *ppppppuVar13 = (uint *****)*puVar27;
                  ppppppuVar13[0x100] = (uint *****)*puVar21;
                }
                piVar39 = (int *)((uint)piVar39 >> 1);
                pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);
                ppppppuVar13 = ppppppuVar13 + 1;
              } while (piVar39 != (int *)0x0);
            }
            ppppppuVar36 = ppppppuVar36 + 0x20;
            ppiVar37 = ppiVar37 + 1;
            iVar5 = iVar5 + 4;
          } while (ppppppuVar20 + 0x100 != ppppppuVar36);
        }
        else {
          pppppppuVar28 = (uint *******)0x100;
          ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);
          pppppppuVar18[0xb] = ppppppuVar20;
          if (ppppppuVar20 == (uint ******)0x0) {
LAB_0001e660:
            pcVar44 = *(code **)(pcVar46 + 0x1e790);
LAB_0001e664:
            (*pcVar44)(puVar9);
            iVar5 = iStack_148;
            goto LAB_0001e674;
          }
          pppppppuVar19 = pppppppuVar19 + 0x18;
          iVar35 = 0;
          iVar5 = iVar25;
          do {
            pppppppuVar28 = (uint *******)0x1;
            iVar41 = iVar35;
            for (piVar39 = *ppiVar37; piVar39 != (int *)0x0; piVar39 = (int *)((uint)piVar39 >> 1))
            {
              if (((uint)piVar39 & 1) != 0) {
                iVar42 = 0;
                iVar23 = iVar5;
                if (((uint)pppppppuVar28 & *(uint *)(iVar5 + 0xc00)) == 0) {
                  do {
                    puVar14 = (uint *)(iVar23 + 0xc20);
                    iVar42 = iVar42 + 1;
                    iVar23 = iVar23 + 0x20;
                  } while (((uint)pppppppuVar28 & *puVar14) == 0);
                  iVar42 = iVar42 * 4;
                }
                if (((uint)pppppppuVar28 & (uint)*pppppppuVar19) == 0) {
                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar9 + iVar42);
                }
                else {
                  ppppppuVar20[iVar41] = *(uint ******)((int)puVar17 + iVar42);
                }
              }
              pppppppuVar28 = (uint *******)((int)pppppppuVar28 << 1);
              iVar41 = iVar41 + 1;
            }
            iVar35 = iVar35 + 0x20;
            ppiVar37 = ppiVar37 + 1;
            pppppppuVar19 = pppppppuVar19 + 1;
            iVar5 = iVar5 + 4;
          } while (iVar35 != 0x100);
        }
        pcVar10 = *(code **)(pcVar46 + 0x1e790);
        if ((int)piStack_104 << 0x15 < 0) {
          pppppppuVar28 = (uint *******)0x0;
          do {
            if ((*puVar7 & 0x400) != 0) {
              pppppuVar31 = (uint *****)puVar17[(int)(pbVar8 + (int)((int)pppppppuVar28 + -1))];
              ppppppuVar20[10] = pppppuVar31;
              if (bVar3) {
                ppppppuVar20[0x10a] = pppppuVar31;
              }
              break;
            }
            pppppppuVar28 = (uint *******)((int)pppppppuVar28 + 1);
            puVar7 = puVar7 + 8;
          } while (pppppppuVar28 != pppppppuVar24);
          pcVar10 = *(code **)(pcVar46 + 0x1e790);
        }
        (*pcVar10)(puVar9);
        (**(code **)(pcVar46 + 0x1e790))(iStack_148);
        iVar5 = iVar25;
        do {
          iVar35 = iVar5 + 0xc;
          (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));
          iVar5 = iVar35;
        } while (iVar25 + (int)pppppppuVar24 * 0xc != iVar35);
        (**(code **)(pcVar46 + 0x1e790))(iVar25);
        pppppppuVar24 = (uint *******)0x1;
        goto LAB_0001e000;
      }
    }
LAB_0001e674:
    (**(code **)(pcVar46 + 0x1e790))(iVar5);
    iVar5 = iVar25;
    do {
      iVar35 = iVar5 + 0xc;
      (**(code **)(pcVar46 + 0x1e790))(*(undefined4 *)(iVar5 + 8));
      iVar5 = iVar35;
    } while (iVar35 != (int)(iStack_178 + (int)pppppppuVar24) * 4 + iVar25);
    (**(code **)(pcVar46 + 0x1e790))(iVar25);
LAB_0001dffc:
    pppppppuVar24 = (uint *******)0x0;
    goto LAB_0001e000;
  }
  (**(code **)(pcVar46 + 0x1e790))(iVar25);
  if (pppppppuVar24 != (uint *******)0x0) {
    pppppppuVar24 = (uint *******)0x0;
    goto LAB_0001e000;
  }
LAB_0001e824:
  pppppppuVar28 = (uint *******)0x100;
  ppppppuVar20 = (uint ******)(**(code **)(pcVar46 + 0x1e688))(4);
  pppppppuVar18[0xb] = ppppppuVar20;
  pppppppuVar24 = (uint *******)(uint)(ppppppuVar20 != (uint ******)0x0);
LAB_0001e000:
  if (piStack_e4 == (int *)*piVar6) {
    return pppppppuVar24;
  }
  piVar6 = piStack_e4;
  (**(code **)(pcVar46 + 0x1e764))();
  if (*(byte *)(pppppppuVar28 + 6) == 0x10) {
    ppppppuVar20 = (uint ******)pppppppuVar28[1][7];
    pppppppuVar28[3] = (uint ******)pppppppuVar28[1][3];
    pppppppuVar28[7] = ppppppuVar20;
    return (uint *******)0x0;
  }
  pppppppuVar28[3] = (uint ******)pppppppuVar28;
  ppppppuVar20 = (uint ******)FUN_00019660();
  pppppppuVar28[7] = ppppppuVar20;
  if (ppppppuVar20 == (uint ******)0xffffffff) {
    pppppppuVar24 = (uint *******)0xc;
  }
  else {
    if (*(byte *)(pppppppuVar28 + 6) == 0xc) {
      iVar25 = *piVar6 + (int)ppppppuVar20 * 8;
      *(uint *)(iVar25 + 4) =
           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar28[5] & 0x3ff) << 0xe;
      return (uint *******)0x0;
    }
    pppppppuVar24 = (uint *******)0x0;
  }
  return pppppppuVar24;
}

